微软近日发布了 .NET 11 Preview 6,该版本包含多项针对 .NET MAUI 的架构与可靠性改进。本次更新将下一代 CollectionView 实现带到了 Windows 平台,推动 Android Shell 迁移到基于 handler 的模型,提升了 Native AOT 兼容性,并为中断的媒体选择器操作增加了恢复支持。 在 .NET 11 开发周期中,微软重点使用平台 handler 和源码生成代码来取代旧有的 Xamarin.Forms 时代基础设施。此前的预览版本已将 XAML 源代码生成器设为默认选项,并持续推进裁剪(trimming)以及 CoreCLR 支持工作。Preview 6 在此基础上进一步推进现代化改造,同时移除了面向 Xamarin.Forms 应用迁移所设计的剩余兼容包之一,标志着 MAUI 在脱离旧技术栈的道路上又前进了一大步。 本次更新中最大的 UI 变化是 CollectionView2(又称 CV2)正式登陆 Windows 平台。新的 Windows handler 采用 WinUI 的 ItemsRepeater,使其与 Android、iOS 和 Mac Catalyst 上已有的 CV2 实现保持一致。该实现将 MAUI 的线性布局和网格布局映射到支持虚拟化的 WinUI 布局中,并能支持包括分组、选择、页眉和页脚、空视图、吸附、增量加载以及与 RefreshView 集成等功能。 与此同时,Preview 6 还使用标准 MAUI handler 重新实现了 Android 平台上的 Shell。新的 ShellHandler、ShellItemHandler 和 ShellSectionHandler 替代了基于 renderer 的类,并复用了 FlyoutViewHandler 和 TabbedPage 中共享的组件。微软特别强调,目前这只是 Android 平台的变化;iOS 和 Mac Catalyst 仍继续使用现有的 Shell renderer。因此,拥有自定义 Shell 行为或依赖 renderer 层的应用程序在采用该预览版本时需要谨慎测试。 在混合应用方面,HybridWebView 的 JavaScript 互操作现在改用源码生成器替代反射机制。这一改动消除了裁剪和 AOT 警告,并允许该控件运行在完全裁剪和 Native AOT 应用程序中。在 Android 上,MAUI 还会根据来源过滤传入的 JavaScript 消息,防止无关的 window.postMessage 事件(例如从嵌套框架发送的消息)被错误报告为原生消息。 对于依赖地理位置功能的开发者来说,该版本为 GeolocationListeningRequest 增加了 MinimumDistance 属性,允许应用程序仅在设备移动达到指定距离后请求位置通知。Android 应用程序还获得了可选择启用的 MediaPicker 结果恢复功能。新增的 API 可以在 Android 终止并重新创建应用程序进程、而系统摄像头或选择器仍保持打开状态时,获取、等待或清除媒体结果。 不过,一个可能造成破坏性影响的变化需要注意:微软移除了 Microsoft.Maui.Controls.Compatibility NuGet 包。显式引用该包,或依赖其 Xamarin.Forms 兼容 renderer 的项目,在面向 .NET 11 之前必须完成迁移。普通应用程序如果只引用 Microsoft.Maui.Controls,则不会受到影响,因为一些带有兼容性命名的基础类型仍然保留在核心程序集之中。 除了上述主要改进外,Preview 6 还包含针对 CollectionView、Shell、Android Material 3 样式、iOS 26、XAML 生成、无障碍功能以及部分平台基础功能的修复。Apple 工作负载现在面向稳定版 Xcode 26.6,而 .NET for Android 对 HTTP 失败和取消行为进行了调整,使其更符合更广泛的 HttpClient 契约。开发者可以在微软的 Preview 6 公告中找到安装说明,也可以在官方 GitHub 发布说明中查看详细的 MAUI 变化、关联 issue 和平台说明。.NET 11 Preview 6 现已作为预览版运行时和工具包提供下载。
热门跟贴