写点什么

.NET 11 Preview 2 带来了性能提升、经改进的地图功能以及 OpenTelemetry 原生支持

作者:Almir Vuk
  • 2026-03-25
    北京
  • 本文字数:1271 字

    阅读完需:约 4 分钟

3 月 10 日,微软发布了 .NET 11 的第二个预览版,对其开发平台做了广泛的改进。据报道,本次发布涵盖运行时、SDK、库、ASP.NET Core、Blazor、.NET MAUI、F# 等方面的更新。该预览版现在已经可以使用,它是该平台持续开发周期中的重要一步。

 

在这个版本中,ASP.NET Core 提供了原生 OpenTelemetry 追踪支持。现在,该框架直接将 OpenTelemetry 语义属性添加到 HTTP 服务器活动中,也就是说,开发者不再需要使用单独的工具库来收集标准追踪数据。请求方法、URL 路径、响应状态码和服务器地址等属性现在均由框架自动填充。

 

Blazor 服务端渲染现在支持 TempData,允许数据在 HTTP 请求之间持久化,这对于闪存消息、重定向流程和一次性通知非常有用。该功能可以自动注册,默认使用 ASP.NET Core Data Protection 进行加密。

 

该版本还引入了一个新的项目模板 dotnet new webworker ,允许 Blazor WebAssembly 应用程序将繁重的计算任务卸载到 Web Worker 中,而不会阻塞 UI 线程,使应用程序在执行所需的操作时可以保持响应。

 

Kestrel 的 HTTP/1.1 请求解析器经过了重新设计,可以避免在请求格式错误时抛出异常。据称,在端口扫描或客户端配置错误等无效流量比较高的场景中,吞吐量提高了 20% 到 40%。

 

在该预览版中,.NET MAUI 的 Map 控件受到了极大的关注。现在,开发者可以使用简化的语法直接在 XAML 中定义地图坐标,不像之前那样需要冗长的标记。新增的可绑定属性 Map.Region 还允许开发者以声明的方式设置地图的初始区域。

 

多边形、折线和圆形等地图元素现在支持通过新增的 IsVisible 和 ZIndex 属性切换可见性及控制绘制顺序,从而实现更富有变化的、交互式更强的地图叠加层。现在,地图元素的点击事件在 Android 和 iOS 上也得到了支持,不再需要采用其他的变通方法,这为更丰富的用户交互铺平了道路。

 

.NET MAUI 中的绑定性能有了显著提升。据报道,TypedBinding 和 SourceGeneratedBinding 速度快了约 29%,每次操作的内存分配减少了 50%,这归功于委托缓存、绑定模式缓存以及移除了不必要的类型转换。据介绍,影响空字符串绑定到可空值类型这个长期存在的 Bug 已经得到解决,当输入字段被清除时,可以正确地将绑定属性设置为 null。

 

与 C# 不同,预览版 2 为 F# 编程语言带来了几个值得注意的新功能。该语言获得了 #elif 预处理指令支持,不再需要深层嵌套条件编译块。核心集合类型新增了 partitionWith 函数,可将集合按指定条件拆分为两个包含不同元素类型的子集。

 

据报道,新的重载解析缓存机制可将类型检查时间从 6.5 秒减少到测试基准中的 2.9 秒。此外,核心集合模块中的所有 462 个函数现在都包含了 Big-O 复杂度说明,可直接在 IDE 工具提示中查看。

 

该版本中的其他更改包括 GetTypeInfo for System.Text.Json 泛型、tar 归档格式选项,以及 Matrix4x4.GetDeterminant 15% 的性能提升 (据报道)。

 

感兴趣的读者可以在 .NET 官方博客和 dotnet GitHub 存储库中查看完整的发布说明。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:https://www.infoq.com/news/2026/03/dotnet-11-preview-2/