WPF vNext以及NuGet

在进行WPF开发过程中,一个常见的限制因素在于,WPF本身实际上就是一个核心组件。由于它总是和.NET框架一同发布,并且也经常伴随着操作系统一同发布,因此在兼容性方面的需求相当之高。当然,对于如此大型的框架来说,完美的向后兼容是不可能实现的。但其中出现的例如支持新版本的DirectX这样的改动确实存在风险,让人判断它的潜在破坏性。

在WPF vNext中,微软计划通过NuGet提供一种“应用本地化”的WPF版本。这一点其实与ASP.NET MVC的分布计划本质上完全相同。新版本中的关键特性包括以下内容:

  • 每个应用程序都能与其相应的WPF版本一同发布
  • 性能特性与现有版本相近,并且通常来说表现更好
  • 基于桌面版的.NET框架进行开发,而不是基于.NET Core进行开发
  • 与现有的版本高度兼容

请注意,“高度兼容”并不意味着完美兼容。由于WPF应用本地化这一特性是可选的,因此微软认为在应对维护兼容性这一方面的问题时应该会轻松不少。

在新版本中诸多的“基本兼容”变更之中,其中一个例子是新的默认模板。在示例中,使用WPF 4.5所创建的一个非常简单的测试窗体总共包含了281个元素,而切换到WPF vNext程序集之后,在不产生任何可见的变动的前提下,这一数字降到了230个元素。

之所以能够实现这一效果,部分原因在于新的“内容延迟加载”特性,这一特性允许控件对其内容进行延迟加载。在某些情况下,其内容甚至可能永远不会被加载,比方说,在组合框控件(combo box)中被禁用的可视元素就永远不会显示。

早期的测试结果显示,在使用内置控件的情况下,应用的启动时间和内存占用在某些情况下能够得到10%的优化。而在应用程序代码中使用这一特性之后,可以预期能够得到更大的性能提升。在微软的内部学习资料中表示,应用程序启动时加载的元素,其中最多有高达40%的元素是永远不会真正显示的。

之所以没有在.NET 4.6版本中的WPF中提供这个新的特性,是因为某些应用程序可能仍然依赖于可视化树的现有设计。但由于WPF vNext是通过NuGet提供的可选版本,因此如果某些应用可能会受到这一变更的影响,那么可以针对它进行专门的测试。

与DirectX的互操作性

目前还没有关于这方面内容的细节披露,但微软的宗旨是倾向于在WPF中“原生支持DirectX 11和12”。我们期望在Build 2015大会上获得更多的信息。

现代风格与触摸

下一版本的WPF也计划支持Windows 10的风格与设计指南。同样,具体的细节要在Build大会上才知道。

开源

微软目前并没有开源WPF的计划,不过,他们认为WPF应用本地化是最终迈向代码开源的一个重要步骤。微软还不想把步子迈得太大,他们希望先在某个开放的环境中对WPF的开发进行实验,这也意味着,在每次发布主要版本时,微软与开发者们的互动将大大增加。

在第三篇文章中,我们将讨论Visual Studio 2015与Blend 2015中的WPF工具的使用情况。

查看英文原文:WPF vNext and NuGet

你可能感兴趣的:(WPF vNext以及NuGet)