谢谢。
谢谢。
这里需要考虑很多因素。
不选择WPF的原因:
选择WPF的原因:
个人而言,如果我现在要开始编写 Windows 桌面应用程序,我会选择 WPF。不过,我已经攀过了学习曲线。对于一个没有 WPF 经验的团队来说,接受它的成本必须比我高。
需要记住的一件事是Silverlight。未来你是否可能希望编写能够从浏览器或甚至Windows Phone 7设备上运行应用程序呢?虽然Silverlight和WPF并不完全相同,但它们非常相似。这将是我支持WPF的主要“未来保障”论点。
个人喜欢WPF的组合模型-以及声明性UI表示方式和比WinForms更好的布局系统。尽管我并不是一个UI专家。
XamlParseException
,那么能够获得真正的堆栈跟踪就太好了。不要让我说下去,我可以一直说到天亮。WPF看起来将取代Winforms,至少在Windows Mobile设备上是这样,未来的开发重点将集中在Silverlight(WPF的衍生版本)和XNA上。
在一个开放的市场中,如果你想保持自己对更广泛的招聘市场有吸引力,涉及WPF是有意义的。
我自己也曾经想过这个问题。但是,正如你所说,VS2010大量使用WPF,这表明微软正在告诉世界,它不仅仅是另一个MS时尚,而且将在未来一段时间内继续存在。
我认为微软正在传递一个明确的信息,即WPF和Silverlight是现在和未来。Winforms PM也这样说过。此外,预计WPF和Silverlight将在未来融合。
大约6个月前,在我的办公室里我们也经历了同样的困境。我们正在开发一个大型LOB应用程序,团队中没有人有很多关于WPF或Winforms的经验。在这种情况下,我们找不到足够的理由选择Winforms,而且我们觉得WPF提供了更清晰的关注点分离。我们决定使用WPF并使用PRISM作为应用程序框架。6个月后,我认为我们做出了正确的选择。
对于编程方面,我深知WPF是未来的趋势。Windows Forms存在许多难以解决的痛点,例如数据绑定等,并且仅仅是.NET上的一层薄膜。当我不得不调试BindingSource等类时,它吓坏了我。现在,我不知道WPF类内部的情况如何,但微软肯定已经在2001年至2006年之间学到了一些东西。
我喜欢WPF的原因是
我只希望微软将更多地使用这种UI技术,在内部减少与性能相关的弱点。WPF要求相当高。在VS2010中,我希望看到设计师展示UI的强大功能(Beta版中的XML Schema设计师已经非常有用)。我认为像MS Word这样的应用程序可以从WPF的所有转换功能中受益匪浅。
WPF是创建应用程序的伟大框架。当您将其与良好的GUI架构(如MVC、MVP或MVVM)相结合时,它非常擅长制作比标准WinForms应用程序更具吸引力的业务应用程序。
另一方面,XAML是随WPF而来的丑陋表亲。 XAML的主要问题在于工具。这些工具比不存在还糟糕,因为它们让人们认为有一个类似WinForms的WPF设计师,而实际上,我认识的大多数开发人员都使用等同于记事本的东西来开发他们的XAML。
XAML的另一个工具问题是编译器。 XAML仅略好于魔术字符串。编译器无法捕捉到您在XAML中犯的大多数错误,有些错误甚至不会使您的应用程序崩溃。相反,WPF将向您的输出打印错误消息并继续运行。
考虑到他们基本上放弃了Windows Mobile,转而使用仅使用WPF和XNA作为其主要UI层的Windows Phone 7,我不得不说是的。人们甚至可以将此举视为更广泛部署的Windows操作系统的实验。此外,大多数用户都喜欢简化的华丽界面,这是我的个人看法。