Wpf 构建Windows应用程序的长期客户端API策略?

Wpf 构建Windows应用程序的长期客户端API策略?,wpf,silverlight,html,windows-runtime,rich-client-platform,Wpf,Silverlight,Html,Windows Runtime,Rich Client Platform,我开始设计一个新的Windows应用程序,它需要一个相当丰富的客户端接口,但我不知道应该使用什么样的客户端API(WPF、Silverlight、WinRT、HTML5、其他?)。实际上,我很不安的是,微软几乎没有指导来帮助人们做出这个决定 不同客户端API的MS支持策略是什么?每个人的寿命是多少?我不想在一个目前已知且受支持的API(WinForms或WPF)中编写一个完整的客户端应用程序,而仅仅在两年内得到MS pull支持,并被迫重新编写它。但我真的无法在WinRT中编写,因为大规模企业部

我开始设计一个新的Windows应用程序,它需要一个相当丰富的客户端接口,但我不知道应该使用什么样的客户端API(WPF、Silverlight、WinRT、HTML5、其他?)。实际上,我很不安的是,微软几乎没有指导来帮助人们做出这个决定

不同客户端API的MS支持策略是什么?每个人的寿命是多少?我不想在一个目前已知且受支持的API(WinForms或WPF)中编写一个完整的客户端应用程序,而仅仅在两年内得到MS pull支持,并被迫重新编写它。但我真的无法在WinRT中编写,因为大规模企业部署至少需要2年时间。那么,我是否被迫采用基于web的方法,比如Silverlight?它的支持/长寿故事是什么?我应该改用HTML5吗?如果我走这条路,那么使用微软堆栈而不是仅仅使用开源堆栈有什么好处呢

我觉得我在这里陷入了困境,我找不到微软的任何好的指导。从听起来,用WPF编写软件是愚蠢的,因为它被删除了(很快?),但我不能用WinRT编写,因为公司在几年内不会部署它。这整件事对我来说完全是滑稽可笑的


想法还是想法?

考虑到您的经验,以及您所说的“Windows应用程序”(而不是web应用程序),我肯定会选择WPF。请记住,不管使用不同的底层API,WinRT仍然保留WPF的核心概念:XAML、绑定、样式、触发器、数据模板等等。因此,虽然确实不能将代码从WPF复制粘贴到WinRT并按F5,但这些技术(即视图不可知的ViewModels)之间有大量兼容的工作,而HTML、Winforms和其他框架有完全不同的工作方式,需要一种不同的思维方式来合作

关于微软将做什么。。我不会太担心,因为有证据表明,即使是像VB6这样的旧技术在当前版本的操作系统中仍然是“可运行的”,而且我认为即使Metro成为标准,也不需要在2年内重写整个应用程序。Metro无法取代传统的桌面应用程序,这仍然是数据密集型应用程序的最佳选择

而且,如果有一天我们所有人都真正进入WinRT,那么对于那些已经使用MVVM和XAML编写SL/WPF应用程序的人来说,这将比那些使用HTML或winforms编写SL/WPF应用程序的人要容易得多


无论最终选择什么,请确保尽可能将应用程序的功能与UI分离。当需要更改UI框架时,这无疑会使它变得容易得多

这只是我个人的观点,我也想听听其他人对这个话题的看法


编辑:另一个非常重要的方面是,如果你真的需要制作一个动画密集型用户界面,或者远离传统的战舰灰色用户界面,那么你最终会因为winforms在这方面的缺陷,或者HTML/Javascript地狱,所有浏览器的渲染方式都不一样而饱受折磨,更不用说这些技术中需要多少代码来实现WPF/SL/WinRT中需要3行XAML的东西。

您以前在这些平台中有过任何知识或专业知识吗?整个“WPF/SL”正在被删除偏执狂在我看来过于夸张了。这里的人仍然在用VB6编写软件。如果你计划在将来某个时候将此应用程序迁移到WinRT,我建议你使用WPF或Silverlight,因为从这些平台迁移到WinRT会更容易,否则,使用WinForms,无论如何桌面将伴随我们很长一段时间,正如MS-DOS所证明的那样。@Rafael我认为winforms不适合这里。“需要相当丰富的客户端界面”。在winforms中,如果不执行大量的
覆盖OnRender()
@HighCore,你是对的,我可能错过了问题的这一部分,然后是WPF或Silverlight。“无论最终选择什么,请确保尽可能将应用程序的功能与UI分离。这无疑会使在需要更改UI框架时变得容易得多。