CoreCLR 取代 .NET MAUI 中的 Mono
从预览版 6 开始,CoreCLR 是 .NET MAUI 移动应用的唯一运行时。Mono 已不再使用。
实际上,iOS 和 Mac Catalyst 应用通常比使用 Mono 时更快。Android 在启动时间和应用大小上与 Mono 相比大约有 10% 的差距,考虑到能获得的回报——完整的 .NET 诊断工具——这是一个合理的权衡。 dotnet-trace 和 dotnet-counters 现在可以在移动设备上工作,这在 Mono 上是不可能的。Android 的 NativeAOT 基础也已在此版本中落地。
调试和热重载在 Visual Studio 和 VS Code 中均可使用,尽管团队仍在处理一些小问题。
如果你维护 .NET MAUI 应用,现在是时候针对预览版 6 进行测试了。团队特别希望收到关于性能基准、包大小以及 GA 版本(11 月发布)前任何回归问题的报告。
.NET MAUI 改进
除了运行时切换之外,此版本还包含多项质量提升。
Maps 获得了一些实用更新:密集位置的自动图钉聚类、通过 ImageSource 自定义标记图像,以及 Google Maps JSON 样式支持。
动画 现在接受 CancellationToken,因此你可以停止单个动画而不影响同时运行的其他动画。旧的非异步方法如 FadeTo() 和 RotateTo() 现已标记为过时。
手势 获得新的 LongPressGestureRecognizer,使长按检测变得简单,无需任何变通方法。
BoxView 增加了支持渐变的 Fill 属性。
应用大小:未使用 CSS 样式表的应用将在发布时自动剥离该基础设施。
Android 控件 现在默认使用 Material 3 样式,无需额外配置即可获得更一致的外观。
CollectionView2 for Windows 也包含在此版本中。
运行时与性能
在运行时方面,预览版 6 包含运行时异步性能改进和 JIT 改进。NativeAOT 获得了更快的接口调度。此外还新增了供进行底层数值工作的开发者使用的 SIMD 通道构造 API。
ASP.NET Core 和 Blazor
这里有一些值得注意的补充:
- 自动 CSRF 保护 现已内置于 ASP.NET Core 中,无需手动配置。
- OpenAPI 3.2 成为新的默认值。
- Blazor Virtualize 添加了滚动到指定项目的支持。
- SignalR 获得了身份验证刷新功能,这对令牌过期的长连接很重要。
EF Core
EF Core 获得了 LINQ 查询转换改进,以及对无约束外键关系(unconstrained foreign key relationships)的支持,涵盖了之前需要使用原始 SQL 才能处理的某些边缘情况。
其他新增功能
- 内存和文本的流适配器
- 通过 DataAnnotations 进行异步验证
- System.Text.Json 支持 C# 联合类型
- dotnet test 现支持 xUnit v3 和 NUnit 选项
- F# 在此版本中有多项语言改进
GA 版本预计于 11 月发布。如果你正在使用 .NET MAUI,现在进行测试并提交问题,能让团队在发布前有最多时间解决问题。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.