写点什么

.NET 11 预览版 2 更新 MAUI,带来性能提升和平台优化

作者:Edin Kapić
  • 2026-03-30
    北京
  • 本文字数:1221 字

    阅读完需:约 4 分钟

.NET 11 预览版 2(.NET 11 Preview 2)为.NET多平台应用UI(Multi-platform App UI,MAUI)带来了一系列针对性的更新,重点聚焦于地图控件、数据绑定性能以及 API 一致性。这些更新属于渐进式改进,但非常实用,解决了 XAML、数据绑定和控件行为中明确存在的易用性与性能问题。

 

本次发布延续了近期的优化方向,也就是完善现有 API,而非新增大量接口。在早期版本中,开发者在地图相关的 XAML 编写中会遇到代码冗余、绑定效率低下以及 API 形态不一致等问题。预览版 2 针对这些领域带来了可量化的改进,并进行了少量行为的调整。

 

最直观的一个更新来自地图控件。本次发布为LocationMapSpan新增了TypeConverter支持,让开发者可以直接在 XAML 中定义坐标,无需使用x:Arguments。此外,新增的Map.Region可绑定属性支持以声明式方式初始化地图的可视区域。这些改动共同减少了 XAML 代码冗余,提升了地图界面的可读性。

 

地图控件还获得了更强的元素运行时控制能力。所有地图图形(包括PolygonPolylineCircle)现在均支持IsVisibleZIndex属性,开发者无需移除元素即可切换可见性、控制渲染顺序。同时,这些元素在 Android、iOS 和 Mac Catalyst 平台上统一开放了点击事件,无需编写平台专属代码即可实现交互式覆盖层。

 

绑定性能是另一项获得可量化提升的领域。TypedBindingSourceGeneratedBinding通过委托缓存、绑定模式缓存以及移除不必要的转换操作完成了优化。根据发布说明, TypedBinding 执行时间从 47.47 纳秒降至 32.90 纳秒,而内存分配从每次操作 128 字节降至 64 字节。源码生成绑定也实现了类似改进,执行速度提升约 25%,内存占用减半。这些改动直接影响需要频繁执行绑定的存在大量数据的应用。

 

本次发布正式为常用类型提供了不可变性保证Color标注了ImmutableObject(true) ,Font修改为只读的结构体。这使得 XAML 源码生成器可以安全地缓存实例,并生成更高效的代码路径,在无需修改应用代码的前提下就能提升运行时的性能。

 

VisualStateManager的API一致性问题得到了修复GetVisualStateGroups方法现在返回VisualStateGroupList,而不再是IList,与SetVisualStateGroups API 保持一致。这是一项破坏性的变更,依赖旧返回类型的代码需要在强类型场景中进行更新。

 

另外,一个长期存在的绑定问题得到了修复,即在将Entry.Text绑定到可空值类型(如int?)时,清空输入会正确将绑定属性设为 null,而不是像以前那样保留旧值。这提升了对可选数值输入进行双向绑定场景中的准确性。

 

总体而言,MAUI 的.NET 11 预览版 2 在 XAML 编写体验、运行时性能和 API 对齐方面提供了精准改进。虽然改动范围不大,但解决了开发者反馈的实际问题,并优化了框架核心模块。

 

开发者可以在 GitHub 上的 MAUI 发布说明中查看完整变更列表与相关的拉取请求,获取每项更新的详细背景。.NET 11 预览版 2 已经提供了预览版运行时和工具包下载

 

查看英文原文:.NET 11 Preview 2 Updates MAUI with Performance Improvements and Platform Refinements