yanjinhua
2023/02/21阅读:20主题:蓝莹
2023 的 WPF 新功能\特性开发公开决策投票
2023 的 WPF 新功能\特性开发公开决策投票
2023 的 WPF 新功能\特性开发公开决策投票
投票链接:https://github.com/dotnet/wpf/discussions/7555
只需在你喜欢的功能
上,点个赞就是投下一票,参与决定 2023
的 WPF
开发倾向方向。票数不限,毫无奖品,快来参与吧.
WPF 路线图 2023
在过去的一年里,我们努力改善测试基础设施,合并社区PR以解决长期存在的问题,并增强辅助功能。通过 CI/CD 管道开源测试和自动化测试过程、解决持续存在的问题以及使产品更易于访问的努力,所有这些都汇集在 .NET 7 上引入 WPF。
以下是我们在 2022 年 7 月至 12 月实现的目标的最新情况:2022 July-December[1]:
目标 | 描述 | 地位 |
---|---|---|
测试存储库迁移 | 将所有测试(开发人员回归测试 (DRT)、微套件和功能测试)移动到公共域,以便在本地运行测试,并且可以在 PR 验证中运行它们。 | 已完成:DRT 移动到 wpf 测试存储库。 未启动:未移动微型套件和功能测试。 |
测试自动化 | 在公共管道中运行基本测试 (DRT)。 | 已完成:在每个生成上运行基本测试。 |
社区首选 | 应优先解决/合并的 ~24 个问题/PR 的候选名单。 | 已完成:20 个优先问题/PR 未开始: 4 个问题/PR[2] |
隐式用法 | 在 WPF 项目模板中启用隐式使用 | 已完成:.NET 8.0 预览版 1 的一部分 |
我们完全致力于实现我们的目标,但最近的优先事项,包括XPS
安全改进,.NET
版本和回归问题需要我们集中关注。结果,一些先前计划的项目被暂时搁置。但是,我们仍然致力于实现我们的所有目标。
注意 - 我们希望为 WPF
创建更大的愿景。我们还没有准备好这样做(团队相当新)。我们的目标是在6
个月内通过社区协作开始愿景文档。
以下部分重点介绍了我们将在 8
年为 .NET 0.2023
优先考虑的主要领域,包括上一个路线图中未完成的项目。除了这些项目外,我们将继续支持 .NET
的更新和维护版本。
实现 WPF 现代化
WPF
现代化的长期愿景包含投资,例如支持可为空性注释、修整和 NativeAOT
支持、DirectX
升级以及集成较新的 .NET
功能和抽象。在短期内,我们入围了 2023
年的以下项目。
WPF
控件的外观多年来未曾更改。我们相信,更新样式以匹配 Windows 11
中使用的样式将有助于 WPF
开发人员创建更一致的 Windows
体验。
目标 | 描述 | 理由 |
---|---|---|
Windows 11 | 为大多数 WPF 控件带来 Windows 11 的外观。 对 Win11 功能(如贴靠布局、控件圆角和较新的配色方案)的支持将为 WPF 应用程序带来增强的体验。 我们将迭代 WPF 社区的全部工作范围。 |
对于在 Win11 上运行的 WPF 上生成的所有使用者应用程序,此功能将确保应用程序可以利用新式设计元素和行为。 |
新的控件 | WPF 文件夹[3] - 浏览器对话框 - 引入对 WPF 的文件夹浏览器对话框的本机支持 | 自 .NET Core 3 以来,这一直是社区的首要要求。此功能将减少对WinForms和其他第三方替代方案的依赖。 |
可空性注解 | 在 WPF 中启用可空性批注 | 这提高了代码库的质量,以及使用它的所有 WPF 应用的质量,并减少了调试 s 和 s 所花费的时间。 dotnet 的其余部分(例如 winforms)存储库已经在朝着这个方向发展,这个目标也会使 WPF 达到最新标准。 我们欢迎社区在这方面的任何贡献。 ArgumentNullException NullReferenceException |
我们不相信我们能够交付上述所有 3 件物品。因此,我们想请社区帮助我们在 .NET 8.0 时间范围内确定这些项目的优先级 - 请在此处[4]投票。
基础设施升级
为了加快社区 PR 的接受/周转,我们正在努力改进我们的 CI/CD 管道,以便对每个 PR(以及现有的 DRT)运行更多功能测试,并以自动化方式将结果共享给开发人员。这将防止 WPF 团队成为瓶颈(在为社区 PR 手动运行测试时),并使我们能够更多地关注社区的主要痛点。
此项目是我们高效交付 现代化 WPF[5] 的先决条件。
目标 | 描述 | 理由 |
---|---|---|
测试自动化 | 在每个 PR 上启用测试(Microsuites & Feature tests),包括详细结果。 | 更好的报告、可预测性和缩短 PR 的周转时间。 |
测试迁移 | [2022年剩余] 将Microsuites和功能测试移动到 wpf-test[6] 存储库中。 |
更多的测试是我们确保我们不会在产品中引入意外回归的最佳方式。 由于与基础结构依赖项耦合的测试数量较多,因此我们计划首先移动与基础结构分离的测试。接下来,我们优先考虑具有更高影响的测试(断言关键行为的测试),并将其转移到开源。 |
未解决的缺陷
WPF 中当前积压的问题和 PR 数量较多,我们打算通过解决高优先级问题和有影响力的 PR 来减少这种情况,从而提高产品质量并鼓励社区参与。与之前的工作类似,我们要求社区帮助我们确定问题和 PR 的优先级[7]. 。我们打算继续这种倡议,并寻求社区对问题/PR 优先级的意见。
目标 | 描述 | 理由 |
---|---|---|
解决高度优先的问题 | 减少问题/PR 的总数。 使用社区反馈来确定优先级。 | 提高 WPF 作为产品的质量。 为 WPF 存储库参与者提供更好的开发人员体验。 |
其他/基本原理
随着 ARM64
设备数量的增加,我们相信,提高 WPF
应用的性能并修复与 ARM64
设备上的 WPF
呈现相关的问题将带来巨大的客户价值。此外,可访问性是我们的主要支柱之一,我们希望为不同能力的用户提供更好的支持。
目标 | 描述 | 理由 |
---|---|---|
辅助功能改进 | 改进对 WPF 控件的辅助功能支持 | 这使 WPF 应用程序更符合辅助功能,并且能够更好地满足不同能力用户的需求。这涉及解决高优先级的辅助功能错误。 |
ARM64 性能 | 对 WPF 进行基准测试和优化,以更好地支持 ARM64 设备 | ARM64 上的 WPF 需要在产品和测试方面进行更多投资。目前,ARM64 上的 WPF 依赖于仿真技术。我们打算弥合 WPF 控件的性能与其他框架的性能之间的差距。 |
注意 - 一些服务问题(例如。安全问题)和高优先级问题不会在 GitHub 中跟踪。
服务级协议
我们将继续遵守 3 个工作日的时间表,以首次分类/响应在 GitHub 上提交的新问题和非代码 PR,包括文档增强或与源代码问题无关的一般问题。我们将根据这些问题的紧迫性和我们的可用资源确定这些问题的优先次序。我们还根据新近度、复杂性和测试覆盖率等因素评估代码 PR,目标是在测试后每月合并 5-6 个社区贡献。
欢迎反馈
我们理解 WPF 社区对新功能(如连字符连字、SVG 支持和彩色表情符号)以及修复长期存在的错误和问题的渴望的兴奋和热情。在我们努力实现这些目标的同时,我们必须优先考虑上述问题,同时考虑可用资源、现有测试覆盖率、功能复杂性和兼容性风险。
我们的目标是为 WPF 产品提供有价值的更新,我们欢迎并感谢社区为实现这些愿望提供的任何支持。
参考资料
2022 July-December: https://github.com/dotnet/wpf/discussions/6744
[2]4 个问题/PR: https://github.com/orgs/dotnet/projects/146/views/1
[3]WPF 文件夹: https://github.com/dotnet/wpf/issues/438
[4]此处: https://github.com/dotnet/wpf/discussions/7555
[5]现代化 WPF: #modernizing-wpf
[6]2022年剩余]
将Microsuites和功能测试移动到 [wpf-test: https://github.com/dotnet/wpf-test
帮助我们确定问题和 PR 的优先级: https://github.com/dotnet/wpf/discussions/6556
作者介绍