我开始构建一个需要相当丰富的客户端界面的新Windows应用程序,但我不知道应该使用哪种客户端API(WPF,Silverlight,WinRT,HTML5,其他?)。我真的很不安,因为MS很少有人帮助人们做出这个决定。
对于不同的客户端API,MS支持策略是什么?什么是每个人的长寿?我不想在当前已知和支持的API(WinForms或WPF)中编写完整的客户端应用程序,只是为了让MS在两年内支持它,并被迫重写它。但是我真的不能在WinRT中写它,因为大规模的企业部署至少不会存在2年。那么我是否被迫采用基于Web的方法,比如Silverlight?它的支持/长寿故事是什么?我会改用HTML5吗?如果我走这条路,那么使用Microsoft堆栈的好处是什么,而不仅仅是开源堆栈?
感觉我在这里完全抓住了22,我无法从微软找到任何好的指导。从事物的声音来看,在WPF中编写软件是愚蠢的,因为它被删除(很快?),但我不能在WinRT中写它,因为公司不会部署它几年。这一切对我来说都是完全敏感的。
思想或想法?
答案 0 :(得分:2)
考虑到您的经验,以及您说'Windows应用程序'(而不是Web应用程序)的事实,我肯定会使用WPF。请记住,无论使用不同的底层API集合,WinRT仍然保留了WPF的核心概念:XAML,绑定,样式,触发器,DataTemplates等。因此,虽然您不能将代码从WPF复制到WinRT并按F5,但是这些技术(即与视图无关的ViewModels)之间存在大量兼容的工作,而HTML,Winforms和其他框架有完全不同的做事方式,需要不同的心态来处理。
关于微软将采取什么行动......我不会太担心,因为有证据表明,即使是较老的技术,如VB6,在当前版本的操作系统中仍然可以“运行”,我认为不会即使Metro成为标准,也需要在2年内重写整个应用程序。 Metro无法取代桌面传统应用程序,这仍然是数据密集型应用程序的最佳选择。
而且,如果我们所有人真正被推入WinRT的时候,对于那些使用MVVM和XAML编写SL / WPF应用程序的人来说,那将比那些使用HTML或winforms的人更容易。
无论您最终选择什么,请确保尽可能将应用程序的功能与UI分开。当需要更改UI框架时,这肯定会使它变得更加容易。
这只是我个人的意见,我想听听其他人对这个问题的看法。
编辑:另一个非常重要的方面是,如果你需要真正制作一个动画密集型的用户界面,或者从传统的战舰灰色用户界面上退一步,你最终会因为winforms无能为力而遭受很多痛苦,或HTML / Javascript地狱所有浏览器以不同的方式呈现内容,更不用说这些技术所需的代码量,以实现WPF / SL / WinRT中需要3行XAML的内容。