DotNet | دات نت
Статистикаتو این روزا بهتره که همیشه علم خودمون رو بالا ببریم و بتونیم با سریع ترین راه ممکن خودمونو بروز نگه داریم. - سعی کنیم از کمترین امکانات بیشترین بهره رو ببریم منتظرت هستیم😉 دنیا رو جای بهتری برای یادگیری کنیم 🌹 #course #book 🆔 @dotnetcode
- Последний пост
- 10 июл.
- Последнее чтение
- 15 авг.
- Постов за неделю
- 0
- Всего постов
- 27
- Тип
- открытый
- Язык
- персидский
- Категория
- Книги
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
#مهندس_فکر_کن قسمت:4️⃣ 🎯مصاحبهکننده: ءCache Stampede چیست؟ فرض کن یک کلید در Cache داری: Product:123 و TTL آن 5 دقیقه است. در لحظهای که این کلید منقضی میشود، همزمان 5000 درخواست برای همان محصول میآید. اتفاقی که میافتد: Client 1 ----\ Client 2 -----\ Client 3 -------> Cache Miss Client 4 -----/ Client 5 ----/ ... 5000 Requests همه همزمان Cache Miss میخورند. سپس همه به Database میروند. 5000 Query ↓ Database در نتیجه Database Overload، افزایش شدید Latency ،احتمال Down شدن سرویس. به این حالت Cache Stampede میگویند. حالا بگو ببینم برای حل این مشکل چه راهکار هایی میدی؟🤔
1. Indexes منابع پیشنهادی این چالش که برای من اینها جذاب بوده و هست. A. Designing Data-Intensive Applications 2nd Edition [book] - Chapter 4 - required B. Database Internals [book] - Chapters 1, 2 - required - Chapter 3, 4 - optional C. Pro SQL Server Internals [book] - Chapters 1, 2, 4, 6 - required - Chapters 3, 5 - optionals قرار نیست زردآلو بیاد تو گلو باشه رشد همیشه با کمی سختی، فشار و کش اومدن همراهه. هر وقت دیدی همهچی زیادی راحته، احتمالاً داری همون چیزهایی رو تکرار میکنی که بلدی. گرم دم اونایی که با ما بودن و ادامه میدن ❤️ Update 1 : من امروز که می خواستم کتاب اولی رو مجددا بخونم فهمیدم که ادیشن 2 هم اومده و این عنوان توی فصل چهارم هست برای همین آپدیت کردم تکست رو، در جریان باشید. Update 2: یکی از گلوگاه های بیزینس هایی مثل ما که همیشه انگار توی بلک فرایدی هستیم دیتابیس و محدودیت هاشه، برای همین خواستم با بزرگوار شروع کنید، پس اگر وقت داشتین حتما ۲ تا منبع اول رو بخونید :) @thisisnabi_dev
آینده هوش مصنوعی و مهندسی کامپیوتر هوش مصنوعی مهندسی را نابود نمیکند، اما در سکوت در حال از بین بردن چیزی بسیار مهمتر است: مسیر رشد نیروهای جونیور! اخیرا که ویدئوی کنفرانس BUILD و صحبتهای اسکات هنسلمن و مارک روسینوویچ را دیدم یکی از مهمترین واقعیتها دربارهی هوش مصنوعی در مهندسی را مطرح کردند؛ حقیقتی که باید بلندتر گفته شود، واقعیتی که بیشتر شرکتها الان دیگر فهمیدهاند: هوش مصنوعی بهترین نتایجش را زمانی ارائه میدهد که مهندسان ارشد با آن کار میکنند. اما در عین حال، هوش مصنوعی تقریبا تمام وظایف سطح جونیور را جایگزین کرده است: ایجاد ساختار اولیه، دیباگ، نوشتن کدهای تکراری (boilerplate)، تست کردن و غیره. در نتیجه امروز بسیاری از تیمها عملاً استخدام جونیورها را متوقف کردهاند. و این همان خطر واقعی است. 🔥 اگر امروز جونیورها حذف شوند، فردا سنیوری وجود نخواهد داشت. بدون جونیور ⬅️ بدون نیروهای میانی ⬅️ بدون سنیور ⬅️ بدون آرشیتکت ⬅️ و در نهایت کسی نمیماند که بتواند هوش مصنوعی را به درستی هدایت کند. ما هم این موضوع را از نزدیک دیدهایم. به همین دلیل در CrystaCode بهطور جدی روز برنامهی #cs_internship سرمایهگذاری میکنیم تا جریان پایداری از استعدادهای جونیور حفظ شود و مسیر واقعی رشد آنها به نسل بعدی مهندسان ارشد فراهم گردد. چون آیندهی مهندسی به کسانی بستگی دارد که هنوز سنیور نشدهاند. 🔗 صحبتهای اسکات هنسلمن و مارک روسینوویچ را در یوتیوب ببینید. #مهران_داودی (لینکدین - بلاگ) ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید. کانال تلگرام: @SoftwarePhilosophy ______
تحولی بزرگ در دنیای سیشارپ: ویژگی هیجانانگیز Union Types در C# 15! بالاخره یکی از جذابترین، مدرنترین و پردرخواستترین قابلیتهای دنیای برنامهنویسی داره به سیشارپ میآد. در رویداد اخیر مایکروسافت، مدس تورگرسن (Mads Torgersen) و داستین کمپبل (Dustin Campbell) رسماً از ویژگی بینظیر Union Types رونمایی کردند؛ قابلیتی که قرار است حدود ماه نوامبر همراه با C# 15 به طور رسمی منتشر بشه (البته نسخههای پیشنمایش اون همین الان در وبویژوال استودیو و داتنت ۱۰ در دسترسه!). اما این ویژگی چیه، چطور کار میکنه و چرا باید به عنوان یک داتنت دولوپر براش هیجانزده باشیم؟ بیایید خیلی ساده و تخصصی بررسیش کنیم: 💡 Union Types دقیقاً چیه؟ به زبان ساده، این ویژگی به شما اجازه میده مجموعهای محدود، بسته و مشخص از تایپهای مختلف رو زیر چتر یک نام واحد تعریف کنید. مدس و داستین توی دمو دو تا مثال فوقالعاده زدن که کاربرد واقعی اون رو کاملاً روشن میکنه: 🐾 مثال اول؛ حیوانات خانگی (Pets): تصور کنید چند کلاس یا رکورد کاملاً مستقل به اسمهای Dog، Cat و Bird دارید که از پکیجها یا کتابخانههای مختلف میآیند و هیچ ارثبری مشترکی ندارند. تا قبل از این، برای داشتن لیستی از آنها مجبور بودید از یک لیست از جنس object استفاده کنید که اصلاً ایمن نبود و ممکن بود ناخواسته یک Shark (کوسه!) هم وارد لیست بشه. اما با قابلیت جدید مینویسید: union Pet { Dog, Cat, Bird } حالا کامپایلر با قدرت از کد شما محافظت میکنه؛ اگر بخواهید Shark رو به این لیست پاس بدید، خطای کامپایل میگیرید. علاوه بر این، موقع نوشتن عبارت switch برای پردازش آنها، کامپایلر بررسی میکنه که حتماً تمام حالتها (سگ، گربه، پرنده) رو پوشش داده باشید (Exhaustive Pattern Matching) و اگر موردی جا بمونه بهتون وارنینگ میده. 🌐 مثال دوم؛ ساختار Result برای مدیریت خطا در شبکه: یکی از کاربردیترین الگوها در فریمورکهای مدرن (مثل Result Pattern)، مدیریت پاسخهای شبکه است. یک متد خروجیاش یا موفقیتآمیز است و داده برمیگرداند (Success<T>) یا با خطا مواجه میشود (Error). با تعریف یک Union ساده مثل union Result<T> { Success<T>, Error } بدون نیاز به چک کردن مقادیر Null یا ساختارهای پیچیده جنریک، خروجیها رو با بالاترین امنیتِ تایپ (Type Safety) مدیریت میکنید. 🛠 زیر پوست کامپایلر چه خبره؟ (استفاده از Struct و کنترل Boxing) شاید بپرسید تیم توسعه سیشارپ چطور این کار رو بدون افت عملکرد و پرفورمنس انجام داده؟ زیر پوست کامپایلر، برای هر Union Type یک Struct داخلی (Value Type) ساخته میشه. این استراکت شامل یک سیستم نشانهگذاری (Tag) برای تشخیص تایپ فعلی و فضایی بهینهسازیشده برای نگهداری خودِ مقدار هست. نکته طلایی اینجاست که کامپایلر به طور هوشمندانهای فرآیند Boxing (انتقال از استک به هیپ) رو کنترل و تا حد امکان از اون جلوگیری میکنه. این یعنی مدیریت حافظه فوقالعاده بهینه و بدون راندمان منفی، که در متدهای پر ترافیک و مسیرهای داغ (Hot Paths) بکاند برنامهتون معجزه میکنه! 👩💻 تفاوت بزرگ با تایپاسکریپت چیست؟ اگر فرانتاند کار کرده باشید یا با TypeScript آشنا باشید، قطعاً با Unionها برخورد داشتید؛ اما پیادهسازی سیشارپ یک تفاوت بنیادین دارد: در تایپاسکریپت: این ویژگی کاملاً ساختاری (Structural) است و در زمان اجرای برنامه (Runtime) کلاً پاک میشه (Type Erasure) و وجود خارجی نداره. در سیشارپ: این ویژگی اسمی (Nominal) است؛ یعنی تایپها کاملاً در محیط رانتایم زنده و معتبر هستن. به خاطر ساختار اکوسیستم .NET، شما میتونید در زمان اجرا هم دربارهی این تایپها پرسوجو کنید و مستقیماً روشون پترن مچینگ بزنید، بدون اینکه هویت تایپها از بین بره. 🔗لینک ویدیو : https://youtu.be/7qW92AwlrjM?is=2QRght0DTz11t5_P #csharp #dotnet #programming #csharp15 #backend #union_types #developer #architecture #microservices 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥
👩💻 پستگرس رو ۲.۵ برابر سریعتر کن! تصور کن مغز متفکر دیتابیست (Parser) رو بدی دست هوش مصنوعی و خروجی بگیری که از نسخه اصلی هم سریعتر و بهینهتر باشه. دقیقاً همین اتفاق افتاده! تیم Multigres با یک حرکت مهندسی جذاب و کمک گرفتن از Claude Code، تونستن پارسر PostgreSQL رو بازنویسی کنن و به نتایج شگفتانگیزی برسن. این فقط یک آپدیت ساده نیست؛ قدرتنمایی ترکیب مهندسی نرمافزار با AI در لایههای عمیق زیرساختیه. نکات کلیدی این شاهکار فنی: 👇 ✅ افزایش سرعت چشمگیر: دستیابی به سرعت ۲.۵ برابری در پردازش کوئریها نسبت به پارسر استاندارد. ✅ مهندسی با طعم AI: استفاده از هوش مصنوعی برای درک و بهینهسازی پیچیدگیهای سطح پایین (Low-level). ✅ کارایی بالاتر: کاهش سربار سیستم و مدیریت بهتر منابع هنگام اجرای کوئریهای سنگین. این یعنی هوش مصنوعی دیگه فقط برای تولید متن و عکس نیست؛ داره وارد قلب تپنده سیستمها میشه! 🔗 https://multigres.com/blog/ai-parser-engineering #PostgreSQL #Database #AI #TechNews #برنامه_نویسی 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥
👩💻 هنوز داری با کوئریهای سنگین دیتابیس رو زیر بار میبری؟ وقتی صحبت از پرفورمنس در PostgreSQL میشه، خیلیها سریع میرن سراغ ایندکسگذاری. اما گاهی مشکل ایندکس نیست؛ مشکل اینه که داری یه محاسبات سنگین رو بارها و بارها تکرار میکنی! اینجاست که Materialized View (MatView) وارد بازی میشه. برخلاف View معمولی که فقط یه "پنجره" به دیتاست، MatView نتیجه رو واقعاً روی دیسک ذخیره (Cache) میکنه. اما سوال اصلی اینه: کی باید ازش استفاده کنیم و کی فرار کنیم؟ 🤔 ✅ کجا معجزه میکنه؟ (Use Cases) * داشبوردهای مدیریتی: مدیرها معمولاً آمار لحظهای نمیخوان؛ آمار ۵ دقیقه پیش هم راضیشون میکنه. * کوئریهای تحلیلی سنگین: وقتی چند تا Join و Aggregation وحشتناک داری که هر بار اجراش چند ثانیه طول میکشه. * آرشیو دیتا: وقتی دیتای قدیمی تغییر نمیکنه و فقط برای گزارشگیری لازمش داری. ❌ کجا نباید سمتش بری؟ (Red Flags) * دیتای ۱۰۰٪ ریلتایم: اگه کاربر باید تغییر رو در میلیثانیه ببینه، MatView گزینه غلطیه (چون تا Refresh نشه، دیتا قدیمیه). * نرخ تغییرات بالا: اگه دیتای اصلی مدام در حال آپدیته، هزینه Refresh کردن MatView ممکنه بیشتر از سودش بشه. 💡 نکته حرفهای (Pro Tip): موقع آپدیت کردن ویو، دیتابیس ممکنه قفل بشه! برای اینکه سرویس نخوابه، حتماً از دستور زیر استفاده کن تا همزمان با خوندن، بتونی آپدیتش کنی: REFRESH MATERIALIZED VIEW CONCURRENTLY 👇 همین الان چک کن: یه نگاه به لیست Slow Queryهای پروژهت بنداز. اگه کوئری تکراری و سنگین داری، شاید وقتشه "متریالایزش" کنی! 🔗 https://stormatics.tech/blogs/postgresql-materialized-views-when-caching-your-query-results-makes-sense #PostgreSQL #Database #Performance #Backend #SQL 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥
🎆 کوپایلت رو دیگه فقط تو VS Code حبس نکنید! گیتهاب با معرفی GitHub Copilot SDK، بازی رو کلاً عوض کرد. حالا دیگه کوپایلت فقط یک افزونه تکمیل کد نیست؛ بلکه میتونید مغز متفکر اون رو بردارید و مستقیم توی اپلیکیشنهای خودتون بذارید! این یعنی چی؟ یعنی شما میتونید ابزارها و Agentهایی بسازید که دقیقاً با نیازهای شما و تیمتون هماهنگ باشن. چرا این SDK یه انقلابه؟ 👇 ✅ هوش مصنوعی اختصاصی: اپلیکیشنهایی بسازید که به دیتای شما (مثل ریپوزیتوریها یا لاگها) دسترسی دارن و بر اساس اونها تصمیم میگیرن. ✅ جریانهای کاری ایجنتیک (Agentic Workflows): امکان ساخت ایجنتهایی که میتونن چندین مرحله رو طی کنن، ابزارهای مختلف رو صدا بزنن (Tool Calling) و کار رو تموم کنن. ✅ یک مثال واقعی: توی دمو، اپلیکیشنی به اسم "Flight School" ساخته شده که پروفایل گیتهاب شما رو تحلیل میکنه و دقیقاً بر اساس مهارتها و پروژههاتون، بهتون تمرین کدنویسی میده و حتی جوابهاتون رو صحیح میکنه! ✅ فراتر از چت: دیگه فقط با متن سر و کار ندارید؛ میتونید با دسکتاپ تعامل کنید، فایل بسازید یا کارهای پیچیده رو خودکار انجام بدید. 💡 خلاصه: قدرت مدلهای زبانی گیتهاب + دیتای اختصاصی شما = بینهایت امکان جدید. همین الان ویدیو رو ببین و اولین ایده ساخت ایجنتت رو استارت بزن! 👨💻👩💻 📱 مشاهده دمو: https://youtu.be/ct_Ymw9RexM?si=SQgan8rBElWHns-g #GitHubCopilot #AI #DevTools #Programming #ArtificialIntelligence 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥
🔴 انقلاب جدید در گیتهاب: ادغام مستقیم Claude و Codex برای کدنویسی خودکار! گیتهاب (GitHub) در یک حرکت بزرگ برای رقابت با ابزارهایی مثل Cursor، رسماً اعلام کرد که ایجنتهای هوش مصنوعی Claude (از شرکت Anthropic) و Codex را مستقیماً به پلتفرم خود اضافه کرده است. 💡 چه اتفاقی افتاده؟ تا پیش از این، کوپایلت (Copilot) بیشتر متکی به مدلهای GPT بود، اما حالا توسعهدهندگان میتوانند از قدرت مدلهای Claude 3.7 Sonnet و OpenAI Codex به عنوان «ایجنت» استفاده کنند. این یعنی هوش مصنوعی دیگر فقط "پیشنهاد" نمیدهد، بلکه میتواند: 🔹 فایلها را ویرایش کند 🔹 دستورات ترمینال را اجرا کند 🔹 باگها را به صورت خودکار رفع نماید 🔥 ویژگیهای کلیدی این آپدیت: ⭐️ آزادی در انتخاب مدل: اگر طرفدار منطقِ Claude هستید یا سرعتِ Codex، حالا حق انتخاب دارید. ⭐️ درک عمیقتر از پروژه: این ایجنتها میتوانند کانتکست (Context) کامل پروژه شما را بفهمند و تغییرات پیچیده را اعمال کنند. ⭐️ جریان کاری روان: بدون نیاز به سوییچ کردن بین پنجرههای مختلف، همه کارها داخل محیط گیتهاب انجام میشود. 🤔 چرا این مهم است؟ این تغییر نشان میدهد که گیتهاب نمیخواهد میدان را به IDEهای مبتنی بر هوش مصنوعی (مثل Cursor یا Windsurf) ببازد و قصد دارد همه چیز را در خانه خود نگه دارد. 📱لینک ویدیو : https://youtu.be/GuTQDXKwdJQ?si=znwN0dljFmrEF615 #GitHub #AI #Claude #Copilot #Programming #TechNews #گیت_هاب #هوش_مصنوعی #برنامه_نویسی #تکنولوژی #خبر 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥
🔥 نکته حیاتی در Hangfire: جنگ با ساعت و تایمزونها! ⏰🌍 اگر تا حالا براتون پیش اومده که جابی رو برای ساعت ۸ صبح تنظیم کردید ولی ساعت ۱۱:۳۰ اجرا شده، این پست برای شماست! ⚠️ ماجرا چیه؟ هنگفایر (Hangfire) به صورت پیشفرض (Default) همه جابهای تکرارشونده (Recurring Jobs) رو بر مبنای ساعت UTC اجرا میکنه. یعنی اگر تنظیمات تایمزون رو بهش ندید، باید اختلاف ساعت ایران با گرینویچ رو دستی حساب کنید که اصلا جالب نیست. حالا اگر بخوایم بگیم "به وقت ایران اجرا شو"، با یه چالش جدید روبرو میشیم: 🔸 ویندوز میگه: "Iran Standard Time" 🔸 لینوکس/داکر میگه: "Asia/Tehran" اگر این تفاوت هندل نشه، روی سرور لینوکسی یا کانتینر داکر به خطای TimeZoneNotFoundException میخورید! 🤯 ✅ راه حل نهایی (Cross-Platform): با این تیکه کد، هم مشکل UTC رو حل کنید و هم کدی بنویسید که روی ویندوز، لینوکس و مک بدون تغییر کار کنه: using System.Runtime.InteropServices; // 1. تشخیص خودکار شناسه تایمزون بر اساس سیستمعامل // Windows -> "Iran Standard Time" // Linux/Docker -> "Asia/Tehran" var tehranId = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "Iran Standard Time" : "Asia/Tehran"; // 2. تنظیم ساعت به وقت ایران RecurringJob.AddOrUpdate( type.FullName, () => job.ExecuteAsync(), attribute.CronExpression, new RecurringJobOptions { // خداحافظ UTC، سلام تهران! 👋 TimeZone = TimeZoneInfo.FindSystemTimeZoneById(tehranId) } ); 💡 با این روش، دیگه نگران جلو/عقب کشیدن ساعتها یا تفاوت محیط لوکال و سرور نباشید. 🔗 بحث مرتبط در کامیونیتی هنگفایر: https://discuss.hangfire.io/t/need-local-time-instead-of-utc/279/7 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥 #CSharp #DotNet #Hangfire #Docker #Backend #TimeZone #Tips
🚨 تغییر مهم در MassTransit: لایسنس تجاری از نسخه ۹.۰.۰ اگر در پروژههای داتنتی از کتابخانه MassTransit استفاده میکنید، مراقب آپدیتهای جدید باشید. از نسخه 9.0.0 به بعد، این کتابخانه مدل لایسنس خود را به Commercial تغییر داده است. خلاصه وضعیت جدید: 🔹 نسخههای ۸ و قدیمیتر: همچنان رایگان و Open Source (Apache 2.0) باقی میمانند. 🔹 نسخه ۹ و بالاتر: برای شرکتهایی با درآمد بالای ۱ میلیون دلار در سال پولی است. 🔹 استارتاپها و توسعهدهندگان مستقل: اگر درآمد سالانه زیر ۱ میلیون دلار باشد، همچنان میتوانید با تخفیف ۱۰۰ درصدی (رایگان) استفاده کنید. --- 🛠 راهکار فنی: جلوگیری از آپدیت خودکار به نسخه پولی برای اینکه ابزارهایی مثل NuGet یا Dependabot به صورت خودکار پروژه شما را به نسخه ۹ (پولی) ارتقا ندهند، باید ورژن را در فایل .csproj قفل کنید. استفاده از براکت `[]` به معنای اجبار روی یک نسخه دقیق است: <PackageReference Include="MassTransit" Version="[8.5.7]" /> چرا این کار مهم است؟ * نوشتن Version="8.5.7" به NuGet اجازه میدهد نسخههای بالاتر (مثل 9.0.1) را هم نصب کند. * اما Version="[8.5.7]" یعنی فقط و فقط همین نسخه نصب شود و جلوی ارتقای ناخواسته به نسخه پولی را میگیرد. اگر پروژهی بزرگی دارید که فعلاً بودجه خرید لایسنس ندارد، حتماً این تغییر را در پکیجهای خود اعمال کنید. 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥👨💻 #DotNet #MassTransit #CSharp #Programming_Tips #Microservices
🛠 نجات توسعهدهندهها در شرایط «نت ملی»؛ تجربیات عملی ما برای زنده نگه داشتن چرخه تولید توی این چند وقت که دسترسیها محدود شد و اینترنت به حالت داخلی (Intranet) رفت، ما هم مثل خیلی از تیمهای دیگه با چالشهای جدی روبرو شدیم. اما به جای متوقف شدن، سعی کردیم با ابزارهای جایگزین و تغییر استراتژی، جریان کار رو حفظ کنیم. خواستم تجربیات واقعی و سولوشنهایی که تو این مدت پیادهسازی کردیم رو باهاتون به اشتراک بذارم تا شاید گرهای از کار شما هم باز کنه: 1️⃣ عبور از تحریم و محدودیت پکیجها (Frontend & Backend) برای پروژههایی مثل Next.js که وابستگی زیادی به پکیجها دارن، اولین حرکت ما استفاده از Mirror Serverهای داخلی بود. 🔹 پیشنهاد: سرویس Runflare تقریباً اکثر ابزارها رو Mirror کرده، سرورهاش داخلیه و سرعتش عالیه. 🔗 https://runflare.com/mirrors/ 🔥 خبر ویژه: همون روز اول با تیم فنی رانفلر صحبت کردم و دمشون گرم، خیلی سریع درخواست رو پیگیری کردن و Nuget رو هم به لیست سرویسهاشون اضافه کردن. الان دیگه داتنتیها هم میتونن راحت پکیجها رو دریافت کنن. 2️⃣ مدیریت داکر ایمیجها (Docker Images) برای پول (Pull) کردن ایمیجها، پلتفرم docker.ir گزینه کارراهاندازی هست. ⚠️ نکته حیاتی برای داتنتیها: از اونجایی که ایمیجهای داتنت روی Docker Hub نیستن و روی رجیستری مایکروسافت (MCR) قرار دارن، حتماً ایمیجهای SDK و ASP Core رو: ۱. یا روی سیستم لوکال داشته باشید. ۲. یا (روش اصولیتر) روی رجیستری داخلی خودتون Push کنید تا در صورت قطعی، بیلدها فیل نشن. 3️⃣ خداحافظی با وابستگی به کش لوکال (The Nexus Solution) اوایل کار متکی به کشِ لوکال سیستمها (فولدر .nuget) بودیم، اما این روش ریسک بالایی داشت. ✅ راهکار پایدار: ما Nexus رو بالا آوردیم. با این کار تمام پکیجهای فرانت و بکاند یکبار در نکسوس کش میشن و اگه اینترنت کلاً قطع بشه، تیم فنی بدون هیچ توقفی به کارش ادامه میده. 4️⃣ ابزارهای مدیریت سورس، CI/CD و ارتباطات برای اینکه تیم ریموت و پایپلاینها از کار نیفتن، از سرویسهای داخلی و Self-Hosted استفاده کردیم: * گیت و رانر: سرویس Hamgit (محصول همروش) هم مخازن رو میزبانی میکنه و هم Runner برای پایپلاینها میده. * جلسات آنلاین: جایگزین Google Meet، از Jitsi استفاده کردیم (هم توی بازارچه همروش هست، هم میتونید روی سرور خودتون بالا بیارید). * چت سازمانی: ما خودمون Mattermost رو روی سرور شخصی بالا آوردیم که عالیه. اگر دنبال سرویس آمادهاید، Rocket.Chat در بازارچه ابری همروش موجوده. 🔗 یک گزینه کمکی دیگر: سرویس چابکان هم Mirrorهای خوبی ارائه میده که داشتن لینککش به عنوان پلن B ضرری نداره: 🔗 https://iran.chabokan.net/#services 💡 هدفم از این پست فقط انتقال تجربه و کمک به کامیونیتی بود. امیدوارم به کارتون بیاد. هر جا سوالی بود یا کمکی از دستم برمیومد، حتماً بگید. 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥👨💻 #DevOps #DotNet #Network #Programming #Intranet #ExperienceSharing #SoftwareEngineering
سلام رفقا، نه چیزی برای گفتن هست، نه کتابی برای مرور کردن و نه درسی برای یاد گرفتن. تنها چیزی که میشه روش تمرکز کرد توانایی های خودمون بدون اینترنت و AI هست، مثل ۲۳ سال پیش که من شروع کردم.فقط هند بوک و تلاش بسیار. این پیام هم نمیدونم ارسال میشه یا نه، براتون فقط سلامتی آرزو می کنم.
گزیده برترینهای .NET در سال ۲۰۲۵؛ نقشه راه توسعهدهندگان حرفهای دنیای داتنت در سال ۲۰۲۵ با سرعت خیرهکنندهای حرکت کرد. مایکروسافت لیست مقالات برتر سال را منتشر کرده که هر کدام نقطه عطفی در مسیر حرفهای ما هستند. در ادامه، این تحولات کلیدی را مرور میکنیم: 🔹 پایداری و قدرت با معرفی .NET 10 LTS نسخه دهم داتنت به عنوان یک نسخه با پشتیبانی بلندمدت (LTS) منتشر شد تا خیال سازمانها را از بابت امنیت و پایداری راحت کند. این نسخه تمرکز ویژهای بر بهبودهای Runtime و قابلیتهای جدید زبان C# 14 دارد که توسعه اپلیکیشنهای پیچیده را سادهتر از همیشه میکند. 🔗 مطالعه جزئیات .NET 10 🔹 اوجگیری پرفورمنس در لایههای زیرساختی بهینهسازی بازدهی در سال ۲۰۲۵ به تکامل رسید. مقالات فنی امسال نشان دادند که چطور با استفاده از ویژگیهای جدیدی مثل Dynamic PGO و بهینهسازیهای لایه JIT، سرعت اجرای کدها بدون نیاز به تغییر در منطق بیزینس، جهش چشمگیری داشته است. 🔗 بررسی بهبودهای Performance 🔹 یکپارچگی عمیق با دنیای هوش مصنوعی (AI) توسعه هوشمند حالا بخش جداییناپذیری از اکوسیستم داتنت است. با معرفی کتابخانههای جدید و ابزارهای توسعه مدلهای محلی، مایکروسافت راه را برای ساخت اپلیکیشنهایی که از "عاملهای هوشمند" (AI Agents) استفاده میکنند، هموار کرده است. 🔹 تحول در تجربه توسعه با فرمتهای مدرن سادهسازی فرآیند کدنویسی یکی از اولویتهای اصلی امسال بود. معرفی فرمت جدید و متنی برای فایلهای Solution (فایلهای .slnx) و همچنین قابلیتهای جدید در CLI داتنت، باعث شده تا مدیریت پروژههای بزرگ بسیار سریعتر و لذتبخشتر شود. 🔹 توسعه ابری مدرن با پلتفرم .NET Aspire مدیریت میکروسرویسها و سیستمهای توزیعشده با داتنت اسپایر وارد عصر جدیدی شده است. این ابزار حالا به استاندارد طلایی برای ارکستراسیون، مانیتورینگ و لاگینگ اپلیکیشنهای Cloud-Native تبدیل شده و فاصله بین توسعه و استقرار را از بین برده است. 🔗 مشاهده لیست کامل و پستهای منتخب: Top .NET Blog Posts of 2025 #برنامه_نویسی #دات_نت #سی_شارپ #تکنولوژی #هوش_مصنوعی #میکروسرویس 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥👨💻
بازگشت مقتدرانه گوگل با Gemini! زمانی که ChatGPT معرفی شد، بسیاری فکر میکردند دوران سلطه گوگل بر اینترنت به پایان رسیده است. اما آمارهای جدید سال ۲۰۲۵ نشان میدهد که «غول جستجو» نه تنها نمرده، بلکه با مدل Gemini در حال بازپسگیری قلمرو خود است. 📊 تحلیل آمار خیرهکننده رشد: طبق گزارشهای اخیر، سهم بازار جمینای در سال جاری میلادی ۳ برابر شده است. اما این عدد در واقعیت به چه معناست؟ 1️⃣ انفجار ترافیک: بازدیدهای مستقیم از پلتفرم Gemini به رقم باورنکردنی ۸۹۴ میلیون در ماه رسیده است. 2️⃣ رشد کاربران فعال: حالا بیش از ۴۵۰ میلیون کاربر فعال ماهانه از خدمات جمینای استفاده میکنند. 3️⃣ سهم بازار: گوگل موفق شده سهم خود را به ۱۳.۵٪ برساند؛ جهشی که لرزه بر اندام OpenAI و Microsoft انداخته است. 💡 چرا ورق به نفع گوگل برگشت؟ (جزئیات استراتژیک) 🔹 یکپارچگی بینظیر (The Ecosystem Power): گوگل جمینای را در تمام سوراخسمبههای زندگی دیجیتال ما تزریق کرده است! از دکمه Gemini در اندروید گرفته تا تحلیل مستقیم فایلها در Google Docs و Drive. کاربر دیگر نیازی به جابهجایی بین اپلیکیشنها ندارد. 🔹 سرعت و هوش مدلهای جدید: معرفی مدلهای سری Flash (مثل Gemini 1.5 Flash) بازی را عوض کرد. این مدلها به شدت سریع و ارزان هستند و برای کارهای روزمره، از ChatGPT-4o عملکرد روانتری نشان میدهند. 🔹 قابلیتهای چندوجهی (Multimodality): جمینای برخلاف بسیاری از رقبا، از پایه برای درک همزمان ویدیو، صوت و متن طراحی شده. این یعنی شما میتوانید یک ویدیوی ۱ ساعته یوتیوب را به او بدهید و در عرض چند ثانیه، جزئیترین نکاتش را بپرسید. 🔹 رفع اشتباهات گذشته: گوگل با درس گرفتن از گافهای اولیه (مثل ماجرای تولید تصاویر تاریخی)، حالا روی دقت دادهها و ارائه لینکهای مستقیم منبع تمرکز کرده که اعتماد کاربران بیزنسی را جلب کرده است. 🏁 نتیجهگیری: جنگ هوش مصنوعی وارد فاز جدیدی شده است. اگر OpenAI "نوآور" بود، گوگل نشان داد که "پادشاه مقیاسپذیری" است. با این نرخ رشد، سال ۲۰۲۶ میتواند سالی باشد که جمینای شانه به شانه ChatGPT حرکت کند. 🤔 نظر شما چیست؟ آیا شما هم از ChatGPT به سمت Gemini کوچ کردهاید یا هنوز وفادار ماندهاید؟ در کامنتها بگویید چرا! https://www.perplexity.ai/page/google-s-gemini-triples-market-S26usozfTj2sgx5g_NiX1A #هوش_مصنوعی #گوگل #تکنولوژی #جمینای #بیزنس #AI #Gemini #Google #ChatGPT 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥👨💻
🐳 با یک کلیک، داکر خود را نونوار کنید! آپدیت نگه داشتن ایمیجها همیشه دردسر بوده؛ یا یادت میرود، یا محیط ترمینال هنگام دانلود خیلی خشک و بیروح است. اما این اسکریپت PowerShell که براتون آماده کردم، ماجرا را کلاً عوض میکند. 💎 قابلیتهای جذاب این اسکریپت: * تشخیص هوشمند: فقط ایمیجهای معتبر را لیست میکند و موارد اضافی (<none>) را نادیده میگیرد. * داشبورد زنده (Live UI): وضعیت CPU و سرعت دیسک شما را حین آپدیت نشان میدهد. * محاسبه دقیق: زمان باقیمانده (ETA) و سرعت دانلود هر ایمیج را به شما میگوید. * گزارش نهایی شیک: در پایان کار، یک جدول تمیز از ایمیجهای آپدیت شده، حجم مصرفی و زمان صرف شده به شما تحویل میدهد. --- ### 🛠 چطور از آن استفاده کنیم؟ ۱. متن اسکریپت را کپی و در یک فایل با نام update-docker.ps1 ذخیره کنید. ۲. ترمینال (PowerShell) را باز کنید. ۳. دستور زیر را اجرا کنید: .\update-docker.ps1 خداحافظ ایمیجهای قدیمی، سلام به سرعت و امنیت! ⚡️ --- #Docker #DevOps #PowerShell #Automation #Programming #داکر #برنامه_نویسی #دوآپس #اتوماسیون 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥👨💻
معرفی FunctionGemma: کوچولوی نابغه گوگل برای برنامهنویسها! بچهها سلام! خبر دارید که گوگل از یه مدل هوش مصنوعی جدید و خیلی خاص به اسم FunctionGemma رونمایی کرده؟ اگر یادتون باشه، گوگل قبلاً مدل Gemma 3 270M رو معرفی کرده بود که به خاطر اندازه خیلی کوچیکش حسابی سر و صدا کرد. اما جامعه برنامهنویسها دنبال یه قابلیت مهم بودن: Tool Calling یا همون توانایی فراخوانی ابزارها و توابع. حالا گوگل با معرفی FunctionGemma دقیقاً همین نیاز رو برطرف کرده. حالا این مدل اصلاً به چه دردی میخوره؟ این مدل طراحی شده تا زبان عامیانه ما رو بفهمه و اون رو به دستورات برنامهنویسی (API calls) تبدیل کنه. ویژگیهای اصلیش ایناست: ✅ سرعت خیرهکننده: چون مدل خیلی سبک و بهینهای هست، با سرعت خیلی بالا حتی روی گوشیهای موبایل و سختافزارهای معمولی اجرا میشه. ✅ امنیت و حریم خصوصی: همه پردازشها میتونه کاملاً روی خود دستگاه (On-device) انجام بشه؛ یعنی لازم نیست دیتای کاربر به ابری یا سروری فرستاده بشه. ✅ تخصص بالا: شما میتونید این مدل رو برای کارهای خاص خودتون «Fine-tune» یا شخصیسازی کنید. مثلاً توی دموهای ویدیو دیدیم که با یه دستور صوتی ساده مثل "چراغ قوه رو روشن کن" یا "ناهار فردا رو توی تقویم ثبت کن"، مدل دقیقاً میفهمه باید کدوم تابع رو توی گوشی اجرا کنه. چند تا مثال جذاب از کاربردش: * توی بازیها: میتونید به بازی بگید "توی ردیف اول گل آفتابگردان بکار و بهشون آب بده" و مدل خودش مختصات رو پیدا میکنه و دستور کاشت و آبیاری رو به موتور بازی میفرسته! * اپلیکیشنهای موبایل: تبدیل فرمانهای صوتی یا متنی به کارهای واقعی درون برنامه بدون کمترین معطلی. از کجا شروع کنیم؟ 🛠 این مدل الان روی پلتفرمهای معروفی مثل Hugging Face و Kaggle در دسترسه و با اکثر ابزارهای دنیای Open Source مثل Ollama هم کاملاً سازگاره. اگر برنامهنویس هستید یا به دنیای هوش مصنوعی علاقه دارید، پیشنهاد میکنم حتماً یه نگاهی بهش بندازید. گوگل حتی یه «کتاب آشپزی» یا همون Cookbook منتشر کرده که قدم به قدم یادتون میده چطور ازش استفاده کنید. ویدیو کامل رو هم میتونید از اینجا ببینید: 🔗 https://youtu.be/-Tgc_9uYJLI #هوش_مصنوعی #گوگل #برنامه_نویسی #تکنولوژی #Gemma #AI 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥👨💻
چطوری مثل یک «گوگلر» از شر شلوغی ذهن راحت شیم؟ تا حالا شده یه ایده عالی تو مترو به ذهنت برسه و نیم ساعت بعد یادت بره؟ یا وسط ناهار رئیست یه کاری بهت بسپره و فردا صبح اصلاً یادت نیاد چی بود؟ جف سو (که سالها تو گوگل بوده) یه سیستم بهرهوری به اسم Core Workflow رو معرفی کرده که تو گوگل به هزاران نفر یاد داده. اصل حرفش اینه: «مغز ما برای ایدهپردازیه، نه برای نگه داشتن ایدهها!» این سیستم ۴ تا مرحله خیلی ساده داره که فرقی نمیکنه با چه اپلیکیشنی (Notion، تقویم گوگل یا حتی دفترچه یادداشت) انجامش بدی: ۱️⃣ ثبت (Capture): 📱 به محض اینکه تسک، ایده یا فایلی اومد سراغت، سریع یه جا یادداشتش کن. نذار تو چرخدندههای ذهنت بمونه. (مثلاً تو اپلیکیشن Tasks یا Google Keep). ۲️⃣ سازماندهی (Organize): 📁 برای هر چیزی که ثبت کردی، یه «تاریخ انجام» یا یه «برچسب» (Tag) بذار. تسکی که تاریخ نداشته باشه، عملاً گم شدهست. ۳️⃣ مرور (Review): 🔍 این مهمترین بخشه! باید زمانهای مشخصی در روز (مثلاً اول صبح یا قبل تعطیل شدن) داشته باشی که بری سراغ یادداشتهات. توی این مرحلهست که تصمیم میگیری فلان ایده رو کی انجام بدی یا براش تو تقویمت وقت رزرو کنی. ۴️⃣ اجرا (Engage): ✅ حالا که همه چیز مرتبه و براش وقت گذاشتی، با تمرکز کامل برو سراغ انجام دادنش. 💡 چند تا نکته طلایی از ویدیو: * اراده و انگیزه همیشگی نیست؛ سیستم داشته باش تا حتی روزایی که بیحالی هم کارات پیش بره. * ابزار مهم نیست (Notion باشه یا کاغذ)، مهم اینه که به این چرخه پایبند باشی. * سختیِ یاد گرفتن این عادت جدید، خیلی کمتر از استرسِ عقب موندن از کارهاست. اگه میخوای ذهنت آزاد بشه و بازدهیت بره بالا، این ۴ مرحله رو از همین امروز تست کن! #بهره_وری #تکنولوژی #برنامه_ریزی #گوگل #رشد_فردی لینک ویدیو برای دیدن جزئیات بیشتر: https://youtu.be/oO9GLC2iKy8?si=Ew1sRj3H7qNNVm_w 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥👨💻
🛡 انقلابی در امنیت کانتینرها: داکر Hardened Images رایگان شد! اگر در حوزه DevOps یا توسعه نرمافزار فعالیت میکنید، احتمالاً میدانید که پاکسازی ایمیجها از آسیبپذیریها (CVE) یکی از خستهکنندهترین کارهاست. داکر با عمومی کردن کاتالوگ Hardened Images (DHI)، یک استاندارد جدید برای امنیت معرفی کرده است. 🔹 چرا این قابلیت یک تغییر بزرگ (Game Changer) است؟ 1️⃣ امنیت فراتر از انتظار (SLSA Level 3): این ایمیجها فقط "لاغر" نیستند، بلکه دارای گواهینامه SLSA Build Level 3 هستند. این یعنی داکر تضمین میکند که فرآیند ساخت ایمیج کاملاً خودکار، غیرقابل دستکاری و قابل ردیابی است. شما دقیقاً میدانید چه چیزی، چگونه و توسط چه کسی ساخته شده است. 2️⃣ اجرا بدون دسترسی Root (Non-Root by Default): یکی از بزرگترین ریسکهای امنیتی، اجرای اپلیکیشن با دسترسی روت است. تمامی ایمیجهای مقاومسازی شده داکر بهصورت پیشفرض Non-Root هستند. یعنی حتی اگر اپلیکیشن شما هک شود، نفوذگر دسترسی سیستمی به کانتینر نخواهد داشت. 3️⃣ هوش مصنوعی در خدمت امنیت: داکر از یک سیستم AI Guardrail برای بررسی کدهای بالادستی (Upstream) استفاده میکند. اگر پکیجی که داکر از آن استفاده میکند (مثل Nginx یا Python) آپدیت شود و در کد جدیدش یک باگ منطقی یا امنیتی وجود داشته باشد، هوش مصنوعی داکر قبل از انتشار ایمیج، جلوی آن را میگیرد. 4️⃣ شفافیت کامل با SBOM و VEX: هر ایمیج همراه با یک شناسنامه دیجیتال (SBOM) ارائه میشود که لیست تکتک کتابخانهها را دارد. همچنین با استفاده از فایلهای VEX، به شما میگوید کدام آسیبپذیریها واقعاً خطرناک هستند و کدامها تأثیری روی برنامه شما ندارند تا بیهوده وقتتان را صرف هشدارهای اشتباه (False Positives) نکنید. 5️⃣ سازگاری کامل (Drop-in Replacement): برخلاف برخی ایمیجهای امنیتی دیگر که شما را مجبور به تغییر سیستمعامل میکنند، داکر این ایمیجها را بر پایه توزیعهای محبوبی مثل Alpine و Debian ساخته است. یعنی مهاجرت به آنها دردسر فنی عجیبی ندارد. ✅ نتیجه نهایی: استفاده از DHI یعنی کاهش ۹۵ درصدی سطح حملات و رسیدن به نزدیکی صفر CVE. اگر امنیت برایتان اولویت است، همین امروز خط FROM را در داکرفایلهایتان تغییر دهید. 🔗 برای بررسی عمیقتر این ویدیو را ببینید: https://youtu.be/Al1_71oGh18?si=LRONaGOWosQ_srk- #Docker #Security #DevOps #CyberSecurity #CloudNative #DHI #امنیت #داکر #برنامه_نویسی #دواپس 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥👨💻
آینده تستنویسی در .NET؛ وقتی هوش مصنوعی خودش را قضاوت میکند! اگر در اکوسیستم داتنت فعالیت میکنید، حتماً میدانید که ورود AI به اپلیکیشنها، مدلهای سنتی تستنویسی را به چالش کشیده است. دیگر صرفاً چک کردن یک خروجی ثابت کافی نیست؛ ما با مدلهای زبانی (LLM) سر و کار داریم که پاسخهایشان متغیر است. مایکروسافت با معرفی کتابخانههای Microsoft.Extensions.AI.Evaluation و ابزارهای جدید در Visual Studio 2026، پازل تستنویسی هوشمند را کامل کرده است. 💡 نکات کلیدی ویدیو (AI-Powered Testing in VS): در ویدیوی جدید کانال داتنت، مککنا بارلو (PM تیم ابزارهای داتنت) نکات بسیار مهمی را مطرح کرد: 1️⃣ تستنویسی خودکار با Copilot: حالا GitHub Copilot میتواند برای کل Solution شما بهصورت یکجا Unit Testهای باکیفیت بنویسد. این یعنی دیگر لازم نیست ساعتها وقت صرف نوشتن کدهای تکراری تست کنید. 2️⃣ ترکیب Code Coverage و AI: ابزار Code Coverage در ویژوال استودیو حالا هوشمندتر شده؛ نقاطی از کد که تست نشدهاند را شناسایی کرده و مستقیماً به Copilot پیشنهاد میدهد تا برای همان بخشهای پرریسک، تست تولید کند. 3️⃣ گزارشهای بصری (AI Eval Reporting): با ابزار جدید dotnet aieval میتوانید گزارشهای گرافیکی دقیقی در مرورگر ببینید که نشان میدهد مدل هوش مصنوعی شما در چه بخشهایی (مثلاً در Groundedness یا صحت اطلاعات) ضعف داشته است. 4️⃣ فراتر از Black Box: هدف این ابزارها این است که خروجی AI دیگر یک "جعبه سیاه" نباشد. شما میتوانید دقیقاً بفهمید چرا یک مدل امتیاز پایینی گرفته و با چه منطقی پاسخ داده است. 🛠 کتابخانه Microsoft.Extensions.AI.Evaluation شامل چیست؟ این پکیجها فرآیند ارزیابی را به چهار لایه تقسیم میکنند: ✅ ارزیابی کیفی (Quality): سنجش میزان مرتبط بودن (Relevance) و انسجام (Coherence) پاسخها. ✅ ارزیابی ایمنی (Safety): شناسایی خودکار محتوای سمی، نفرتپراکنی یا کدهای مخرب تولید شده توسط AI. ✅ ارزیابی مستند بودن (Groundedness): حیاتیترین بخش برای جلوگیری از توهم (Hallucination)؛ چک میکند که آیا AI بر اساس دیتای واقعی شما حرف میزند یا از خودش داستان میسازد! ✅ ارزیابی کلاسیک (NLP): استفاده از معیارهای BLEU و F1 برای سنجش شباهت متنی با پاسخهای مرجع. چرا این موضوع مهم است؟ در دنیای واقعی، ما نمیتوانیم به خروجی مدلهای هوش مصنوعی اعتماد صددرصدی داشته باشیم. این کتابخانهها به ما "اعتماد سیستماتیک" میدهند. یعنی قبل از اینکه کاربر نهایی با یک پاسخ اشتباه روبرو شود، سیستم تست شما آن را شکار میکند. 📌 ویژگی طلایی: تمام این فرآیندها دارای سیستم Caching هستند؛ یعنی اگر یک تست را دوباره اجرا کنید و ورودی تغییری نکرده باشد، هزینهای برای API پرداخت نمیکنید و نتیجه بلافاصله نمایش داده میشود. 📺 مشاهده ویدیو کامل در یوتیوب: 🔗 https://youtu.be/Bkn78klGhtc?si=c5dBLw1y7ituLTFH 📖 مطالعه مستندات رسمی: 🔗 https://learn.microsoft.com/en-us/dotnet/ai/evaluation/libraries #dotnet #csharp #VisualStudio2026 #AI #Testing #GitHubCopilot #Programming #SoftwareEngineering #هوش_مصنوعی #برنامه_نویسی 🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید! 📚💻 @dotnetcode 🖥👨💻
بیا تو تیم ما 💪 داریم تیم دیتای رسمیو رو گسترش میدیم ، اگه شکارچی داده ( Crawler ) هستی، بیا با هم کیف کنیم :)) تا دلتون بخواد چالش و کار جدی داریم تو رسمیو تو این بخش قول میدم حسابی سرگرم و مشغول باشید و هر روز یه چالش جدید داشته باشی توی این پوزیشن😁