内部工具使用WPF还是WinForms?

4

在我们公司,我们开发了许多内部工具,从简单的实用程序到全功能编辑器。这些工具的优先考虑因素包括稳定性、易用性和周转时间(即添加新功能的速度)。

迄今为止,我们一直使用WinForms,但有几个新的工具正在酝酿之中,我正在权衡我们是否应该继续使用WinForms还是转向WPF。由于我们控制环境,所以不必担心.NET版本等问题(尽管我们目前仍需要在XP上运行)。

我熟悉WPF提供的图形优势(基于向量、硬件加速、可皮肤化),但我想知道是否还有其他方面使WPF比WinForms更具吸引力。

谢谢,

7个回答

11

不要低估学习曲线。WPF可能非常好用,也可能是噩梦。我见过仅使用WinForms的开发人员在使用WPF时比使用ASP.NET还要无助(即使对Web开发知之甚少)。虽然大多数开发人员能够只靠开始使用WinForms和ASP.NET而无需阅读任何书籍就达到一定的生产力,但这似乎在WPF中是不可能的。

别忘了第三方组件。是的,市场上甚至有新的玩家,而且在 .NET 3.0 年之后,比如 SoftwareFX 终于发布了他们的 WPF 图表解决方案(只是一个例子),但是 WPF 的组件市场仍然显着较小(商业以及开源),而且通常 WPF 组件仍然不如它们的 WinForms 对手功能强大。

我同意架构,例如数据绑定概念,非常棒,如果你遵循像 MVVM 这样的模式,但是 MSDN 上关于最佳实践,例如 MVVM 的文档非常少,所以你将不得不自己指向网络文章、书籍等等来引导团队。

而且数据绑定已经非常强大,实际上在 WinForms 2.0 中非常类似。只是似乎很少有人知道并充分利用它。(也许他们只尝试了1.1版本并认为它太复杂了...)


3

我同意Alex的看法-转向WPF。其中一个可能的限制是,WPF仅适用于XPSP2及更高版本。

与WinForms相比,WPF的一个优点是WPF的数据绑定比WinForms更强大。它使得组合数据绑定的用户界面变得非常容易。


3

选择一个小的WPF项目,并准备在学习WPF的功能和正确使用方法时对其进行大量重构。将该项目视为“培训”,因为要熟悉WPF需要一段时间。虽然需要坚持不懈,但这是值得的。


2

我建议新的应用程序使用WPF,因为它在工作时更加舒适,并且可以说是“未来”。但WinForms也没有任何问题,如果你想继续使用它,也不会有任何问题。


2

我非常喜欢WPF提供的许多架构变化。仅更新后的数据绑定模型就足以让我为之改变,我个人认为。但是,我需要权衡一下使用WPF所涉及的任何潜在开销与工具维护组跟上WPF步伐所需的时间。


1

我会根据项目数量和大小来决定使用WPF的必要性。如果有更多的工作需要完成,那么利用WPF的能力就更有意义了。对于CRUD应用程序而言,除了一些华丽的界面效果外,使用WPF并不能增加太多功能。但是在中期生产力方面,WPF采用了清晰明了的方法,而不是像Windows Forms一样经过多次演化并被大量修补的方法,虽然Windows Forms看起来非常美观。在XML中布置屏幕确实有其好处。

然而,对于一些快速小工具,我建议保持使用Windows Forms,直到掌握了WPF的技能,除非目的之一就是为了学习掌握WPF的技能本身。


0

如果贵公司正在考虑未来转向WPF的战略决策,那么从内部工具开始可能是一个不错的选择。如果您没有任何这样的计划,那么承担理解WPF这个非常重要的任务根本不值得。如果您认为也许应该有人考虑是否要向WPF进行战略性转移,并且这是一个好的起点,请确保这个人有足够的影响力被听取。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接