
6 月初,微软宣布发布 .NET 10 Preview 5,为多个组件带来了更新,涵盖了 ASP.NET Core、.NET MAUI、Windows Presentation Foundation (WPF) 和 Entity Framework Core。据介绍,新版本通过一系列功能更新与改进,将帮助开发者有效提升工作效率、强化应用监控,并提供更灵活的定制选项。
在 ASP.NET Core 方面,此次更新增加了一项新功能:开发者可以通过 HttpSysOptions 中的 RequestQueueSecurityDescriptor 属性,为 HTTP.sys 请求队列配置自定义安全描述符。据称,该功能可在操作系统层面更好地控制请求队列的访问权限。
此外,支持 Minimal APIs 的验证解析器 (validation resolver) API 已被标记为实验性功能,以便未来进行修改,不过顶层的 AddValidation API 保持稳定。
OpenAPI 的生成能力得到了改进,现已支持 3.1 版本。此次发布还扩展了从 XML 文档中提取元数据的功能,能够识别<returns>
和<response>
标签作为响应描述。
此外,Blazor 框架引入了一种更简便的方法来渲染“未找到”(Not Found) 页面,即在路由配置中指定一个 NotFoundPage 组件。如发行说明所述,这种方法比旧的 NotFound 片段具有更高的优先级,并且已包含在默认的项目模板中。
Preview 5 的一项亮点是,Blazor 正式支持详细的指标 (metrics) 与追踪 (tracing) 功能。据介绍,指标通过专用于组件、生命周期事件和服务器回路 (server circuits) 的计量器 (meter) 进行发布。
追踪功能则使用一个新的 Microsoft.AspNetCore.Components 活动源 (activity source),包含了对导航、事件处理和回路生命周期的详细检测信息。
值得注意的是,开发者可以通过配置 OpenTelemetry 来收集相应源和计量器的数据,从而启用这些诊断功能。
.NET MAUI 现已支持 XAML 全局与隐式命名空间,此举旨在简化标记,使开发者可以跳过繁琐的 xmlns 声明,直接使用控件。新的全局命名空间可以包含自定义视图、转换器和第三方库,使 XAML 更为整洁且易于维护。
隐式命名空间可以通过项目属性激活,减少了繁琐声明的需要。不过,微软指出,由于该功能仍处于预览阶段,可能会出现工具链错误。
欲了解有关这些功能的更多信息,微软首席产品经理 David Ortinau 已发布了一篇专门的博客文章,详细介绍了 .NET MAUI 的最新更新。
.NET MAUI 的另一项显著新增是能够在 HybridWebView 中拦截 Web 请求。现在,开发者只需处理 WebResourceRequested 事件,就能够拦截、更改或阻止请求,进而实现注入自定义标头、提供本地资源等高级操作。
.NET 对安卓和苹果平台(如 iOS、macOS 和 tvOS)的更新主要侧重于质量和稳定性的改进。具体细节可在相应的 GitHub 仓库中找到。
根据官方说法,WPF 为 Grid.RowDefinitions 和 Grid.ColumnDefinitions 引入了一种简写语法,这不仅让 XAML 更为简洁,还将改善对热重载 (Hot Reload) 的支持。
此次更新着重改进了字体、全球化及性能。在字体方面,新增的 simsun-extg 字体将改善东亚语言的渲染效果。Fluent 主题的优化则解决了崩溃问题,并加强了对 RTL(从右到左)布局的支持。此外,通过减少内存分配和移除无用代码,整体性能也获得了显著提升。
最后,EF Core 10 Preview 5 新增了为默认约束定义自定义名称的功能,让开发者对数据库模式的生成拥有了更多控制权。具体来说,开发者现在可以直接在模型配置中指定约束名称,或使用 UseNamedDefaultConstraints 为所有默认约束启用自动命名。
感兴趣的读者可以通过微软的官方文档和 GitHub 仓库查阅包含所有更新、修复和已知问题的完整发行说明。
原文链接:https://www.infoq.com/news/2025/06/dotnet-10-preview-5/
评论