ASP.NET Core 9.0 随着 .NET 9 的发布,引入了多项新功能和改进,主要包括以下方面:
1. 静态资产传递优化
引入了 MapStaticAssets
中间件,用于优化应用程序中静态资产的传递。该功能旨在减少提供给浏览器的资产大小,降低网络传输的字节数,并避免向客户端提供过时的文件版本。这对于所有 UI 框架(如 Blazor、Razor Pages 和 MVC)都适用,是 UseStaticFiles
的替代方法。
2. Blazor 的新功能
改进的服务器端重新连接体验:当用户返回已断开连接的应用时,系统会立即尝试重新连接,页面会自动刷新,避免用户手动刷新。
简化的身份验证状态序列化:通过新的 API,更轻松地向现有 Blazor Web 应用添加身份验证。默认情况下,服务器端仅序列化名称和角色声明。
3. SignalR 的新功能
中心方法现在支持多态类型,允许接受基类参数以实现多态方案。需要对基类型进行注释以实现多态性。
4. 最小 API 的新功能
TypedResults
类增强:添加了InternalServerError
方法,用于从终结点返回 500 内部服务器错误响应。改进的
Problem
和ValidationProblem
结果类型构建:支持使用IEnumerable<KeyValuePair<string, object?>>
初始化errors
和extensions
属性。
5. 内置 OpenAPI 支持
ASP.NET Core 现在提供内置支持,通过 Microsoft.AspNetCore.OpenApi
包生成基于控制器的 API 或最小 API 的 OpenAPI 文档。该功能支持裁剪和本机 AOT。
6. 身份验证和授权的新功能
OpenIdConnectHandler
现在支持推送授权请求(PAR),以防止浏览器中的网络攻击者查看或篡改授权参数。
7. 其他新功能
HybridCache
库:弥补了现有IDistributedCache
和IMemoryCache
API 的差距,添加了如“踩踏”保护和可配置序列化等新功能。开发人员异常页改进:将终结点元数据添加到开发人员异常页面,改进了字典和其他键值集合的调试显示。
IIS 中应用程序回收期间的 503 错误修复:默认情况下,IIS 在收到回收或关闭通知与 ANCM 通知托管服务器启动关闭之间有 1 秒的延迟。
指标改进:在生产环境中以最小影响继续使用,用于调查性能问题和观察对 Kestrel 造成影响的外部攻击。
这些更新旨在提升 ASP.NET Core 的性能、安全性和开发体验。