开发者生态
evening
告别旧Renderer!.NET MAUI正式迈向Handler架构时代
2026-08-07
1 阅读
约6分钟阅读
作者:Edin Kapić
字号:
微软已经发布 .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 应用迁移所设计的剩余兼容包之一。 最大的 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 现已作为预览版运行时和工具包提供 下载 "。 原文链接: https://www.infoq.com/news/2026/07/net-maui-11-preview-6/ "
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱