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

به‌روزرسانی‌های گسترده ASP.NET Core در .NET 10

مایکروسافت جزئیات به‌روزرسانی‌های مهم ASP.NET Core را که هم‌زمان با انتشار نسخه جدید .NET 10 در ماه گذشته عرضه شده‌اند، منتشر کرده است. همان‌طور که پیش‌تر گزارش شده بود، این نسخه مجموعه‌ای گسترده از بهبودها را در حوزه‌های Blazor، Minimal APIs، تولید OpenAPI، احراز هویت و عملکرد کلی فریم‌ورک ارائه می‌دهد.

به گفته مایکروسافت، این انتشار یکی از جامع‌ترین نسخه‌های ASP.NET Core تا امروز محسوب می‌شود؛ چرا که تغییرات آن طیف وسیعی از جنبه‌ها، از تجربه توسعه و ابزارهای عیب‌یابی گرفته تا رفتار زمان اجرا (Runtime) و امنیت را در بر می‌گیرد.

Blazor؛ بیشترین سهم از بهبودها

طبق اعلام مایکروسافت، Blazor بیشترین و گسترده‌ترین مجموعه ارتقاها را در .NET 10 دریافت کرده است. تیم توسعه‌دهنده، نمونه‌های امنیتی جدیدی برای Blazor Web Apps ارائه کرده که راهنمایی شفاف‌تری برای سناریوهای زیر فراهم می‌کند:

  • OpenID Connect
  • Microsoft Entra ID
  • احراز هویت ویندوز (Windows Authentication)

در نمونه‌های جدید، پروژه‌های API به‌صورت جداگانه در نظر گرفته شده‌اند تا نحوه برقراری ارتباط امن با Web APIها به‌طور عملی نمایش داده شود. همچنین امکان استفاده از فایل‌های تنظیمات JSON برای پیکربندی فراهم شده که انعطاف‌پذیری بیشتری در راه‌اندازی پروژه‌ها ایجاد می‌کند.

سایر بهبودهای Blazor

از دیگر تغییرات مهم Blazor در این نسخه می‌توان به موارد زیر اشاره کرد:

  • پشتیبانی از Client-side Fingerprinting
  • بهبود قابلیت‌های QuickGrid
  • تغییرات در پیش‌بارگذاری (Preloading) دارایی‌های استاتیک
  • به‌روزرسانی رفتار Routing
  • اصلاح عملکرد NavigationManager برای جلوگیری از اسکرول‌های غیرضروری

همچنین قالب پیش‌فرض Blazor اکنون شامل یک کامپوننت اختصاصی برای اتصال مجدد (Reconnection UI) است؛ تغییری که در راستای سخت‌گیرانه‌تر شدن سیاست‌های Content Security Policy (CSP) اعمال شده است.

پشتیبانی از APIهای جدید JavaScript Interop، گسترش قابلیت‌های ذخیره‌سازی State، بهبود سیستم اعتبارسنجی (Validation) و ارتقای ابزارهای عیب‌یابی و پروفایلینگ عملکرد در WebAssembly نیز از دیگر بهبودهای این بخش هستند.

استریم داده با Server-Sent Events

در مستندات رسمی، مایکروسافت مثالی ارائه کرده که نشان می‌دهد چگونه می‌توان با استفاده از API جدید
TypedResults.ServerSentEvents
رویدادهای ضربان قلب را به‌صورت JSON برای کلاینت‌ها استریم کرد:

app.MapGet("/json-item", (CancellationToken cancellationToken) =>
{
    async IAsyncEnumerable<HeartRateRecord> GetHeartRate(
        [EnumeratorCancellation] CancellationToken cancellationToken)
    {
        while (!cancellationToken.IsCancellationRequested)
        {
            var heartRate = Random.Shared.Next(60, 100);
            yield return HeartRateRecord.Create(heartRate);
            await Task.Delay(2000, cancellationToken);
        }
    }

    return TypedResults.ServerSentEvents(GetHeartRate(cancellationToken),
                                                  eventType: "heartRate");
});

بهبودهای Minimal APIs

Minimal APIs نیز در .NET 10 به شکل قابل توجهی ارتقا یافته‌اند. از جمله مهم‌ترین تغییرات:

  • اضافه شدن پشتیبانی داخلی از Validation
  • بهبود مدیریت مقادیر خالی در فرم‌ها
  • سازگاری بهتر با Record Type‌ها
  • یکپارچگی عمیق‌تر با IProblemDetailsService برای ارائه پاسخ‌های خطای یکدست و استاندارد

علاوه بر این، امکان بازگرداندن Server-Sent Events به Minimal APIs اضافه شده که مدل ساده‌تری برای استریم داده به کلاینت‌ها فراهم می‌کند. همچنین APIهای مربوط به اعتبارسنجی به یک Namespace جدید منتقل شده‌اند تا امکان استفاده از آن‌ها خارج از سناریوهای HTTP نیز وجود داشته باشد.

ارتقای اساسی OpenAPI

پشتیبانی از OpenAPI در ASP.NET Core به‌طور چشمگیری به‌روزرسانی شده و اکنون به‌صورت کامل با OpenAPI 3.1 سازگار است. مایکروسافت از بهبودهای زیر خبر داده است:

  • تولید دقیق‌تر Schemaها
  • پشتیبانی از خروجی YAML
  • پردازش بهتر مستندات XML
  • افزودن گزینه‌های جدید برای Transformerهای اختصاصی هر Endpoint

کتابخانه داخلی OpenAPI.NET نیز به نسخه 2.0 ارتقا یافته است. هرچند این تغییر ممکن است برای توسعه‌دهندگانی که از Transformerهای سفارشی استفاده می‌کنند، تغییرات ناسازگار (Breaking Changes) به همراه داشته باشد، اما در مقابل دقت و انعطاف‌پذیری اسناد تولیدشده را به‌طور قابل توجهی افزایش می‌دهد.

امنیت، احراز هویت و عملکرد

در این نسخه، مایکروسافت معیارهای جدیدی برای احراز هویت و مجوزدهی (Authentication & Authorization Metrics) اضافه کرده است. همچنین رفتار Endpointهایی که با Cookie Authentication محافظت می‌شوند، بهبود یافته و پشتیبانی از WebAuth Passkeys در ASP.NET Core Identity گسترش پیدا کرده است.

در بخش مدیریت استثناها، امکان غیرفعال‌سازی خروجی‌های تشخیصی (Diagnostic Output) فراهم شده است. وب‌سرورها Kestrel و HTTP.sys نیز بهبودهایی دریافت کرده‌اند؛ از جمله:

  • پشتیبانی بهتر از دامنه‌های *.localhost
  • امکان شخصی‌سازی Security Descriptorها
  • تخلیه خودکار حافظه در Memory Poolها برای کاهش مصرف منابع

سایر تغییرات مهم

از دیگر قابلیت‌ها و بهبودهای معرفی‌شده در .NET 10 می‌توان به موارد زیر اشاره کرد:

  • پشتیبانی از تست اپلیکیشن‌هایی که از Top-level Statements استفاده می‌کنند
  • پیاده‌سازی جدید JSON Patch مبتنی بر System.Text.Json با بهبود عملکرد چشمگیر
  • استفاده از PipeReader-based JSON Parsing در MVC و Minimal APIs
  • افزودن متد RedirectHttpResult.IsLocalUrl برای اعتبارسنجی امن‌تر URLهای ریدایرکت

همچنین بهبودهایی در Hot Reload برای Blazor WebAssembly، ذخیره وضعیت Circuit برای ادامه سشن پس از قطع اتصال، به‌روزرسانی ثبت Service Worker در PWAها برای جلوگیری از مشکلات کش، و معرفی کامپوننت جدید InputHidden برای فیلدهای مخفی فرم اعمال شده است.

تکمیل اکوسیستم Blazor و ASP.NET Core

در این نسخه، معیارهای اختصاصی ASP.NET Core Identity برای مدیریت کاربران و رهگیری لاگین‌ها، پشتیبانی Blazor WebAssembly از تنظیمات UI Culture، پردازش بهتر کامنت‌های XML، خروجی سازگارتر با Bundlerها، گسترش پشتیبانی از Routing نوع NotFound، افزایش قابلیت توسعه‌پذیری Serialization برای State کامپوننت‌ها و همچنین به‌روزرسانی‌های Hybrid Blazor همراه با راهنمای جدید برای .NET MAUI ارائه شده‌اند.

در نهایت، علاقه‌مندان می‌توانند یادداشت‌های کامل انتشار (Release Notes) و فهرست تغییرات ناسازگار (Breaking Changes) را از طریق مستندات رسمی مایکروسافت مطالعه کنند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا