BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

WPF vNext以及NuGet

| 作者 Jonathan Allen 关注 553 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2015年4月29日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

在进行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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT