Codoloper

NET. 11 Preview 7 منتشر شد: چی جدیده

NET. 11 Preview 7 منتشر شد: چی جدیده | عکس

مایکروسافت یازدهم آگوست، هفتمین preview از .NET 11 رو منتشر کرد؛ آخرین ایستگاه‌های preview قبل از نسخه‌ی نهایی که قراره نوامبر ۲۰۲۶ به‌عنوان یه نسخه‌ی Standard Term Support (STS) عرضه بشه. این preview تغییرات قابل‌توجهی تو کتابخونه‌ها، runtime، SDK، سی‌شارپ، ASP.NET Core، MAUI، Entity Framework Core، اف‌شارپ، و Windows Forms داره.

کتابخونه‌ها

چند تا اضافه‌ی جالب تو این بخش هست: پشتیبانی از نوع‌های اعشاری IEEE 754 و یه نوع generic برای اعداد مختلط (Complex<T>)، که برای کارهای علمی و محاسباتی مفیده. علاوه بر این، فشرده‌سازی HTTP request (نه فقط response که قبلاً بود) و کنترل قابل‌تنظیم برای eviction اتصالات HTTP هم اضافه شده. تو حوزه‌ی شبکه، API های جدیدی برای resolve کردن رکوردهای DNS اومده، و تو حوزه‌ی فایل، پشتیبانی از رمز عبور برای فایل‌های ZIP و چند تا API جدید برای ساخت، استخراج، و متادیتای ZIP هم اضافه شده.

Runtime

تمرکز اصلی رو بهبود Runtime Async بوده؛ با بهینه‌سازی‌های جدید تو tiering و tail-await که مستقیم به سرعت اجرای متدهای async کمک می‌کنه. یه نکته‌ی فنی جالب دیگه اینه که CoreCLR روی WebAssembly حالا کل test suite کتابخونه‌ها رو پاس می‌کنه؛ یعنی بلوغ اجرای .NET رو خود Wasm داره جدی‌تر می‌شه. بهبودهایی هم تو JIT، code generation، NativeAOT، و ابزارهای diagnostic اومده.

SDK

اینجا چند تا تغییر عملی برای کار روزمره هست:

  • NativeAOT حالا به‌صورت پیش‌فرض تو دستور dotnet فعاله؛ یه قدم بزرگ به سمت این‌که compile کردن به native code استاندارد بشه، نه یه گزینه‌ی جانبی.
  • MSBuild server به‌صورت پیش‌فرض فعاله؛ که یعنی build های بعدی معمولاً سریع‌تر انجام می‌شن چون از یه پروسه‌ی از قبل بالا استفاده می‌کنن.
  • dotnet test چند تا قابلیت جدید گرفته: فلگ‌های سطح-اجرا مثل --timeout و --maximum-failed-tests، پشتیبانی از پروژه‌های Microsoft.Build.Traversal، بهبود گزارش‌گیری رو Microsoft.Testing.Platform، و پشتیبانی از دستگاه و محیط MAUI.
  • اپ‌های file-based (همون قابلیت جدید اجرای مستقیم فایل‌های .cs بدون پروژه) حالا دستور dotnet reference و رفع چند باگ up-to-date-check رو هم دارن.
  • publish کردن container حالا runtime های native پلتفرم رو ترجیح می‌ده.

سی‌شارپ

از نظر زبانی، چهار تا ویژگی مهم اضافه شده:

  • break و continue با برچسب (labeled)؛ یعنی می‌شه مشخص کرد کدوم حلقه از چند تا حلقه‌ی تودرتو باید break یا continue بشه، بدون نیاز به flag های دستی.
  • الگوهای union (union pattern) حالا هم خود union و هم مقدار داخلیش رو match می‌کنن.
  • بهبود exhaustiveness checking برای type parameter هایی که به یه closed type محدود شدن.
  • تغییراتی تو «Unsafe Evolution»؛ شامل یه حالت سازگاری (compat mode) و رفتار nameof تو کد unsafe.

ASP.NET Core

بخش Blazor بیشترین تغییرات رو گرفته:

  • توقف خودکار circuit های Blazor موقع بی‌فعالیتی؛ که مصرف منابع سرور رو برای سشن‌های رهاشده کاهش می‌ده.
  • یه ویژگی جدید به اسم CacheView برای کش کردن خروجی Blazor SSR.
  • چند تا analyzer جدید برای Blazor که مشکلات رایج رو زودتر گزارش می‌کنن.
  • QuickGrid حالا InitialItemIndex و ScrollToItemAsync رو پشتیبانی می‌کنه؛ یعنی کنترل بهتری رو موقعیت اسکرول و آیتم اولیه‌ی grid داری.
  • ابزار wasm-tools به Emscripten 6 آپدیت شده.

علاوه بر این، Razor حالا attribute های literal رو برای پارامترهای کامپوننت از نوع union قبول می‌کنه، validation localization به‌صورت built-in اضافه شده، کلاینت SignalR .NET حالا بعد از redirect هم می‌تونه auth رو refresh کنه، و OpenAPI پشتیبانی از Server-Sent Events تو نسخه‌ی OpenAPI 3.2 رو گرفته.

.NET MAUI

چند تا قابلیت جدید و کاربردی:

  • احراز هویت با passkey به‌صورت cross-platform؛ یعنی دیگه لازم نیست پیاده‌سازی جدا برای هر پلتفرم بنویسی.
  • XAML Incremental Hot Reload؛ که سرعت دیدن تغییرات UI موقع توسعه رو بهبود می‌ده.
  • الگوهای route جدید برای Shell.
  • binding های RelativeSource که با AOT سازگارن.
  • پشتیبانی از backend های platform-specific شخص ثالث.
  • TabbedPage حالا رو پلتفرم‌های اپل از همون معماری handler استفاده می‌کنه که بقیه‌ی کنترل‌ها استفاده می‌کنن.

Entity Framework Core

بهبودهایی تو ترجمه‌ی کوئری LINQ، بهبود provider مربوط به Azure Cosmos DB، بهبود migration ها، و پشتیبانی از نوع Half رو SQLite اضافه شده.

اف‌شارپ

چهار تا بهبود کوچیک‌تر ولی مفید: binding های computation expression حالا داخل یه let ساده هم کار می‌کنن، attribute ها داخل ماژول‌ها و namespace های recursive درست resolve می‌شن، پیام تشخیصی واضح‌تری برای type abbreviation های generic اضافه شده، و یه باگ مربوط به محاسبه‌ی سایز StructLayout برای union های struct بدون داده رفع شده.

Windows Forms

تمرکز این بخش رو Dark Mode بوده؛ پنج تا pull request مستقیم به بهبود ظاهر تو حالت تاریک اختصاص داشته (شامل ToolTip، HelpProvider، LinkLabel، TabControl تودرتو، و آیکون‌های چک تو ToolStrip). علاوه بر این:

  • یه حالت اختیاری جدید به اسم VisualStylesMode برای شخصی‌سازی بیشتر ظاهر کنترل‌ها.
  • جلوگیری از فلاش سفید موقع باز شدن فرم‌ها تو dark mode، با تأخیر انداختن نمایش فرم تا زمانی که استایل‌ها اعمال بشن.
  • توقف رندر موقع تغییرات دسته‌ای (bulk) رو کنترل‌ها، مثل تغییر هم‌زمان موقعیت و سایز.
  • ظاهر toggle-switch برای CheckBox و RadioButton.
  • رفع چند باگ پایداری، شامل یه کرش GDI+ تو SplitContainer و یه exception تو اسکرول ToolStrip.

این preview تو چه فضایی منتشر شده

نکته‌ی جالب اینه که واکنش جامعه‌ی توسعه‌دهنده‌ها به کل چرخه‌ی .NET 11 (نه فقط این preview) صرفاً مثبت نبوده. بعضی توسعه‌دهنده‌ها نسبت به افزایش پیچیدگی زبان سی‌شارپ و سرعت انتشار نسخه‌های بزرگ ابراز نگرانی کردن. همچنین، نقشه‌ی راه ASP.NET Core تو .NET 11 تمرکز زیادی رو «Agentic AI» گذاشته (از جمله پشتیبانی از Model Context Protocol تا اپلیکیشن‌های .NET بتونن به‌عنوان ابزار برای agent های هوش مصنوعی عمل کنن)؛ جهتی که بعضی توسعه‌دهنده‌ها معتقدن داره روی نیازهای اصلی و پایه‌ای framework سایه می‌ندازه.

چطور امتحانش کنیم

برای شروع، کافیه SDK نسخه‌ی .NET 11 رو نصب کنی. اگه رو ویندوز با Visual Studio کار می‌کنی، مایکروسافت توصیه می‌کنه از آخرین نسخه‌ی Visual Studio 2026 Insiders استفاده کنی؛ از Visual Studio Code هم با extension مربوط به C# Dev Kit می‌شه استفاده کرد. یادت باشه این هنوز preview است، نه نسخه‌ی نهایی، پس برای production حتماً صبر کن تا نسخه‌ی پایدار نوامبر منتشر بشه؛ ولی برای آشنایی زودهنگام با تغییرات و کاهش ریسک آپدیت آینده، امتحانش کردنش الان ارزش داره.

اطلاعات نویسنده
عرفان دهقانی
نوشته ها در C#
تبلیغات
کامنت جدید

برای ثبت کامنت وارد شوید

برای اینکه بتوانید زیر این پست کامنت بگذارید، باید وارد حساب کاربری خود شوید.

برای ادامه، وارد حساب خود شوید

بعد از ورود، دوباره به همین پست برمی‌گردید و می‌توانید کامنتتان را ثبت کنید.

ورود به حساب
کامنت‌ها

نظرات کاربران

دیدگاه‌هایی که برای این نوشته ثبت شده‌اند.

هنوز کامنتی برای این پست ثبت نشده است.