在我的公司,我们开发了许多内部工具,从简单的实用程序到成熟的编辑器。这些工具的优先级是稳定性,可用性和周转时间(意味着可以多快地添加新功能)。
到目前为止我们一直在使用WinForms,但是在绘图板上有一些新的工具,我正在权衡我们是否应继续使用WinForms或转向WPF。当我们控制环境时,我们不必担心.NET版本等(尽管我们必须暂时在XP上运行)。
我熟悉WPF提供的图形优势(基于矢量,硬件加速,皮肤能力),但我想知道WPF是否有任何其他方面可以为WinForms的使用提供令人信服的论据。
谢谢,
答案 0 :(得分:11)
不要低估学习曲线。 WPF非常适合使用,它可能是一场噩梦。我已经看到WinForms只有开发人员对WPF然后使用ASP.NET更加无助(即使对Web开发知之甚少)。虽然大多数开发人员能够在不阅读任何书籍的情况下开始使用WinForms和ASP.NET,并且在某种程度上具有高效性,但对于WPF来说这似乎是不可能的。
不要忘记第三方组件。是的,市场上甚至有新的参与者,并且在.NET 3.0 e之后岁。 G。 SoftwareFX最终设法发布了他们的WPF图表解决方案(仅作为示例),但WPF的组件市场仍然明显更小(商业和开源),并且WPF组件通常仍然比它们的WinForms同类产品强大。 / p>
我同意这种架构,例如G。数据绑定概念很棒,如果你遵循像MVVM这样的模式,但是在MSDN中关于最佳实践e的文档很少。 G。关于MVVM,所以你必须自己将你的团队指向网络和书籍等文章。
数据绑定已经非常强大,实际上在WinForms 2.0中非常相似。看起来很少有人知道并充分利用它。 (也许他们只在1.1中尝试过,并认为它太复杂了......)
答案 1 :(得分:3)
我同意Alex - 转到WPF。一个可能的限制是,WPF仅适用于XPSP2及更高版本。
WPF优于WinForms的一个优点是WPF的数据绑定比WinForms强大得多。它使得将数据绑定的UI放在一起非常容易。
答案 2 :(得分:3)
选择一个在WPF中做的小项目,并准备在你了解WPF可以做什么以及如何正确使用它时重构它。将项目视为“培训”,因为WPF需要一段时间才能加快速度。坚持不懈,因为它值得。
答案 3 :(得分:2)
我会转移到WPF寻找新的应用程序,因为它总体上更好用,并且正如他们所说,“未来”。
WinForms没有任何问题,所以如果你想坚持下去,那就不应该有任何问题了。
答案 4 :(得分:2)
我喜欢WPF提供的许多架构更改。更新的DataBinding模型本身值得为IMO做出改变。但是,我会权衡该组所涉及的任何潜在开销,以保持工具加速WPF。
答案 5 :(得分:1)
我会根据项目的大小和数量使用WPF。你所做的工作越多,它就越有利于利用WPF的力量。对于CRUD应用程序,除了一些眼睛糖果之外,你在WPF的功能方面也不会获得太多收益。你将赢得中期生产力的地方,因为WPF遵循干净的方法,而不是已经多年来已经发展的那种方式,并且即使穿着非常好,如Windows Forms,也是高度修补的。用XML布局屏幕确实有其好处。
但是,对于快速的小工具,我会坚持使用Windows窗体,直到达到WPF熟练程度,除非其中一个目的是提及熟练程度。
答案 6 :(得分:0)
如果贵公司正在考虑将来转向WPF的战略决策,那么从内部工具开始可能是一个好地方。如果你没有任何这样的计划,那么接受理解WPF的主要任务根本就不值得。如果你认为也许有人应该考虑是否要对WPF进行战略性转移,这将是一个很好的起点,请确保有足够的影响力来吸引他们。