.NET Community Toolkit 8.3 发布总结
.NET Foundation 宣布发布了 .NET Community Toolkit 8.3,该版本带来了多项关键更新,包括对 .NET 8 和 NativeAOT 的全面支持。此次发布不仅提升了性能,修复了一些错误,还提供了旨在改善开发者体验的新功能。
主要亮点
- .NET 8 和 NativeAOT 支持
所有库均已更新,全面支持 .NET 8 和 NativeAOT。所有 API 都进行了更新,以确保与修剪(trimming)和预编译(AOT)完全兼容,即使在高级场景下也能实现平滑集成。此外,新的修剪注解提供了对潜在不安全代码的警告。 - 对 ObservableProperty 的 NativeAOT 支持质疑
有评论对 ObservableProperty 的 NativeAOT 支持表示质疑,认为在某些情况下并不支持且会发出警告。对此,官方澄清称,虽然 ObservableProperty 在 NativeAOT 下可能存在限制,但建议使用与 AOT 兼容的源代码生成器。反射相关的 API 会触发警告,工具包现在包含了这些问题的注解。 - MVVM 工具包的兼容性增强
MVVM 工具包现在支持 net8.0-windows10.0.17763.0 目标,增强了与 WinAppSDK(WinUI 3)的兼容性。此更新确保为可能被编组到 WinRT 的类型生成必要的互操作代码,从而在 .NET 项目中无缝使用 MVVM 工具包。
性能改进
- INotifyPropertyChanging 接口优化
开发者可以在不需要时禁用 INotifyPropertyChanging 接口,从而消除不必要的开销。这在 UWP 和 WinUI 3 等框架中尤其有用,因为某些视图模型不需要此功能。通过在 .csproj 文件中设置属性,相关的代码会被修剪掉,从而优化应用程序性能。
其他修复和改进
- 修复了使用
[NotifyPropertyChangedFor]为依赖属性生成OnPropertyChanging方法的问题。 - 修正了
IBufferWriterExtensions.Write方法对非托管类型的长度计算。 - 调整了从
MemoryManager创建的Memory2D<T>实例的偏移量计算。 - 防止
ObservableValidator.HasError属性在表视图中自动生成。
资源链接
- GitHub 发布页面 提供了完整的更改日志。
- 源代码可在 GitHub 上找到。
- 更多文档可在 Microsoft Learn 和 .NET API 浏览器网站上获取。
贡献与反馈
社区鼓励贡献和反馈,以帮助塑造工具包的未来版本。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。