写点什么

.NET 10 Preview 5 发布:Blazor 可观测性升级,XAML 语法更简洁!

作者:Almir Vuk

  • 2025-07-01
    北京
  • 本文字数:1882 字

    阅读完需:约 6 分钟

大小:712.91K时长:04:03
.NET 10 Preview 5 发布:Blazor 可观测性升级,XAML 语法更简洁!

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 片段具有更高的优先级,并且已包含在默认的项目模板中。


<Router AppAssembly="@typeof(Program).Assembly" NotFoundPage="typeof(Pages.NotFound)"><Found Context="routeData">    <RouteView RouteData="@routeData" />    <FocusOnNavigate RouteData="@routeData" Selector="h1" /></Found><NotFound>This content will be ignored because we have NotFoundPage defined.</NotFound></Router>
复制代码


Preview 5 的一项亮点是,Blazor 正式支持详细的指标 (metrics) 与追踪 (tracing) 功能。据介绍,指标通过专用于组件、生命周期事件和服务器回路 (server circuits) 的计量器 (meter) 进行发布。


追踪功能则使用一个新的 Microsoft.AspNetCore.Components 活动源 (activity source),包含了对导航、事件处理和回路生命周期的详细检测信息。


值得注意的是,开发者可以通过配置 OpenTelemetry 来收集相应源和计量器的数据,从而启用这些诊断功能。

    builder.Services.ConfigureOpenTelemetryMeterProvider(meterProvider =>{    meterProvider.AddMeter("Microsoft.AspNetCore.Components");    meterProvider.AddMeter("Microsoft.AspNetCore.Components.Lifecycle");    meterProvider.AddMeter("Microsoft.AspNetCore.Components.Server.Circuits");});   builder.Services.ConfigureOpenTelemetryTracerProvider(tracerProvider =>    {        tracerProvider.AddSource("Microsoft.AspNetCore.Components");    });
复制代码


.NET MAUI 现已支持 XAML 全局隐式命名空间,此举旨在简化标记,使开发者可以跳过繁琐的 xmlns 声明,直接使用控件。新的全局命名空间可以包含自定义视图、转换器和第三方库,使 XAML 更为整洁且易于维护。


隐式命名空间可以通过项目属性激活,减少了繁琐声明的需要。不过,微软指出,由于该功能仍处于预览阶段,可能会出现工具链错误。


欲了解有关这些功能的更多信息,微软首席产品经理 David Ortinau 已发布了一篇专门的博客文章,详细介绍了 .NET MAUI 的最新更新。


.NET MAUI 的另一项显著新增是能够在 HybridWebView 中拦截 Web 请求。现在,开发者只需处理 WebResourceRequested 事件,就能够拦截、更改或阻止请求,进而实现注入自定义标头、提供本地资源等高级操作。


<HybridWebView WebResourceRequested="HybridWebView_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/

2025-07-01 17:30365

评论

发布
暂无评论

手动实现mini-vue

晓枫

Java vue.js

iOS Abort问题系统性解决方案

移动研发平台EMAS

ios 监控 移动

架构师训练营第十周学习总结

Bruce Xiong

架构师课作业 - 第十周

Tulane

Dubbo微服务调用过程时序图

2流程序员

微服务架构关键点思考

dony.zhang

架构师训练营——第10周学习总结

jiangnanage

Dubbo的服务注册与调用

superman

让我们慢慢地成长

姜海天

个人成长

week10 总结

雪涛公子

微服务、中台和 DDD

dongge

对微服务架构的理解

朱月俊

基于小程序云Serverless开发微信小程序

移动研发平台EMAS

致力打造下一代云原生分布式消息系统,StreamNative 完成源码资本数百万美元 Pre-A 轮融资,红杉中国种子基金跟投

Apache Pulsar

kafka Apache Pulsar StreamNative

架构师课程第十周总结

dongge

架构训练营第十周感悟

张锐

OAuth 2.0

陈皮

架构训练营第十周作业

张锐

架构师训练营第十周作业

吴吴

架构师训练营——第 10 周作业

jiangnanage

week10 作业

雪涛公子

服务化问题与方案简述

superman

微服务 服务化改造

下载的附件名总乱码?你该去读一下 RFC 文档了!

Java课代表

Spring Boot

架构师第十周

Tulane

【架构师训练营】第 10 周作业

花生无翼

hive拉链表优化·百亿量级数据支持准实时更新

誓约·追光者

hive 实时数仓 海量数据库的设计与实践

【架构师训练营】第 10 周总结

花生无翼

微服务与DDD

走过路过飞过

Python中list操作之append、extend

wangkx

Python Python基础

威联通(NAS)应用篇:搭建个人图床

BigYoung

图床 NAS QNAP 威联通 自建

Django单元测试用法及Fixtures用法

BigYoung

Python django 单元测试 Fixtures

.NET 10 Preview 5 发布:Blazor 可观测性升级,XAML 语法更简洁!_软件工程_InfoQ精选文章