关于WPF与WinForms的问题以及迁移到WPF的好处,有很多问题,但我有一个更具体的问题,这可能是主观的,但一定会帮助我证明使用WPF的理由。
作为内部IT部门的一员,业务用户并不关心我们如何到达最终产品,但也不关心动画、样式等方面的事情。
我可以提出一些技术原因,但如何说服他们和管理层现在和长远来看WPF对他们有益呢?
任何改进UI控件等方面的例子都会有所帮助。
谢谢。
从经验来看,Xaml相比WinForms使得UI的构建和维护(特别是对于复杂的UI)变得更加容易。数据绑定的改进也非常显著-它们不仅可以像其他人提到的那样使您的应用程序更具可测试性,而且还可以大大加快开发时间。WPF还包括XPS支持,因此如果您的公司计划使用“打印为PDF”功能,您可以告诉他们您将免费获得该功能。此外,WPF比WinForms“更受欢迎”,因此您会发现更多免费控件和新的、相关的WPF示例代码,这可以节省您的时间。最后,WinForms并没有任何问题。这项技术可能会得到微软的长期全面支持,但是WPF显然是他们用于新开发的“最喜欢”的技术,并将获得最佳的工具支持。您还可以认为Expression Blend工具显着加速了UI开发时间,并为您提供了将许多UI工作分配给设计师或UI专家的机会。
一旦你掌握了“WPF方式”,在XAML中构建完全功能的复杂UI比WinForms更快(因为它具有出色的数据绑定支持、组合控件、自动布局等功能)。
使用WinForms很难将逻辑与表现分离,而使用WPF则要容易得多 - 这使您的代码更加清晰、可测试,并且可以在未来使用不同的UI技术使用相同的逻辑。
显然,WPF正受到微软更多的关注,并且比WinForms发展得更快(例如,请参见VS2010)。
但是另一方面
如果我开始一个新项目,我会选择WPF,但是如果您已经有大量现有的工作代码,则重写所有代码可能不是您时间的最佳用途。
WPF仅适用于Windows XP SP2或更高版本,这对于商业应用程序并不是限制,因为购买软件的任何人都已经升级到XP多年了 - 但在企业环境中,如果您仍然拥有Win2K机器,则可能会有问题。
只是给他们举一个现在Markit公司正在寻找的工作的例子。现在不需要太多WinForms开发人员,而是需要WPF开发人员。如果趋势是使用WinForms,他们可能无法吸引到优秀的人才。
此外,WPF使得托管旧的WinForms或者反过来(在WinForms中托管WPF)更加容易,这就是我们进行部分/分阶段迁移的方式。