بهروزرسانیهای گسترده 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) را از طریق مستندات رسمی مایکروسافت مطالعه کنند.



