Rx.NET v6.0:增强兼容性、裁剪支持及更多功能

Reactive Extensions for .NET (Rx.NET) 6.0 发布总结

主要观点

Rx.NET 6.0 是 Reactive Extensions for .NET 的最新版本,主要关注兼容性改进、支持最新 .NET 版本以及解决开发者常见痛点。该版本未引入重大新功能,但通过优化现有功能,提升了与当前 .NET 生态系统的对齐度。

关键信息和重要细节

  1. 支持最新 .NET 版本

    • Rx.NET 6.0 明确支持 .NET 6.0 和 .NET 7.0。虽然 Rx 5.0 已兼容这些版本,但缺乏明确的目标框架,导致用户困惑。Rx 团队移除了对过时框架的支持,并添加了 net6.0 目标,与 Microsoft 支持的平台保持一致。
    • 尽管 System.Reactive NuGet 包未包含 net7.0 目标,但它完全支持 .NET 7.0。目标框架的缺失并不意味着不支持,因为 .NET 7.0 可以运行针对 net6.0 的包。
  2. 修剪能力改进

    • Rx.NET 6.0 在 net6.0 目标中引入了修剪(trimming)注解,允许减少 System.Reactive.dll 组件的大小,从而缩小应用程序体积并提升启动性能。开发者观察到显著的库大小缩减,修剪功能在特定部署场景中具有重要价值。
  3. 异常处理增强

    • Rx 6.0 增强了处理包装任务中未捕获异常的能力。应用程序可以选择静默处理这些异常,这在某些场景下(如应用程序代码已取消订阅后发生异常)非常有用。尽管通常不推荐静默处理异常,但 Rx 库提供了这一选项以支持无法避免的边缘情况。
  4. 公开 SingleAssignmentDisposableValue

    • 之前标记为内部的 SingleAssignmentDisposableValue 类现在已公开,与库中的其他一次性类型保持一致。这一变化为需要此功能的开发者提供了更大的灵活性。
  5. 代码库与 .NET 工具对齐

    • Rx.NET 团队致力于使代码库与当前 .NET 工具无缝集成,确保库能在现代版本的 Visual Studio 和 .NET SDK 上顺利构建。
    • 单元测试从 XUnit 迁移到 MSTest,以解决在 UWP 上运行测试的限制。MSTest 提供了更好的 UWP 支持,Rx 长期以来一直服务于该平台。
  6. 未来路线图

    • Rx 团队已规划了 7.0 版本的路线图,主要解决 UI 框架中的代码膨胀问题。计划将 UI 框架特定功能提取到单独的包中,避免不必要的依赖并减少应用程序大小。通过解耦 Windows Forms、WPF 和 UWP 代码,Rx.NET 将更高效地集成各种 UI 框架,并减少应用程序的整体占用空间。
  7. 开发者支持与反馈

    • Rx.NET 6.0 在确保兼容性、提升修剪能力以及为未来增强奠定基础方面迈出了一步。团队正在积极解决开放问题,并致力于完善文档,帮助开发者更好地理解和使用 Rx。团队承诺支持最新的 .NET 生态系统,并持续响应用户反馈。

总结

Rx.NET 6.0 通过支持最新 .NET 版本、改进修剪能力、增强异常处理、公开内部类以及与 .NET 工具对齐,提升了开发者的使用体验。未来版本将继续优化代码结构,减少应用程序体积,并更好地支持各种 UI 框架。

阅读 20
0 条评论