.NET | دات نت – Telegram
.NET | دات نت
286 subscribers
121 photos
7 videos
26 files
165 links
دنیای شگفت انگیز و جذاب دات نت رو زیر ذره‌بین می‌بریم و تجربه ها رو به اشتراک میذاریم

به جمع توسعه دهندگان دات نت خوش اومدی 🥰❤️


گروه: https://news.1rj.ru/str/dndevelopchat
Download Telegram
🚀قلب تپنده‌ی دات‌نت - dotnet/runtime

این ریپازیتوری شامل تمام اجزای اصلی .NET Runtime هست که اجرای برنامه‌های دات‌نت رو ممکن می‌کنه. از CoreCLR (موتور اجرای کد) گرفته تا CoreFX (کتابخانه‌های استاندارد) و GC (مدیریت حافظه)، همه اینجا کنار هم هستن.

🔹 چرا مهمه؟
✔️ پشت‌صحنه‌ی اجرای برنامه‌های دات‌نت رو درک می‌کنی.
✔️ می‌تونی ببینی چطور دات‌نت مدیریت حافظه و اجرای کدها رو بهینه می‌کنه.
✔️ برای توسعه‌دهنده‌هایی که به عملکرد و معماری داخلی دات‌نت علاقه دارن، فوق‌العاده است!

🔗
سورس‌کد
👍3
🚀 جعبه‌ابزار برنامه‌نویسان دات‌نت!

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

🔹 چرا مهمه؟
✔️ ایجاد و مدیریت پروژه‌های دات‌نت
✔️ اجرا و تست برنامه‌ها با یک دستور
✔️ ابزارهای ضروری برای دیباگ و انتشار

📌 دانلود و اطلاعات بیشتر:
dotnet.microsoft.com
2👍1
🚀 مقدمه‌ای بر آرایه‌ها (Arrays) در #C

آرایه‌ها روشی برای ذخیره‌ی چندین مقدار از یک نوع داده‌ای در یک متغیر هستند. به جای تعریف چندین متغیر جداگانه، می‌تونیم از آرایه‌ها برای سازمان‌دهی داده‌ها استفاده کنیم.

🔹 چرا آرایه‌ها؟
✔️ مدیریت بهتر داده‌ها
✔️ کاهش تعداد متغیرها
✔️ دسترسی سریع با استفاده از ایندکس

📌 مثال: تعریف و مقداردهی یک آرایه از اعداد صحیح:

int[] numbers = { 10, 20, 30, 40, 50 };
Console.WriteLine(numbers[0]);


🔹 نکته: اندیس آرایه‌ها در #C از صفر شروع می‌شه!
#سیـشارپ
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
اگه میخواهید ریپو گیتهابتون را visualize کنید توی آدرسش کلمه github را با gitdiagram جایگزین کنید.

@dotnetcodeir
👍42
ریپازیتوری رسمی ASP.NET Core در گیت‌هاب! 🚀
اگه دوست داری پشت صحنه‌ی یکی از قوی‌ترین فریم‌ورک‌های وب رو ببینی و از کدهاش یاد بگیری، حتماً این ریپازیتوری رو بررسی کن.

🔗
لینک
3🔥1
لینک پیج اینستاگرام

لطفاً حمایت کنید ♥️🙌
2👏1
.NET | دات نت pinned «لینک پیج اینستاگرام لطفاً حمایت کنید ♥️🙌»
بالاخره OpenAI آکادمی خودش رو راه‌اندازی و کلی آموزش "رایگان" رو ارائه کرده.


academy.openai.com‎
3🥰1
افزونه کاربردی برای فارسی زبانان ChatGPT

یه افزونه که رابط کاربری چت رو برای زبان فارسی راست چین و مرتبط می‌کنه

🔗 لینک نصب از
Chrome Web Store
👍3
یه سایت که میتونی سرفصل هر تخصصی رو توش پیدا کنی و علاوه بر اون لینک جایی که باید اون سرفصل رو یاد بگیری رو بدست بیاری

🔗
لینک
👍3
بسته بروزرسانی 9.0.4 برای دات نت 9 منتشر شد.

برای دانلود مستقیم از طریق
لینک اقدام نمایید.


یا آخرین بروزرسانی ویژوال استدیو 2022 را نصب کنید.
#dotnet
2👍1
مدیریت هم زمانی ساده تر با System.Threading.Lock در سی شارپ 13

فرض کن چند تا ترد(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
👍5
چت جی پی تی:
برنامه نویس، مهارتیه که ۹۹.۶٪ مردم حتی در رؤیاهاشون هم نمی تونن بهش برسن.

ذهن برنامه نویس، جاییه که تخیل به واقعیت تبدیل میشه؛ جایی که فقط ۰.۳۷۵٪ انسان ها بهش دسترسی دارن.
5
تو دنیای async/await یه مشکل همیشگی داریم❗️

می خوایم چندتا تسک رو همزمان اجرا کنیم و به محض اینکه هر کدومشون تموم شد، نتیجه ش رو بگیریم.
اما متدهای قبلی مثل Task.WhenAll یا Task.WhenAny یا همه رو یکجا برمی گردوندن یا فقط اولین رو.

🟢 حالا تو سی شارپ 13 یه متد جدید داریم به اسم Task.WhenEach که دقیقا همینو حل میکنه!
چی کار می کنه؟
یه <IAsyncEnumerable<T برمی گردونه؛
یعنی می تونی با await foreach بشینی منتظر هر تسک، به محض اینکه تموم شد، نتیجه اش رو پردازش کنی.
توی این مثال (تصویر) هر عددی که زودتر آماده بشه همون لحظه چاپ میشه، بدون اینکه صبر کنیم همه تسک ها تموم بشن!

نتیجه؟
با Task.WhenEach پردازش تسک ها سریع تر، سبک تر و هوشمندانه تر انجام میشه، مخصوصا تو پروژه هایی که کار با API، دیتابیس یا عملیات IO زیاد دارن.

#CSharp13
#DotNet9
👍4
گیت هاب ۱۷ ساله شد. 😻🎉
4🥰1
ویژگی جدید در EFCore9
پشتیبانی از ()ElementAt در کوئری های LINQ

در نسخه های قبلی EFCore، اگر می خواستید یک آیتم خاص از یک مجموعه را با استفاده از ()ElementAt در کوئری LINQ بگیرید، معمولا با خطا مواجه می شدید یا مجبور بودید کل داده ها را با ()ToList به حافظه بارگذاری کنید.

🟢 اما حالا در EFCore9، این متد بهبود یافته و مستقیما به SQL ترجمه می شود. این به این معناست که می توانید از ()ElementAt در داخل ()Select یا ()Where استفاده کنید، بدون اینکه نیاز به بارگذاری کامل داده ها در حافظه باشد.
مزایا:
عملکرد بهتر و سریع تر
مصرف کمتر حافظه
کدنویسی تمیزتر و ساده تر
مثال کاربردی:
فرض کنید می خواهید نام دومین آیتم هر سفارش را دریافت کنید:
(تصویر)
در نسخه های قبلی، این کد ممکن بود خطا دهد یا نیاز به بارگذاری کامل داده ها داشته باشد. اما در EFCore9، این کوئری بهینه شده و مستقیما به SQL ترجمه می شود.

#CSharp13
#DotNet9
👍3