.NET 9 发布与 ASP.NET Core 9 新特性
Microsoft 发布了 .NET 9,其中包含了 ASP.NET Core 9 的新特性。这些特性提升了性能、简化了开发流程,并扩展了框架的功能。此次发布主要优化了静态资源处理、改进了 Blazor 的组件交互、增强了 SignalR 的可观察性和性能,并通过内置的 OpenAPI 支持简化了 API 文档生成。
Blazor 改进
Blazor 在 .NET 9 中得到了多项更新,特别是组件交互和渲染能力的提升。主要改进包括:
- 新的运行时 API:开发者可以通过该 API 查询组件的状态,判断组件是否正在以交互模式运行,从而优化性能和更有效地排查问题。
[ExcludeFromInteractiveRouting]属性:该属性允许为特定页面启用静态服务器端渲染(SSR),适用于需要传统 HTTP 请求周期的页面。
静态资源优化
引入了 MapStaticAssets 功能,用于优化静态资源的交付。该功能自动化了压缩、缓存和版本控制等任务,减少了手动配置的需求。它支持 Blazor、Razor Pages 和 MVC 等框架,适用于应用管理的静态资源,而 UseStaticFiles 仍可用于处理外部或动态资源。
示例代码:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
var app = builder.Build();
app.UseHttpsRedirection();
app.MapStaticAssets();SignalR 增强
SignalR 新增了对多态 Hub 方法参数的支持,允许方法接受基类以动态处理派生类型。此外,SignalR 的活动跟踪功能得到了改进,为每个 Hub 方法生成详细的事件。还引入了对修剪和 Native AOT(提前编译)的支持,减少了应用体积并提升了客户端和服务器的性能。
Minimal API 改进
Minimal API 新增了错误处理工具,开发者可以使用 TypedResults 返回强类型响应,包括 HTTP 500 错误的 InternalServerError 状态。
示例代码:
var app = WebApplication.Create();
app.MapGet("/", () => TypedResults.InternalServerError("An error occurred."));
app.Run(); OpenAPI 文档生成
内置的 OpenAPI 文档生成功能通过 Microsoft.AspNetCore.OpenApi 包实现。开发者可以为控制器和 Minimal API 生成 OpenAPI 文档,虽然它不包含 SwaggerUI 的界面组件,但开发者仍可以手动添加 SwaggerUI。
Reddit 用户 GaussZ 澄清了这一变化:
OpenAPI 支持并未取代 SwaggerUI,它明确不包含任何 UI 部分,仅取代了 SwaggerGen。开发者仍可以使用 SwaggerUI。
认证与授权更新
认证和授权机制新增了对 OpenID Connect 工作流中 Pushed Authorization Requests (PAR) 的支持。开发者可以自定义 OAuth 和 OpenID Connect 处理器的参数,从而更好地控制认证流程。
总结
.NET 9 的发布为 ASP.NET Core 带来了多项重要更新,涵盖了性能优化、开发流程简化以及功能扩展。开发者可以通过官方发布说明了解更多详细信息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。