.NET Community Toolkit 8.4:新增MVVM功能、增强的分析器和错误修复

.NET 社区工具包发布了 8.4 版本,带来了多项重要的更新和改进,旨在提升开发工作流程的效率。以下是本次更新的主要内容:

1. MVVM 工具包中的部分属性支持

  • 部分属性:引入了对 MVVM 工具包中部分属性的支持,利用 .NET 9 SDK 中的新 C# 语言特性。这一改进使得属性声明更紧密地集成到 C# 语言中,增强了对 newsealedoverriderequired 等修饰符的支持。
  • 自定义属性和访问修饰符:开发者现在可以为属性、字段或访问器应用自定义属性和访问修饰符。
  • 空值注解和 AOT 兼容性:部分属性还增强了空值注解,并提供了与 UWP 和 WinUI 3 应用程序中 Native AOT 的兼容性。
  • Visual Studio 支持:即将发布的 Visual Studio 更新将简化部分属性声明与其实现之间的导航。此外,新的代码修复工具支持开发者一键将现有的 [ObservableProperty] 字段迁移为部分属性,特别推荐使用 CsWinRT 的项目进行迁移,以获得更好的性能和语言支持。

2. 扩展的诊断分析器

  • 新的分析器:引入了多个新的诊断分析器,用于解决常见的编码问题,例如不受支持的类型或错误的声明,提升了 MVVM 场景下的代码质量。
  • 特定分析器:包括对语言版本兼容性、WinRT 场景下的 AOT 兼容性以及 [ObservableProperty][RelayCommand] 正确使用的检查。
  • 语言版本设置:建议开发者在项目文件中设置 <LangVersion>preview</LangVersion>,以启用部分属性并确保与新增功能的兼容性。

3. 其他改进和优化

  • Windows SDK 版本验证:通过 MSBuild 逻辑验证 Windows SDK 版本。
  • 属性访问器的属性转发:支持将属性转发到属性访问器。
  • 调试简化:为所有源代码生成器和分析器嵌入了 .pdb 文件,简化了调试过程。
  • 性能优化:对多个工具包组件进行了性能改进。

4. 其他显著更新

  • AsStream() 扩展:为 ReadOnlySequence<byte> 新增了 AsStream() 扩展,使开发者能够更高效地创建 readonly、可查找的流。
  • IndexOf<T> 扩展IndexOf<T> 扩展现在使用了 ref readonly,强调了其预期用途。

5. 反馈与文档

  • 开发者反馈:.NET 社区工具包团队鼓励开发者探索新功能并提供反馈,以帮助完善未来的更新。
  • 官方发布说明:详细的文档和指南可在工具包的官方发布说明中查看。

本次更新通过引入部分属性、扩展诊断分析器、优化性能和简化调试流程,显著提升了 .NET 社区工具包的功能和开发体验。

阅读 26
0 条评论