یه سایت که میتونی سرفصل هر تخصصی رو توش پیدا کنی و علاوه بر اون لینک جایی که باید اون سرفصل رو یاد بگیری رو بدست بیاری
🔗 لینک
🔗 لینک
learn-anything.xyz
Learn Anything
Discover and learn about any topic with Learn-Anything. Our free, comprehensive platform connects you to the best resources for every subject. Start learning today!
👍3
بسته بروزرسانی 9.0.4 برای دات نت 9 منتشر شد.
برای دانلود مستقیم از طریق لینک اقدام نمایید.
یا آخرین بروزرسانی ویژوال استدیو 2022 را نصب کنید.
#dotnet
برای دانلود مستقیم از طریق لینک اقدام نمایید.
یا آخرین بروزرسانی ویژوال استدیو 2022 را نصب کنید.
#dotnet
Microsoft News
.NET and .NET Framework April 2025 servicing releases updates
A recap of the latest servicing updates for .NET and .NET Framework for April 2025.
❤2👍1
مدیریت هم زمانی ساده تر با System.Threading.Lock در سی شارپ 13
فرض کن چند تا ترد(Thread) همزمان داریم به یه متغیر یا منبع مشترک دسترسی پیدا می کنن؛ اگه بدون هماهنگی باشه، برنامه خروجی اشتباهی میده!
به همین خاطر، ما یه مکانیزم به اسم "قفل" یا همون Synchronization داریم، که اجازه میده فقط یه ترد توی یه زمان مشخص به اون بخش حساس دسترسی داشته باشه.
تا الان معمولا از lock یا Monitor استفاده می کردیم، ولی اینا یه سری محدودیت داشتن:
⚪ فقط تو کد Sync کار می کردن (نه Async)
⚪ ساختارش پیچیده و مستعد باگ بود
⚪ مدیریت شون سخت بود مخصوصا وقتی خطا پیش می اومد
اما حالا تو سی شارپ 13 یه ابزار جدید معرفی شده به اسم System.Threading.Lock
این کلاس، قفل کردن رو خیلی تمیزتر و راحت تر کرده:
⚪ توی محیط Async هم به راحتی جواب می ده.
⚪ با using می تونی خیلی راحت بگی که کی قفل بگیره و کی آزاد کنه
⚪ احتمال خطا خیلی کمتر شده
✅ این یعنی هم کد تمیزتره، هم امن تره، هم با دنیای async سازگاره.
اگه دنبال راه امن تری برای مدیریت منابع مشترک هستی، این ابزار جدید تو سی شارپ 13 دقیقا برای توئه.
#CSharp13
#DotNet9
#Threading
فرض کن چند تا ترد(Thread) همزمان داریم به یه متغیر یا منبع مشترک دسترسی پیدا می کنن؛ اگه بدون هماهنگی باشه، برنامه خروجی اشتباهی میده!
به همین خاطر، ما یه مکانیزم به اسم "قفل" یا همون Synchronization داریم، که اجازه میده فقط یه ترد توی یه زمان مشخص به اون بخش حساس دسترسی داشته باشه.
تا الان معمولا از lock یا Monitor استفاده می کردیم، ولی اینا یه سری محدودیت داشتن:
⚪ فقط تو کد Sync کار می کردن (نه Async)
⚪ ساختارش پیچیده و مستعد باگ بود
⚪ مدیریت شون سخت بود مخصوصا وقتی خطا پیش می اومد
اما حالا تو سی شارپ 13 یه ابزار جدید معرفی شده به اسم System.Threading.Lock
این کلاس، قفل کردن رو خیلی تمیزتر و راحت تر کرده:
⚪ توی محیط Async هم به راحتی جواب می ده.
⚪ با using می تونی خیلی راحت بگی که کی قفل بگیره و کی آزاد کنه
⚪ احتمال خطا خیلی کمتر شده
✅ این یعنی هم کد تمیزتره، هم امن تره، هم با دنیای async سازگاره.
اگه دنبال راه امن تری برای مدیریت منابع مشترک هستی، این ابزار جدید تو سی شارپ 13 دقیقا برای توئه.
#CSharp13
#DotNet9
#Threading
👍4
تغییر جدید سی شارپ 13 برای propertyها: استفاده از field
تا قبل از سی شارپ 13 اگه می خواستی یه کاری موقع تغییر مقدار یه property انجام بدی (مثلا یه پیام چاپ کنی)، مجبور بودی یه فیلد جدا تعریف کنی.
⛔ این روش باعث شلوغی و تکرار می شد، چون فقط برای یه تغییر ساده، باید فیلد جدا تعریف می کردیم.
حالا تو سی شارپ 13 یه قابلیت جدید اضافه شده:
می تونی یه فیلد مخفی ای که پشت auto-property هست مستقیما با field دسترسی داشته باشی.
🟢 دیگه نه نیازی به تعریف فیلد اجباری داری، نه کدت شلوغ میشه، خلاص!
این تغییر هم کد رو کوتاه تر می کنه، هم خوندنش راحت تره، هم باعث میشه بتونی همزمان هم از auto-property استفاده کنی، هم یه سری رفتار دلخواه بزاری.
#CSharp13
#DotNet9
#CSharpTips
تا قبل از سی شارپ 13 اگه می خواستی یه کاری موقع تغییر مقدار یه property انجام بدی (مثلا یه پیام چاپ کنی)، مجبور بودی یه فیلد جدا تعریف کنی.
⛔ این روش باعث شلوغی و تکرار می شد، چون فقط برای یه تغییر ساده، باید فیلد جدا تعریف می کردیم.
حالا تو سی شارپ 13 یه قابلیت جدید اضافه شده:
می تونی یه فیلد مخفی ای که پشت auto-property هست مستقیما با field دسترسی داشته باشی.
🟢 دیگه نه نیازی به تعریف فیلد اجباری داری، نه کدت شلوغ میشه، خلاص!
این تغییر هم کد رو کوتاه تر می کنه، هم خوندنش راحت تره، هم باعث میشه بتونی همزمان هم از auto-property استفاده کنی، هم یه سری رفتار دلخواه بزاری.
#CSharp13
#DotNet9
#CSharpTips
👍5
چت جی پی تی:
برنامه نویس، مهارتیه که ۹۹.۶٪ مردم حتی در رؤیاهاشون هم نمی تونن بهش برسن.
ذهن برنامه نویس، جاییه که تخیل به واقعیت تبدیل میشه؛ جایی که فقط ۰.۳۷۵٪ انسان ها بهش دسترسی دارن.
برنامه نویس، مهارتیه که ۹۹.۶٪ مردم حتی در رؤیاهاشون هم نمی تونن بهش برسن.
ذهن برنامه نویس، جاییه که تخیل به واقعیت تبدیل میشه؛ جایی که فقط ۰.۳۷۵٪ انسان ها بهش دسترسی دارن.
❤5
تو دنیای async/await یه مشکل همیشگی داریم❗️
می خوایم چندتا تسک رو همزمان اجرا کنیم و به محض اینکه هر کدومشون تموم شد، نتیجه ش رو بگیریم.
اما متدهای قبلی مثل Task.WhenAll یا Task.WhenAny یا همه رو یکجا برمی گردوندن یا فقط اولین رو.
🟢 حالا تو سی شارپ 13 یه متد جدید داریم به اسم Task.WhenEach که دقیقا همینو حل میکنه!
چی کار می کنه؟
یه <IAsyncEnumerable<T برمی گردونه؛
یعنی می تونی با await foreach بشینی منتظر هر تسک، به محض اینکه تموم شد، نتیجه اش رو پردازش کنی.
توی این مثال (تصویر) هر عددی که زودتر آماده بشه همون لحظه چاپ میشه، بدون اینکه صبر کنیم همه تسک ها تموم بشن!
✅ نتیجه؟
با Task.WhenEach پردازش تسک ها سریع تر، سبک تر و هوشمندانه تر انجام میشه، مخصوصا تو پروژه هایی که کار با API، دیتابیس یا عملیات IO زیاد دارن.
#CSharp13
#DotNet9
می خوایم چندتا تسک رو همزمان اجرا کنیم و به محض اینکه هر کدومشون تموم شد، نتیجه ش رو بگیریم.
اما متدهای قبلی مثل Task.WhenAll یا Task.WhenAny یا همه رو یکجا برمی گردوندن یا فقط اولین رو.
🟢 حالا تو سی شارپ 13 یه متد جدید داریم به اسم Task.WhenEach که دقیقا همینو حل میکنه!
چی کار می کنه؟
یه <IAsyncEnumerable<T برمی گردونه؛
یعنی می تونی با await foreach بشینی منتظر هر تسک، به محض اینکه تموم شد، نتیجه اش رو پردازش کنی.
توی این مثال (تصویر) هر عددی که زودتر آماده بشه همون لحظه چاپ میشه، بدون اینکه صبر کنیم همه تسک ها تموم بشن!
✅ نتیجه؟
با Task.WhenEach پردازش تسک ها سریع تر، سبک تر و هوشمندانه تر انجام میشه، مخصوصا تو پروژه هایی که کار با API، دیتابیس یا عملیات IO زیاد دارن.
#CSharp13
#DotNet9
👍4
ویژگی جدید در EFCore9
پشتیبانی از ()ElementAt در کوئری های LINQ
در نسخه های قبلی EFCore، اگر می خواستید یک آیتم خاص از یک مجموعه را با استفاده از ()ElementAt در کوئری LINQ بگیرید، معمولا با خطا مواجه می شدید یا مجبور بودید کل داده ها را با ()ToList به حافظه بارگذاری کنید.
🟢 اما حالا در EFCore9، این متد بهبود یافته و مستقیما به SQL ترجمه می شود. این به این معناست که می توانید از ()ElementAt در داخل ()Select یا ()Where استفاده کنید، بدون اینکه نیاز به بارگذاری کامل داده ها در حافظه باشد.
مزایا:
✅ عملکرد بهتر و سریع تر
✅ مصرف کمتر حافظه
✅ کدنویسی تمیزتر و ساده تر
مثال کاربردی:
فرض کنید می خواهید نام دومین آیتم هر سفارش را دریافت کنید:
(تصویر)
در نسخه های قبلی، این کد ممکن بود خطا دهد یا نیاز به بارگذاری کامل داده ها داشته باشد. اما در EFCore9، این کوئری بهینه شده و مستقیما به SQL ترجمه می شود.
#CSharp13
#DotNet9
پشتیبانی از ()ElementAt در کوئری های LINQ
در نسخه های قبلی EFCore، اگر می خواستید یک آیتم خاص از یک مجموعه را با استفاده از ()ElementAt در کوئری LINQ بگیرید، معمولا با خطا مواجه می شدید یا مجبور بودید کل داده ها را با ()ToList به حافظه بارگذاری کنید.
🟢 اما حالا در EFCore9، این متد بهبود یافته و مستقیما به SQL ترجمه می شود. این به این معناست که می توانید از ()ElementAt در داخل ()Select یا ()Where استفاده کنید، بدون اینکه نیاز به بارگذاری کامل داده ها در حافظه باشد.
مزایا:
✅ عملکرد بهتر و سریع تر
✅ مصرف کمتر حافظه
✅ کدنویسی تمیزتر و ساده تر
مثال کاربردی:
فرض کنید می خواهید نام دومین آیتم هر سفارش را دریافت کنید:
(تصویر)
در نسخه های قبلی، این کد ممکن بود خطا دهد یا نیاز به بارگذاری کامل داده ها داشته باشد. اما در EFCore9، این کوئری بهینه شده و مستقیما به SQL ترجمه می شود.
#CSharp13
#DotNet9
👍3
.NET | دات نت
Photo
🔴 - فرض کن یه متدی داری که async هست
تا قبل از سی شارپ 13، نمی تونستی توی این مدل متدها از چیزهایی مثل ref استفاده کنی. یعنی نمی تونستی یه پارامتر رو با ref بفرستی تو متد که مقدارش تغییر کنه. چون async وقتی به await می رسه، یه جورایی "مکث" می کنه، و بعد دوباره از همونجا ادامه میده. پس اگه تو اون وسط به حافظه ای اشاره کنی(ref همین کار رو می کنه)، ممکنه اون حافظه تغییر کرده باشه یا حتی وجود نداشته باشه!
🟢 - حالا سی شارپ 13 چیکار کرده؟
مایکروسافت اومده گفته:
ببین اگه واقعا نیاز داری از ref استفاده کنی، بیا تو یه تابع کوچیک داخل متدت (local function) ازش استفاده کن. اونجا مشکلی پیش نمیاد، چون تابع داخلی async نیست و اجرای پیوسته داره.
فرض کن میخوای توی یه async متد، مقدار یه عدد توی آرایه رو دو برابر کنی:
(تصویر)
این کد تو سی شارپ 13 کاملا اوکیه
اما اگه همینو تو سی شارپ 12 یا پایین تر بنویسی، خطا می گیری چون می گه " تو نمی تونی async از ref استفاده کنی!"
پس چی شد نتیجه؟
تو سی شارپ 13 می تونی تو متدهای async یا iterator ( اونایی که yield return دارن ) از ref استفاده کنی فقط اگه اون کد رو ببری تو یه تابع داخلی.
اینطوری هم سرعت اجرای کدت بالا میره، هم محدودیت قدیمی حل میشه.
#CSharp13
#DotNet9
تا قبل از سی شارپ 13، نمی تونستی توی این مدل متدها از چیزهایی مثل ref استفاده کنی. یعنی نمی تونستی یه پارامتر رو با ref بفرستی تو متد که مقدارش تغییر کنه. چون async وقتی به await می رسه، یه جورایی "مکث" می کنه، و بعد دوباره از همونجا ادامه میده. پس اگه تو اون وسط به حافظه ای اشاره کنی(ref همین کار رو می کنه)، ممکنه اون حافظه تغییر کرده باشه یا حتی وجود نداشته باشه!
🟢 - حالا سی شارپ 13 چیکار کرده؟
مایکروسافت اومده گفته:
ببین اگه واقعا نیاز داری از ref استفاده کنی، بیا تو یه تابع کوچیک داخل متدت (local function) ازش استفاده کن. اونجا مشکلی پیش نمیاد، چون تابع داخلی async نیست و اجرای پیوسته داره.
فرض کن میخوای توی یه async متد، مقدار یه عدد توی آرایه رو دو برابر کنی:
(تصویر)
این کد تو سی شارپ 13 کاملا اوکیه
اما اگه همینو تو سی شارپ 12 یا پایین تر بنویسی، خطا می گیری چون می گه " تو نمی تونی async از ref استفاده کنی!"
پس چی شد نتیجه؟
تو سی شارپ 13 می تونی تو متدهای async یا iterator ( اونایی که yield return دارن ) از ref استفاده کنی فقط اگه اون کد رو ببری تو یه تابع داخلی.
اینطوری هم سرعت اجرای کدت بالا میره، هم محدودیت قدیمی حل میشه.
#CSharp13
#DotNet9
👍3❤1
اکستنشن تم DotNet Theme برای ویژوال استودیو
🎨 تمی اختصاصی برای توسعهدهندگان داتنت، با 16 استایل متفاوت و رنگبندیهای جذاب که محیط کاری شما رو در Visual Studio تغییر میده. حالا دیگه کدنویسی در ویژوال استودیو حس و حال جدیدی پیدا میکنه!
📥 دانلود از Marketplace
🔗 سورسکد و اطلاعات بیشتر
🎨 تمی اختصاصی برای توسعهدهندگان داتنت، با 16 استایل متفاوت و رنگبندیهای جذاب که محیط کاری شما رو در Visual Studio تغییر میده. حالا دیگه کدنویسی در ویژوال استودیو حس و حال جدیدی پیدا میکنه!
📥 دانلود از Marketplace
🔗 سورسکد و اطلاعات بیشتر
Visualstudio
dotnettheme - Visual Studio Marketplace
Extension for Visual Studio - A refined collection of bold, beautiful themes for Visual Studio — crafted to elevate focus, reduce eye strain, and make every line of code shine.
🔥2🥰1
.NET | دات نت pinned «اکستنشن تم DotNet Theme برای ویژوال استودیو 🎨 تمی اختصاصی برای توسعهدهندگان داتنت، با 16 استایل متفاوت و رنگبندیهای جذاب که محیط کاری شما رو در Visual Studio تغییر میده. حالا دیگه کدنویسی در ویژوال استودیو حس و حال جدیدی پیدا میکنه! 📥 دانلود از Marketplace…»
.NET | دات نت
اکستنشن تم DotNet Theme برای ویژوال استودیو 🎨 تمی اختصاصی برای توسعهدهندگان داتنت، با 16 استایل متفاوت و رنگبندیهای جذاب که محیط کاری شما رو در Visual Studio تغییر میده. حالا دیگه کدنویسی در ویژوال استودیو حس و حال جدیدی پیدا میکنه! 📥 دانلود از Marketplace…
در حال توسعه این اکستنشن برای vscode🙂
👏2👍1
سورس کد مرورگر فایرفاکس موزیلا به صورت رسمی روی گیتهاب اومد.
https://github.com/mozilla-firefox/firefox
https://github.com/mozilla-firefox/firefox
GitHub
GitHub - mozilla-firefox/firefox: The official repository of Mozilla's Firefox web browser.
The official repository of Mozilla's Firefox web browser. - mozilla-firefox/firefox
موتورِ جستجویِ رایگان و متنباز بدونِ نیاز به ثبتنام.
جستجو در اینترنت، یوتیوب، ردیت، مقالات آکادمیک و ... .
پشتیبانی از مدلهایِ
ـ Claude 3.7 Sonnet
ـ GPT 4o
ـ o4 mini
ـ Grok 3.0
ـ Gemini 2.5 pro
ـ Llama 4
و ... .
scira.ai
جستجو در اینترنت، یوتیوب، ردیت، مقالات آکادمیک و ... .
پشتیبانی از مدلهایِ
ـ Claude 3.7 Sonnet
ـ GPT 4o
ـ o4 mini
ـ Grok 3.0
ـ Gemini 2.5 pro
ـ Llama 4
و ... .
scira.ai
❤1
اکستنشن تم DotNetTheme حالا برای VS Code
بعد از استقبال از نسخه ویژوال استودیو، حالا DotNetTheme برای VS Code هم منتشر شد؛ با رنگ بندی های مدرن و هماهنگ، مخصوص یه تجربهای لذت بخش تر در کدنویسی.
📥 دانلود از Marketplace
🔗 سورس کد و جزئیات بیشتر
بعد از استقبال از نسخه ویژوال استودیو، حالا DotNetTheme برای VS Code هم منتشر شد؛ با رنگ بندی های مدرن و هماهنگ، مخصوص یه تجربهای لذت بخش تر در کدنویسی.
📥 دانلود از Marketplace
🔗 سورس کد و جزئیات بیشتر
Visualstudio
dotnetthemevs - Visual Studio Marketplace
Extension for Visual Studio Code - A beautifully curated collection of modern, elegant and developer-friendly themes. Featuring Persian Gulf inspired colors and more.
❤2👏1
.NET | دات نت pinned «اکستنشن تم DotNetTheme حالا برای VS Code بعد از استقبال از نسخه ویژوال استودیو، حالا DotNetTheme برای VS Code هم منتشر شد؛ با رنگ بندی های مدرن و هماهنگ، مخصوص یه تجربهای لذت بخش تر در کدنویسی. 📥 دانلود از Marketplace 🔗 سورس کد و جزئیات بیشتر»
“Truth can only be found in one place: the code.”
— Robert C. Martin
«حقیقت فقط در یک جا پیدا میشه: داخل کد.»
— Robert C. Martin
«حقیقت فقط در یک جا پیدا میشه: داخل کد.»