بررسی قابلیت های جدید ASP.NET Core و Blazor در .NET 11
4 دقیقه
تمرکز مایکروسافت در .NET 11 بر روی ۶ محور اصلی است که در ادامه تمام ویژگیها و تغییرات اضافه شده بر اساس این محورها را به صورت کامل مورد بررسی قرار خواهیم داد.
۱. تقویت پایهها (عملکرد، امنیت و مشاهدهپذیری)
مایکروسافت در هر نسخه تلاش میکند دات نت را سریعتر و امنتر کند. تغییرات این بخش عبارتند از:
- بهبود عملکرد (Performance): کاهش بار پردازشی (Overhead) در Handshake پروتکل TLS در وبسرور Kestrel برای سریع تر شدن اتصال های کوتاه مدت.
- مدیریت بهتر درخواستهای ناقص: بهینه سازی در نحوه مدیریت درخواست های Malformed (ناقص) تا ترافیک مخرب سریع تر حذف شده و ظرفیت سرور برای کاربران واقعی آزاد شود.
- فشردهسازی Zstandard: پشتیبانی از الگوریتم فشرده سازی Zstandard اضافه شده است که نسبت فشرده سازی مشابه Brotli دارد اما با مصرف پردازنده (CPU) بسیار کمتر.
- اجرای Async در سطح Runtime: همکاری با تیم Runtime برای هندل کردن نیتیو State Machine های مربوط به عملیاتهای Async جهت افزایش کارایی.
- امنیت (Security): مدرن سازی سیستم جلوگیری از جعل درخواست بین سایتی (CSRF) با استفاده از هدرهای
sec-fetch-site(Fetch Metadata) به جای سیستم توکن های ضد جعل (Anti-forgery) قدیمی. - جلوگیری از سرقت نشست (Session Hijacking): اضافه شدن پشتیبانی آزمایشی از DBSC (Device Bound Session Credentials) تا کسی نتواند کوکی های کاربر را سرقت کند.
- مشاهده پذیری (Observability): پشتیبانی نیتیو از تگ ها و قرارداده ای معنایی OpenTelemetry در ASP.NET Core (بدون نیاز به کتابخانههای ابزار دقیق خارجی) و همچنین اضافه شدن پشتیبانی OpenTelemetry به کلاینتهای Blazor WebAssembly.
۲. بهروزرسانی های Stack مدرن (Minimal APIs)
سرمایهگذاری اصلی مایکروسافت روی فریمورک های مدرن یعنی Minimal APIs، SignalR و Blazor است (نه MVC یا Razor Pages).
- پشتیبانی از OpenAPI 3.2: اضافه شدن پشتیبانی از آخرین نسخه OpenAPI که امکانات بهتری برای پاسخ های جریانی (Streaming مانند Server Sent Events) و فایل های باینری فراهم میکند.
- پشتیبانی از C# Unions: پشتیبانی از ویژگی جدید و پیشن مایش زبان سیشارپ ۱۵ یعنی Union Types. در .NET 11، کتابخانه
System.Text.Jsonمیتواند انواع Union را سریالایز و دیسریالایز کند و OpenAPI نیز شمای (Schema) مربوط به آنها را تولید میکند. - اعتبار سنجی ناهمگام (Async Validation): اضافه شدن ویژگی اعتبار سنجی غیرهمگام (مثل چک کردن تکراری نبودن ایمیل در دیتابیس) از طریق صفت
[AsyncValidation]یا اینترفیسIAsyncValidatableObject. این ویژگی پس از اعتبارسنجیهای همگام اجرا میشود و در Blazor نیز با ویجت های کاربری (برای نمایش وضعیت "در حال بررسی") پشتیبانی میشود. - تجدید توکن خودکار در SignalR: اضافه شدن قابلیت Auth Token Refresh برای اتصالات طولانی مدت SignalR تا بدون قطع شدن اتصال، هویت و توکن کاربر بهروزرسانی شود.
۳. تغییرات شگفت انگیز در Blazor
تغییرات بسیار زیادی برای تکمیل و بهبود تجربه توسعه با Blazor در نظر گرفته شده است:
- تکمیل رندرینگ استاتیک سمت سرور (Static SSR): اکنون میتوانید از ویژگیهایی مانند
TempData(با ویژگی[SupplyParameterFromTempData])، Output Caching، وضعیت Session و اعتبارسنجی سمت کلاینت (Client-side Validation) بدون نیاز به فعال کردن حالت های رندر تعاملی (Interactive) و بدون WebAssembly یا SignalR استفاده کنید. - کامپوننت های جدید برای فرم ها: معرفی کامپوننت های توکار
LabelوDisplayNameبرای تولید خودکار برچسبها بر اساس مدلها، و کامپوننتEnvironmentViewبرای نمایش محتوا بر اساس محیط اجرا (مانند Dev یا Production). - بهبود QuickGrid: گرید داده پیش فرض Blazor اکنون با رندرینگ استاتیک (بدون نیاز به SignalR یا WASM) به خوبی کار میکند و امکانات صفحه بندی، فیلتر و مرتب سازی را با استفاده از Enhanced Navigation ارائه می دهد.
- ویژگیهای جدید Virtualize: پشتیبانی از آیتم هایی با ارتفاع متغیر (Variable Height) و متدهای
InitializeIndexوScrollToIndexبرای پرش به موقعیت های خاص در لیست. - یکپارچه سازی Runtime در WebAssembly: انتقال از معماری Mono به Core CLR (که در نسخه بعدی .NET پایدار خواهد شد).
- وب ورکرها (Web Workers) در Blazor: اضافه شدن یک قالب پروژه جدید تحت عنوان blazor-webworker که به شما اجازه می دهد پردازش های سنگین CPU را با اجرای یک محیط .NET در پس زمینه مرورگر انجام دهید تا رابط کاربری (UI Thread) قفل نشود (با استفاده از
[JSExport]وInvokeAsync).
۴. ساخت برنامه های توزیع شده با Aspire
مایکروسافت در حال بهبود یکپارچگی Blazor و ASP.NET Core با ابزار Aspire است:
- سرویس Blazor Gateway: یک کامپوننت سرور جدید که اپلیکیشن Blazor WebAssembly شما را میزبانی میکند و به عنوان پروکسی API عمل میکند (برای جلوگیری از مشکلات CORS).
- تزریق مستقیم پیکربندیها (Config) و Service Discovery از Aspire به داخل مرورگر کلاینت.
- جمع آوری و نمایش تلمتری و لاگ های سمت مرورگر به صورت مستقیم در داشبورد Aspire.
۵. برنامههای مبتنی بر هوش مصنوعی (Agentic Web Apps)
برنامه های وب مدرن نیازمند ادغام با هوش مصنوعی و Agent ها هستند:
- پشتیبانی و یکپارچگی با Microsoft Agent Framework و MCP C# SDK.
- پشتیبانی از پروتکل AGUI (Agentic GUI) برای ساخت رابط های کاربری هوش مصنوعی.
- امکان استفاده از ابزارهای سمت کلاینت (Front-end Tools) توسط ایجنت ها (مثلاً هوش مصنوعی بتواند رنگ یک المان در مرورگر کاربر را تغییر دهد).
- قابلیت همگام سازی وضعیت مشترک (Shared State Synchronization) بین ایجنت و رابط کاربری.
۶. توسعه به کمک هوش مصنوعی (Copilot)
مایکروسافت تلاش میکند تا ساختار .NET و Blazor برای دستیارهای هوش مصنوعی (AI Coding Assistants) بهینه تر شود. در این راستا افزونه ها و Skill هایی (مانند dotnet-skills) منتشر شده است که به هوش مصنوعی کمک میکند تا در زمان کدنویسی، ساختار پروژههای Blazor را بهتر درک کند (مثلاً به جای تولید فایلهای ۴۰۰ خطی، کدها را در کامپوننت های مجزا بشکند).
در نهایت، همه این تغییرات با هدف پاسخ به نیاز برنامه های وب مدرن و افزایش بهره وری توسعه دهندگان در نسخه یازدهم .NET برنامه ریزی شده است.