我们应该迁移到WPF还是Winforms?

5

DUPE: 什么情况下选择Windows Forms而不是WPF?

我们现在需要决定是否选择WPF作为构建我们下一代产品的平台。

个人认为,由于性能和技术成熟度(例如Blend等UI编辑器的质量),我有些担心使用这种技术。

6个回答

5

个人而言,我非常喜欢WPF。

它需要从Winforms进行根本性思维转变。在Winforms中,你可以将东西拖放到一个窗体上。这样可以快速轻松地完成80%的工作,但是当你需要超出WinForms明确涵盖的范围时,你就会进入一个痛苦的世界。

在WPF中,你首先要做的是关闭可视化编辑器。你的UI代码从一个丑陋的混乱变成了美丽的东西。此外,它非常强大和灵活,一旦你掌握了它,你可以做出令人惊叹的事情。

WPF的缺点是它比WinForms更加沉重,学习曲线相对较大。然而,这是未来的发展方向,除非你只是制作一个琐碎的应用程序,否则我会毫不犹豫地选择WPF。


1

如果您不需要非常光滑的UI界面,带有动画等等,我认为还没有必要立即转向WPF。


开发速度如何?你认为哪个应用程序可以更快地编写,WPF还是WinForms?我的选择是WPF。 - David Basarab
@Longhorn213 - 只有在你的开发人员同样精通这两种技术时,你所说的才有意义。 - Galwegian
Longhorn213:这取决于您的需求。对于数据导向的应用程序来说,WPF 中缺乏像 DataGridView 这样的控件是一个重大挫折;您要么需要自己编写它们,使用一些第三方控件或使用 Windows Forms 主机,但它们都不是特别吸引人。 - Tamas Czinege
@Galwegian - 我明白你的意思。对我来说,我是在 ASP.NET 的世界中学习 .NET 的,因为拖动项目时,我总觉得 WinForms 更难用、更笨重,而如果我想让某个元素增长,就必须将其向下移动。这就是我喜欢 WPF 的原因,它对我来说更自然。 - David Basarab
@DrJokepu:不在WPF中包含DataGridViews是有充分理由的。但这并不是不进行迁移的理由。 - GEOCHET

1

如果您担心性能问题,您应该查看以下这些MSDN页面:

Windows Presentation Foundation Performance

我的猜测是,只要有适当的DirectX硬件支持,WPF甚至可以胜过Winforms,因为渲染可以直接由GPU完成。


0

考虑到微软正在使用基于WPF的代码编辑器构建其下一个版本的VS,我发现很难找到WPF不成熟或存在性能问题的支持。

如果您无论如何都能够进行迁移,那么最好升级以增加代码库的寿命。如果您的Winforms代码编写正确,那么开始将其转移到WPF应该不会非常困难。


0

我大约10周前开始自学WPF,然后在过去的2周里,我实际上写了一个WPF应用程序。

我来自ASP.NET,我喜欢WPF。我喜欢XAML标记语言,它比在WinForm中拖动项目并确保它们在正确位置更有意义。

在WPF中,样式更容易,您可以快速制作带有圆角边框。

使用Expression Blend,您可以设计一个具有动画效果的非常漂亮的界面。

我在Vista(家庭版)和XP(工作)上开发了一个WPF应用程序,它们都看起来非常好。

我对WPF非常满意,不会回到WinForms。


0

我的感觉是,如果你对winforms的外观和感觉感到满意,那就坚持使用它。如果你认为你会进行任何视觉定制,那就选择WPF。但是我已经使用winforms很长时间了,WPF很少用过。如果我刚开始学习,我可能会专注于学习WPF,因为它确实更加灵活。


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