Forwarded from TondTech
ما در Khanoumi.com به یک Devops Engineer در تیم مون نیاز داریم
خیلی خوب میشه که تجربه کار در تیم هایی با تعداد کاربر آنلاین بالا داشته باشه و یه Team Player خوب باشه
شرح نیازمندی های ما به شکل زیر هست :
- تعامل با تیم توسعه
- تسلط بر مفاهیم لود بالانس و HA
- تجربه عملیاتی Swarm یا Kubernetes
- تسلط بر Gitlab و CI/CD
- توانایی استقرار Automation
- مهارت برنامه نویسی یا Scripting
- تسلط بر سرویس های مانیتورینگ و TSDB
- تسلط بر سرویس های Queuing
- آشنایی با مفاهیم میکرو سرویس
- آشنایی با متدولوژی چابک
- آشنایی با توزیعهای لینوکس به خصوص Ubuntu و Debian
- آشنایی با وبسرورها
- تسلط به محیط Bash و Shell Scripting
- آشنایی با مفاهیم امنیتی سرورهای لینوکسی
- تسلط بر ابزارهای Deploy مانند Gitlab-CI, Ansible, Vagrant, Jenkins و ..
- مسلط به داکر
- مسلط به کوبرنتیز
- دانش قوی در زمینه نصب CI/CD
- دانش کار با سیستم های نظارت
در صورتی که دوست دارید هم تیمی ما باشید حتما رزومه تون رو از طریق لینک زیر ارسال کنید
و یا به خود من در لینکدین یا تلگرام پیام بدین
https://lnkd.in/eH969_JU
خیلی خوب میشه که تجربه کار در تیم هایی با تعداد کاربر آنلاین بالا داشته باشه و یه Team Player خوب باشه
شرح نیازمندی های ما به شکل زیر هست :
- تعامل با تیم توسعه
- تسلط بر مفاهیم لود بالانس و HA
- تجربه عملیاتی Swarm یا Kubernetes
- تسلط بر Gitlab و CI/CD
- توانایی استقرار Automation
- مهارت برنامه نویسی یا Scripting
- تسلط بر سرویس های مانیتورینگ و TSDB
- تسلط بر سرویس های Queuing
- آشنایی با مفاهیم میکرو سرویس
- آشنایی با متدولوژی چابک
- آشنایی با توزیعهای لینوکس به خصوص Ubuntu و Debian
- آشنایی با وبسرورها
- تسلط به محیط Bash و Shell Scripting
- آشنایی با مفاهیم امنیتی سرورهای لینوکسی
- تسلط بر ابزارهای Deploy مانند Gitlab-CI, Ansible, Vagrant, Jenkins و ..
- مسلط به داکر
- مسلط به کوبرنتیز
- دانش قوی در زمینه نصب CI/CD
- دانش کار با سیستم های نظارت
در صورتی که دوست دارید هم تیمی ما باشید حتما رزومه تون رو از طریق لینک زیر ارسال کنید
و یا به خود من در لینکدین یا تلگرام پیام بدین
https://lnkd.in/eH969_JU
Forwarded from کدهک
Forwarded from کدهک
Forwarded from کدهک
Forwarded from Software Philosophy
کنفرانس NET. Conf هر سال خبرهای هیجانانگیزی داره. امسال هم NET. خبر های خوب و جذابی داره که قراره ۱۸ تا ۲۰ آبان برگزار بشه.
ما در «کانال فلسفه نرمافزار» به همراه بچههای «ملکرادار» تصمیم گرفتیم که دور هم جمع شویم و امسال این کنفرانس رو با هم ببینیم و در مورد فیچرهای جدید هم گپ و گفتی داشته باشیم.
این دورهمی به صورت Watch party و روی Microsoft Teams برگزار میشود. پس اگر شما هم دوست دارید این رویداد رو تنها نبینید خوشحال میشیم با ما همراه بشید.
برای شرکت در این Watch Party روی این لینک کلیک کنید تا وارد گروه تلگرامی که برای هماهنگی درست کردیم بشید.
من (مهران داودی) هم به همراه بچههای این کانال هم تو این دورهمی هستیم.
ما در «کانال فلسفه نرمافزار» به همراه بچههای «ملکرادار» تصمیم گرفتیم که دور هم جمع شویم و امسال این کنفرانس رو با هم ببینیم و در مورد فیچرهای جدید هم گپ و گفتی داشته باشیم.
این دورهمی به صورت Watch party و روی Microsoft Teams برگزار میشود. پس اگر شما هم دوست دارید این رویداد رو تنها نبینید خوشحال میشیم با ما همراه بشید.
برای شرکت در این Watch Party روی این لینک کلیک کنید تا وارد گروه تلگرامی که برای هماهنگی درست کردیم بشید.
من (مهران داودی) هم به همراه بچههای این کانال هم تو این دورهمی هستیم.
Forwarded from کدهک
نسخه نهایی NET 6.0 منتشر شد.
نسخه 6.0 دات نت به صورت طولانی مدت پشتیبانی میشود (LTS) و توسعه دهندگان می توانند تا سه سال بدون مهاجرت به نسخه بعدی همچنان آپدیت های آن را دریافت کنند.
به همراه این نسخه سی شارپ 10 و اف شارپ 6 هم منتشر شده است.
به گفته مایکروسافت این نسخه سریعترین نسخه دات نت تا به امروز است و می توانید از همین حالا شروع به استفاده از آن کنید.
با توجه به پایان پشتیبانی دات نت 5 در چند ماه آینده پروژه های دات نت 5 باید هرچه سریعتر به نسخه 6 آپدیت شوند.
میتوانید نسخه جدید را از لینک زیر دانلود کنید یا Visual Studio را به آخرین نسخه آپدیت کنید.
https://dotnet.microsoft.com/download
نسخه 6.0 دات نت به صورت طولانی مدت پشتیبانی میشود (LTS) و توسعه دهندگان می توانند تا سه سال بدون مهاجرت به نسخه بعدی همچنان آپدیت های آن را دریافت کنند.
به همراه این نسخه سی شارپ 10 و اف شارپ 6 هم منتشر شده است.
به گفته مایکروسافت این نسخه سریعترین نسخه دات نت تا به امروز است و می توانید از همین حالا شروع به استفاده از آن کنید.
با توجه به پایان پشتیبانی دات نت 5 در چند ماه آینده پروژه های دات نت 5 باید هرچه سریعتر به نسخه 6 آپدیت شوند.
میتوانید نسخه جدید را از لینک زیر دانلود کنید یا Visual Studio را به آخرین نسخه آپدیت کنید.
https://dotnet.microsoft.com/download
Forwarded from Software Philosophy
همه چیز در مورد NET Core 6.
دیروز نسخه رسمی NET Core 6. به همراه نسخه رسمی Visual Studio 2022 ارائه شد.
در واقع شما میتوانید با نصب ویژوال استودیو همزمان NET Core 6. را هم نصب کنید.
اما موضوع این پست و سوال اصلی اینجاست که چه اتفاقاتی در NET Core 6. افتاده و آپدیت ها چه چیز هایی هستند؟
بررسی فیچر های جدیدی که با NET Core 6. ارائه شده:
1 - Looking inside ConfigurationManager in .NET 6
2 - Comparing WebApplicationBuilder to the Generic Host
3 - Exploring the code behind WebApplicationBuilder
4 - Building a middleware pipeline with WebApplication
5 - Supporting EF Core migrations with WebApplicationBuilder
6 - Supporting integration tests with WebApplicationFactory in .NET 6
7 - Analyzers for ASP.NET Core in .NET 6
8 - Improving logging performance with source generators
9 - Source generator updates: incremental generators
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
دیروز نسخه رسمی NET Core 6. به همراه نسخه رسمی Visual Studio 2022 ارائه شد.
در واقع شما میتوانید با نصب ویژوال استودیو همزمان NET Core 6. را هم نصب کنید.
اما موضوع این پست و سوال اصلی اینجاست که چه اتفاقاتی در NET Core 6. افتاده و آپدیت ها چه چیز هایی هستند؟
بررسی فیچر های جدیدی که با NET Core 6. ارائه شده:
1 - Looking inside ConfigurationManager in .NET 6
2 - Comparing WebApplicationBuilder to the Generic Host
3 - Exploring the code behind WebApplicationBuilder
4 - Building a middleware pipeline with WebApplication
5 - Supporting EF Core migrations with WebApplicationBuilder
6 - Supporting integration tests with WebApplicationFactory in .NET 6
7 - Analyzers for ASP.NET Core in .NET 6
8 - Improving logging performance with source generators
9 - Source generator updates: incremental generators
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
Microsoft
Download .NET 6.0 (Linux, macOS, and Windows) | .NET
.NET 6.0 downloads for Linux, macOS, and Windows. .NET is a free, cross-platform, open-source developer platform for building many different types of applications.
Forwarded from Software Philosophy
اضافه شدن قابلیت Temporal Table به EF Core 6
➖ مایکروسافت در سال 2016 قابلیت Temporal Table که با نام System-Versioned نیز شناخته میشود را به SQL Server اضافه کرد.
➖ این قابلیت امکان این را فراهم میکند که تغییرات مربوط به دیتاهای هر جدول را ذخیره سازی کنیم.
➖ این امکان برای مانیتورینگ و همچنین برگرداندن دادههای حذف شده مفید است ولی باید در نظر داشت که این امکان باعث بالارفتن سریع حافظه دیتابیس میشود.
➖ مایکروسافت در آخرین ورژن EF Core یعنی EF Core 6 این قابلیت را فراهم کردهاست که به واسطه EF هم بتوانیم از این قابلیت SQL استفاده کنیم.
برای این که جدول مورد نظر از این ویژگی برخوردار باشد باید توسط Fluent Api این کار را انجام دهیم:
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
➖ مایکروسافت در سال 2016 قابلیت Temporal Table که با نام System-Versioned نیز شناخته میشود را به SQL Server اضافه کرد.
➖ این قابلیت امکان این را فراهم میکند که تغییرات مربوط به دیتاهای هر جدول را ذخیره سازی کنیم.
➖ این امکان برای مانیتورینگ و همچنین برگرداندن دادههای حذف شده مفید است ولی باید در نظر داشت که این امکان باعث بالارفتن سریع حافظه دیتابیس میشود.
➖ مایکروسافت در آخرین ورژن EF Core یعنی EF Core 6 این قابلیت را فراهم کردهاست که به واسطه EF هم بتوانیم از این قابلیت SQL استفاده کنیم.
برای این که جدول مورد نظر از این ویژگی برخوردار باشد باید توسط Fluent Api این کار را انجام دهیم:
modelBuilderجهت کسب اطلاعات بیشتر در مورد این ویژگی و نحوه استفاده از آن میتوانید از این لینک استفاده کنید.
.Entity<Product>()
.ToTable("Products", b => b.IsTemporal());
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
MSSQLTips.com
Introduction to SQL Server Temporal Tables
Temporal tables is a new feature introduced with SQL Server 2016 and allow automatic history tracking of data in a table.
Forwarded from Software Philosophy
انتقال داده ها به واسطه Azure Service Bus
امروزه سرعت انتقال دادهها از اهمیت بالایی برخوردار است. برای مثال فرض کنید پروژه شما شامل ۲ اپلیکیشن مجزا از هم است که هر دوی آنها از یک دیتابیس مشترک برای دادههای خود استفاده میکنند. اپلیکیشن ۱ بر روی دادهها تغییراتی انجام میدهد و اپلیکیشن ۲ از این تغییرات استفاده میکند.
در حالت عادی اپلیکیشن ۲ برای استفاده از دادههایی که قبلا توسط اپلیکیشن ۱ لود شده بود بایستی یک بار دیگر کوئریای بر روی دیتابیس بزند و دیتاها را مجدد لود کند.
اما این روش دوباره کاری است و بهینه نیست.
یک راه حل بهتر استفاده از message broker ها است. تعریف خیلی ساده آن هم مفهوم صف است. یک صف (Queue) که خارج از اپلیکیشنهای ما قرار دارد.
برای مثال Apache Kafka٬RabbitMQ٬Google Cloud Pub/Sub و ... از جمله معروفترین message broker موجود هستند.
یکی از بهترین message broker های موجود٬ Azure Service Bus است.
این سرویس قابلیتهایی فراتر از یک صف معمولی دارد، که از جمله مهمترین آنها میتوانیم به قابلیت جلوگیری از ارسال دادههای تکراری و استفاده چندین subscriptions از یک topic را نام ببریم.
البته به صورت پیشفرض (پلن رایگان) از Topic نمیتوانیم استفاده کنیم و صرفا از همان مفهوم Queue میشود استفاده کرد.
در این ویدیو نحوه استفاده از Azure Service Bus آموزش داده شده است.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
امروزه سرعت انتقال دادهها از اهمیت بالایی برخوردار است. برای مثال فرض کنید پروژه شما شامل ۲ اپلیکیشن مجزا از هم است که هر دوی آنها از یک دیتابیس مشترک برای دادههای خود استفاده میکنند. اپلیکیشن ۱ بر روی دادهها تغییراتی انجام میدهد و اپلیکیشن ۲ از این تغییرات استفاده میکند.
در حالت عادی اپلیکیشن ۲ برای استفاده از دادههایی که قبلا توسط اپلیکیشن ۱ لود شده بود بایستی یک بار دیگر کوئریای بر روی دیتابیس بزند و دیتاها را مجدد لود کند.
اما این روش دوباره کاری است و بهینه نیست.
یک راه حل بهتر استفاده از message broker ها است. تعریف خیلی ساده آن هم مفهوم صف است. یک صف (Queue) که خارج از اپلیکیشنهای ما قرار دارد.
برای مثال Apache Kafka٬RabbitMQ٬Google Cloud Pub/Sub و ... از جمله معروفترین message broker موجود هستند.
یکی از بهترین message broker های موجود٬ Azure Service Bus است.
این سرویس قابلیتهایی فراتر از یک صف معمولی دارد، که از جمله مهمترین آنها میتوانیم به قابلیت جلوگیری از ارسال دادههای تکراری و استفاده چندین subscriptions از یک topic را نام ببریم.
البته به صورت پیشفرض (پلن رایگان) از Topic نمیتوانیم استفاده کنیم و صرفا از همان مفهوم Queue میشود استفاده کرد.
در این ویدیو نحوه استفاده از Azure Service Bus آموزش داده شده است.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
Docs
Introduction to Azure Service Bus - Azure Service Bus
This article provides a high-level overview of Azure Service Bus, a fully managed enterprise integration serverless message broker.
Forwarded from Software Philosophy
امکانات LINQ در NET 6.
✅ ۱- امکان مشخص کردن مقدار پیشفرض در OrDefault*
✅۲- متدهای جدید با مدل By*:
- MinBy
- MaxBy
- DistinctBy
- ExceptBy
- IntersectBy
- UnionBy
✅۷- جلوگیری از شمارش تایپهای غیر Enumerable:
https://raygun.com/blog/linq-net-6-improvements/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
✅ ۱- امکان مشخص کردن مقدار پیشفرض در OrDefault*
var item1 = list1.FirstOrDefault(i => i == 4, -1);➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
// -1
var item2 = list2.SingleOrDefault(i => i == "Item2", "Not found");
// Not found
✅۲- متدهای جدید با مدل By*:
- MinBy
- MaxBy
- DistinctBy
- ExceptBy
- IntersectBy
- UnionBy
List<Product> products = new()✅۳- متد کاربردی Chunk :
{
new() { Name = "Product1", Price = 100 },
new() { Name = "Product2", Price = 5 },
new() { Name = "Product3", Price = 50 },
};
Product theCheapestProduct = products.MinBy(x => x.Price);
Product theMostExpensiveProduct = products.MaxBy(x => x.Price);
Console.WriteLine(theCheapestProduct);
// Output: Product { Name = Product2, Price = 5 }
Console.WriteLine(theMostExpensiveProduct);
// Output: Product { Name = Product1, Price = 100 }
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
IEnumerable<int> numbers = Enumerable.Range(1, 505);✅۴- تابع Zip
IEnumerable<int[]> chunks = numbers.Chunk(100);
foreach (int[] chunk in chunks)
{
Console.WriteLine($"{chunk.First()}...{chunk.Last()}");
}
// Output:
// 1...100
// 101...200
// 201...300
// 301...400
// 401...500
// 501...505
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
int[] numbers = { 1, 2, 3, 4, };✅۵- پشتیبانی از Index در تابع ElementAt :
string[] months = { "Jan", "Feb", "Mar" };
string[] seasons = { "Winter", "Winter", "Spring" };
var test = numbers.Zip(months).Zip(seasons);
foreach ((int, string, string) zipped in numbers.Zip(months, seasons))
{
Console.WriteLine($"{zipped.Item1} {zipped.Item2} {zipped.Item3}");
}
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
IEnumerable<int> numbers = new int[] { 1, 2, 3, 4, 5 };✅۶- پشتیبانی از Range در تابع Take :
int last = numbers.ElementAt(^0);
Console.WriteLine(last); // 5
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
var taken1 = numbers.Take(2..4);➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
✅۷- جلوگیری از شمارش تایپهای غیر Enumerable:
numbers.TryGetNonEnumeratedCount(out int count)➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
https://raygun.com/blog/linq-net-6-improvements/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
Raygun Blog
A look at the upcoming improvements to LINQ in .NET 6
The upcoming release of .NET 6 brings a number of really interesting features, including a suite of new LINQ capabilities.