DotNet | دات نت


Kanal geosi va tili: Eron, Forscha


تو این روزا بهتره که همیشه علم خودمون رو بالا ببریم و بتونیم با سریع ترین راه ممکن خودمونو بروز نگه داریم.
- سعی کنیم از کمترین امکانات بیشترین بهره رو ببریم
منتظرت هستیم😉
دنیا رو جای بهتری برای یادگیری کنیم 🌹
#course #book

🆔 @dotnetcode @hootanht

Связанные каналы  |  Похожие каналы

Kanal geosi va tili
Eron, Forscha
Statistika
Postlar filtri




OfferingOne | Job Opportunities dan repost
📣 موقعیت شغلی Full-Stack Developer

🔺شرح موقعیت شغلی

شرکت آفرینگان به عنوان ارائه دهنده خدمات منابع انسانی، در جستجوی یک فرد بسیار توانمند در حوزه برنامه نویسی جهت کار (دورکاری) در یک شرکت امریکایی پیشرو در زمینه هوش مصنوعی برای توسعه یک جعبه ابزار در زمینه پردازش تصویر است. مهارت  بک اند در زمینه Python یا Net. یا # C و فرانت اند JavaScript و TypeScript ضروری است.
لازم به ذکر است که در این موقعیت شغلی توانایی کد نویسی و دانش الگوریتم مورد نیاز است.

🤝نوع همکاری: تمام وقت، ریموت
📄سابقه شغلی مرتبط: حداقل ۶ سال
💰حقوق: دلاری بسیار خوب، رنج بالا و متناسب با توانمندی‌های فرد

سابقه کار روی پروداکت های پیچیده مزیت محسوب میشود.

🔗 در صورت نیاز به دریافت اطلاعات بیشتر و ارسال رزومه با ادمین در ارتباط باشید.
@OfferingOne

در صورتی که فردی متناسب با این شغل می شناسید لطفا معرفی کنید.

📣 کانال آفرینگان برای اطلاع از فرصت‌های شغلی
t.me/offeringOneJobs

📌همچنین می توانید لینکدین ما را هم دنبال کنید

https://www.linkedin.com/company/offeringone/

#برنامه_نویس #فول_استک #آفرینگان #فرصت_شغلی #استخدام

#Full_stack #Front_end #Back_end #developer


حذف داده‌ها از کش
برای حذف داده‌ها از کش، می‌توانید از متد RemoveAsync استفاده کنید:
public async Task RemoveProductFromCacheAsync(int productId, CancellationToken cancellationToken = default)
{
var cacheKey = $"product-{productId}";
await _cache.RemoveAsync(cacheKey, cancellationToken);
}


مثال Real-World:

کش کردن اطلاعات کاربران در یک سیستم احراز هویت

در یک سیستم احراز هویت، اطلاعات کاربران مانند نقش‌ها و دسترسی‌ها می‌توانند به طور مکرر مورد استفاده قرار گیرند. با استفاده از Hybrid Cache، می‌توانید این اطلاعات را کش کنید تا درخواست‌های بعدی سریع‌تر پردازش شوند.

public class UserService
{
private readonly HybridCache _cache;

public UserService(HybridCache cache)
{
_cache = cache;
}

public async Task GetUserInfoAsync(string userId, CancellationToken cancellationToken = default)
{
var cacheKey = $"user-info-{userId}";

return await _cache.GetOrCreateAsync(
cacheKey,
async cancel =>
{
// بازیابی اطلاعات کاربر از پایگاه داده
return await FetchUserInfoFromDatabaseAsync(userId, cancel);
},
new HybridCacheEntryOptions
{
Expiration = TimeSpan.FromMinutes(60),
LocalCacheExpiration = TimeSpan.FromMinutes(10)
},
cancellationToken
);
}

private async Task FetchUserInfoFromDatabaseAsync(string userId, CancellationToken cancellationToken)
{
// شبیه‌سازی یک عملیات زمان‌بر
await Task.Delay(500, cancellationToken);
return new UserInfo { UserId = userId, Roles = new[] { "Admin", "Editor" } };
}
}


نتیجه‌گیری
ابزاز Hybrid Cache در .NET 9 یک ابزار قدرتمند برای بهبود عملکرد و سادگی در مدیریت کش است. با ترکیب کش حافظه داخلی و کش توزیع‌شده، این ویژگی به توسعه‌دهندگان اجازه می‌دهد تا برنامه‌های خود را بهینه‌تر و مقیاس‌پذیرتر کنند. با استفاده از مثال‌های ارائه‌شده، می‌توانید به راحتی این ویژگی را در پروژه‌های خود پیاده‌سازی کنید و از مزایای آن بهره‌مند شوید.

برای اطلاعات بیشتر به مستندات رسمی مایکروسافت مراجعه کنید.


ابزار Hybrid Cache در .NET 9: بهبود عملکرد و سادگی در مدیریت کش

در دنیای توسعه نرم‌افزار، کش‌ینگ یکی از مهم‌ترین تکنیک‌ها برای بهبود عملکرد و کاهش بار روی سرور است. در .NET 9، مایکروسافت ویژگی جدیدی به نام Hybrid Cache معرفی کرده است که ترکیبی از کش حافظه داخلی (In-Memory Cache) و کش توزیع‌شده (Distributed Cache) است. این ویژگی نه تنها عملکرد را بهبود می‌بخشد، بلکه مدیریت کش را نیز ساده‌تر می‌کند. در این مقاله، به بررسی Hybrid Cache، فواید آن، و نحوه استفاده از آن در یک سناریوی واقعی می‌پردازیم.

ابزار Hybrid Cache چیست؟
ابزار Hybrid Cache یک کتابخانه جدید در .NET 9 است که دو لایه کش را با هم ترکیب می‌کند:

کش L1 (کش حافظه داخلی): برای دسترسی سریع به داده‌ها در حافظه محلی.

کش L2 (کش توزیع‌شده): برای ذخیره داده‌ها در یک کش توزیع‌شده مانند Redis یا SQL Server، که برای محیط‌های توزیع‌شده و چند سروری مناسب است.

این ترکیب باعث می‌شود که داده‌ها ابتدا از کش حافظه داخلی خوانده شوند و در صورت عدم وجود، از کش توزیع‌شده بازیابی شوند. این رویکرد نه تنها تأخیر را کاهش می‌دهد، بلکه از بار اضافی روی کش توزیع‌شده نیز جلوگیری می‌کند.

فواید Hybrid Cache
1. بهبود عملکرد: با استفاده از کش حافظه داخلی، دسترسی به داده‌های پرکاربرد بسیار سریع‌تر می‌شود.

2. سادگی در مدیریت: دیگر نیازی به انتخاب بین کش حافظه داخلی و توزیع‌شده نیست. Hybrid Cache به طور خودکار این کار را انجام می‌دهد.

3. حمایت از تگ‌ها: می‌توانید داده‌ها را با تگ‌ها گروه‌بندی کنید و به راحتی آن‌ها را حذف یا به‌روزرسانی کنید.

4. محافظت در برابر Stampede: هنگامی که چندین درخواست همزمان برای داده‌ای که در کش وجود ندارد ارسال می‌شود، Hybrid Cache از اجرای چندین باره کد جلوگیری می‌کند و فقط یک درخواست را پردازش می‌کند.

5. پیکربندی انعطاف‌پذیر: می‌توانید زمان انقضا و سایر تنظیمات را برای هر دو لایه کش به صورت جداگانه تنظیم کنید.

نحوه استفاده از Hybrid Cache در .NET 9

نصب و پیکربندی
برای شروع، باید بسته NuGet مربوط به Hybrid Cache را نصب کنید:
dotnet add package Microsoft.Extensions.Caching.Hybrid

سپس، سرویس Hybrid Cache را در برنامه خود اضافه کنید:
var builder = WebApplication.CreateBuilder(args);

// افزودن سرویس Hybrid Cache
builder.Services.AddHybridCache(options =>
{
options.DefaultEntryOptions = new HybridCacheEntryOptions
{
Expiration = TimeSpan.FromMinutes(30), // زمان انقضا برای کش توزیع‌شده
LocalCacheExpiration = TimeSpan.FromMinutes(5) // زمان انقضا برای کش حافظه داخلی
};
});

// افزودن Redis به عنوان کش توزیع‌شده
builder.Services.AddStackExchangeRedisCache(options =>
{
options.Configuration = builder.Configuration.GetConnectionString("RedisConnectionString");
});


مثال عملی: کش کردن اطلاعات محصولات
فرض کنید یک API دارید که اطلاعات محصولات را از یک پایگاه داده بازیابی می‌کند. با استفاده از Hybrid Cache، می‌توانید این اطلاعات را کش کنید تا درخواست‌های بعدی سریع‌تر پاسخ داده شوند.

public class ProductService
{
private readonly HybridCache _cache;

public ProductService(HybridCache cache)
{
_cache = cache;
}

public async Task GetProductAsync(int productId, CancellationToken cancellationToken = default)
{
var cacheKey = $"product-{productId}";

return await _cache.GetOrCreateAsync(
cacheKey,
async cancel =>
{
// شبیه‌سازی بازیابی اطلاعات از پایگاه داده
return await FetchProductFromDatabaseAsync(productId, cancel);
},
cancellationToken: cancellationToken
);
}

private async Task FetchProductFromDatabaseAsync(int productId, CancellationToken cancellationToken)
{
// شبیه‌سازی یک عملیات زمان‌بر
await Task.Delay(1000, cancellationToken);
return new Product { Id = productId, Name = "Sample Product", Price = 99.99 };
}
}




این کتاب یک منبع خیلی خوب برای هرکسی است که قصد دارد در فریم‌ورک ASP.NET Core مسلط شود، با تکیه بر مفاهیم پیشرفته و مثال‌های عملی. پیشنهاد می‌کنم هر کسی که علاقه‌مند به یک راهنمایی کامل و ارزشمند است، این کتاب را مطالعه کند.


Learning With M dan repost
رضا پدرمون بود، محمدرضا دانش پور.

مادرم همیشه پدر رو رضا صدا می زد. پدرم عاشق یادگیری بود، سال های آخر عمرش به خاطر مشکلات بینایی که داشت، برای یادگیری از پادکست استفاده می کرد. اون الهام بخش ما بود برای یادگیری و رشد.
#بورسیه_رضا، بورسیه ای هست که ما هر سال در روز سالگرد پدرم (19 دی ماه) ثبت نامش رو شروع خواهیم کرد. توی این بورسیه، ما 1 سال کامل دو نفر رو برای تبدیل شدن به یک مهندس نرم افزار خبره که بتونه یک خانواده رو پشتیانی کنه آموزش می دیم. هرچه که در این مسیر یادگرفته ایم رو بدون منت در اختیار 2 نفر منتخب قرار خواهیم داد.

تمرکز #بورسیه_رضا بر روی نوجوان های مستعدی هست که دسترسی آنها به آموزش و رشد به دلایلی مثل : هزینه، سخت افزار، دوری از مراکز آموزشی، نبود امکانات و ... غیر ممکن است، طراحی شده است.

ممنون میشم فقط افرادی که به بورسیه تحصیلی نیاز دارند رو به این دوره معرفی کنید تا هزینه های بررسی و انتخاب برای ما کاهش پیدا کنه.



برای ثبتنام این دوره می تونید از این بخش اقدام کنید :

https://B2n.ir/rezbrs1403
برای اطلاعات بیشتر و پرسش های بیشتر هم می تونید این بخش رو ببینید :
https://B2n.ir/rezbrs


8 out of the top 8 most wished for books in the Microsoft .NET category are published by Packt: https://www.amazon.com/gp/most-wished-for/books/764452/


Most Wished For in Microsoft .NET: https://www.amazon.com/gp/most-wished-for/books/764452/


Yaser Moradi dan repost
Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
ویدئو معرفی Bit Boilerplate Project Template
در کمتر از ده دقیقه با یکی از کامل‌ترین NET project template. حال حاضر برای Cross Platform Desktop/Mobile/Web development آشنا بشید و ببینید با Blazor چه اپ‌های خفنی میشه توسعه داد که هم سبک و سریع باشن و هم full featured
🌸🌸🌸

لینک تماشای ویدئو بدون نیاز به VPN
https://bitplatformhq-my.sharepoint.com/:v:/g/personal/yaser_moradi_bitplatform_dev/EWbT0h-aKaBFvqdr6tOPMFwB6qyvz7ddB82vI1o6jvlA6Q?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJTdHJlYW1XZWJBcHAiLCJyZWZlcnJhbFZpZXciOiJTaGFyZURpYWxvZy1MaW5rIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXcifX0%3D&e=GuZjBZ

لینک‌های مفید
https://t.me/bitplatformfa
https://bitplatform.dev/demo
https://bitplatform.dev/boilerplate
https://www.linkedin.com/company/bitplatformhq


Learning With M dan repost
از OOP بگی، از S.O.L.I.D بگی و از Coupling & Cohesion نگی، اشتباه کردی.
هرچه قدر استفاده از S.O.L.I.D توی مصاحبه ها زیاده و فهمش کمتر، Coupling & Cohesion مفهومیه که نه تنها بهش پرداخته نمیشه، بلکه فهمش هم مهمتره به نظرم.

حالا این دو تا بچه چی هستند ؟
Coupling
این مهفوم بسیار جذاب حرفش در مورد اتصال های بی مورد و یا نادرسته، وقتی این مفهوم رو نشناسی کلا نمی بینیش، ولی وقتی باهاش آشنا میشی همه جا میاد جلو چشمت(یه مدت مدیدی من به کاپلینگ می گفتم کوپلینگ!)
حالا حرفش چیه؟ میگه آقا انقدر همه چیز رو به هم اتصال نده، اتصال دادن خوبه ها ولی تهش بدبختیه، هرچی بیشتر وصل باشی مثل ریشه تو خاک یک درخته، بعدا نمی تونی درش بیاری، نکنه نشه، انرژی زیادی می بره.
Coupling انواع مختلفی داره که شامل موارد زیر هست، فقط حواسمون باشه که این موارد از بدتری به بهترین هستند :

Content Coupling: ماژولی مستقیماً در کد داخلی ماژول دیگر تغییر ایجاد می‌کند.
Common Coupling: ماژول‌ها متغیرهای سراسری مشترک دارند.
External Coupling: ماژول‌ها به منبع خارجی یکسانی وابسته‌اند (مثل فایل یا دستگاه مشترک).
Control Coupling: یک ماژول رفتار ماژول دیگر را از طریق پارامترهای کنترلی تعیین می‌کند.
Stamp Coupling: ماژول‌ها ساختار داده پیچیده‌ای را به اشتراک می‌گذارند، اما همیشه به کل آن نیاز ندارند.
Data Coupling: ماژول‌ها تنها داده‌های مورد نیاز را به شکل پارامترهای ساده تبادل می‌کنند (بهترین حالت).



Coupling یه مفهوم خیلی جالبه که بعدا بشتر در مورد انواعش صحبت می کنم و مواردی مثل Afferent و Efferent رو باز می کنم. قول می دم 😉

خب بریم سر وقت بچه بعدی، Cohesion.
حالا این مفهوم چی میگیه؟ میگه دوست من حالا که LSP رو رعایت کردی، بهتر نیست چیزایی که به هم ربط دارن رو کنار هم بزاری ؟ چرا اینو میگه ؟ چون SRP رو بهتر بتونی رعایت کنی. میبینید چطور مفاهیم بهم می تونن پیوند بخورن؟ جالب نیست؟ همینه من مفاهیم پایه ای رو دوست دارم، همشون هوای همیدگه رو دارن.

Coincidental Cohesion: وظایف نامرتبط به‌صورت تصادفی در یک ماژول جمع شده‌اند.
Logical Cohesion: وظایف مشابه از لحاظ نوع (نه هدف) در یک ماژول قرار دارند و با کلیدهای کنترلی انتخاب می‌شوند.
Temporal Cohesion: وظایف مرتبط با یک نقطه زمانی مشترک (مثلاً راه‌اندازی برنامه) در یک ماژول هستند.
Procedural Cohesion: وظایف در یک ترتیب مشخص برای رسیدن به یک هدف کلی اجرا می‌شوند، ولی داده مشترک ندارند.
Communicational Cohesion: وظایف حول یک داده یا داده‌های مرتبط مشترک عمل می‌کنند.
Sequential Cohesion: خروجی یک وظیفه ورودی وظیفه بعدی است، تشکیل زنجیره‌ای معنادار.
Functional Cohesion: تمام وظایف ماژول برای انجام یک کار واحد و مشخص به صورت متمرکز طراحی شده‌اند (بهترین حالت)


❓حالا شما به من بگید، Functional Cohesion مثل کدوم مفهومی می مونه که تا الان یاد گرفتیم ؟


فرصت‌های شغلی تراز اول dan repost
🎯 Senior .NET Engineer

💵 حقوق سالانه: ۰.۸ تا ۱ میلیارد تومان


📍محل کار: تهران - نیمه حضوری

⚙️ صنعت: فین‌تک

🌟 مهارت‌های کلیدی:
• مسلط بر توسعه نرم‌افزار با .Net
• مهارت رهبری و مدیریت تیم
• مهارت حل مسئله

📩 برای ارسال رزومه می‌توانید از طریق این لینک و یا آیدی تلگرام @HRBamboosHeadHunter اقدام نمایید.
-------------
برای اطلاع از آخرین موقعیت‌های شغلی ما را در لینکدین و واتساپ دنبال کنید.

#Senior_DotNet_Engineer #DotNet #موقعیت_شغلی #استخدام


فرصت‌های شغلی تراز اول dan repost
🎯 Senior .Net Developer

💵 حقوق سالانه: قابل مذاکره

📍محل کار: تهران - حضوری

⚙️ صنعت: تکنولوژی

🌟 مهارت‌های کلیدی:
• مسلط بر توسعه نرم‌افزار با .Net
• تجربه در زمینه ساختار نرم‌افزار
• مهارت حل مسئله

📩 برای ارسال رزومه می‌توانید از طریق این لینک و یا آیدی تلگرام @HRBamboosHeadHunter اقدام نمایید.
-------------
برای اطلاع از آخرین موقعیت‌های شغلی ما را در لینکدین و واتساپ دنبال کنید.

#Senior_DotNET_Developer #DotNET #موقعیت_شغلی #استخدام




Dive deep into the advanced practices of Clean Architecture in .NET

Clean Architecture is one of the most popular software architecture and solution organization approaches out there, and that's for a good reason. It provides a clear path to a robust solution structure with clear guidelines and rules that help you immediately fall into the pit of success. It can, however, be confusing and complicated at first, especially if you don't have an experienced developer explaining the concept and principles to you. In this course, Amichai Mantinband, a Software Engineer at Microsoft, will help you dive deeper into Clean Architecture and teach you all the advanced principles and rules you need to know in easy-to-digest clips and understandable examples. Continue your Clean Architecture journey today on Dometrain!

https://dometrain.com/course/deep-dive-clean-architecture-in-dotnet/




Start your .NET Clean Architecture journey

Clean Architecture is one of the most popular software architecture and solution organization approaches out there, and that's for a good reason. It provides a clear path to a robust solution structure with clear guidelines and rules that help you fall into the pit of success immediately. It can, however, be confusing and complicated at first, especially if you don't have an experienced developer explaining the concept and principles to you. That's where Dometrain comes in. In this course, Amichai Mantinband, a Software Engineer at Microsoft, will help you start with Clean Architecture and teach you all the principles and rules in easy-to-digest clips and understandable examples. Start your Clean Architecture journey today on Dometrain!

https://dometrain.com/course/getting-started-clean-architecture-in-dotnet/




Dive deeper into Microservices Architecture with AWS Solution Architect James Eastham

Microservices Architecture is one of the most popular software architectures. It is the de facto choice for any big company, and knowing how to create a system using it is crucial for any software developer who wants to work at a big company. However, it is a very complex topic with many nuances, edge cases, and caveats. In this course, AWS Solution Architect James Eastham will use the knowledge he gained building microservices for Amazon Web Services to teach you how to create an entire microservices architecture system. This course is both theory and code-heavy, with many diagrams and detailed explanations for every decision made. Join James on this journey and master Microservices Architecture today.

https://dometrain.com/course/deep-dive-microservices-architecture/




Getting Started: Microservices Architecture

Get started with Microservices Architecture with AWS Solution Architect James Eastham

Embark on a journey with 'Getting Started with Microservices Architecture' meticulously crafted by James Eastham, a Solution Architect at AWS. This course is your gateway to mastering the intricacies of microservices architecture, a pivotal skill in today's tech landscape. James, with his extensive real-world experience, delves deep into the fundamentals of microservices, ensuring a solid foundation for learners of all levels. This course is designed not only to impart theoretical knowledge but also to equip you with practical skills, essential for navigating the complexities of modern software development. Whether you're a budding developer, an aspiring architect, or a seasoned professional, this course offers valuable insights into the modular world of microservices. By the end of this course, you'll have a comprehensive understanding of how microservices operate, how they enhance scalability and flexibility, and why they're a preferred choice for contemporary applications. Join James Eastham in this enlightening journey, and unlock the door to a new realm of architectural possibilities.

https://dometrain.com/course/getting-started-microservices-architecture/

20 ta oxirgi post ko‘rsatilgan.