WPF应用程序相对于Winform商业应用程序的优势?[关闭]


84

我知道asp.net和winform开发。我不是那种仅仅因为新技术而跳入新技术的开发人员。它需要给我额外的好处,例如更高的生产率。

对于纯业务应用程序,WPF与Winforms相比有什么优势?我对WPF提供的额外的视觉效果,动画,渐变,图像显示效果等不感兴趣。商业应用程序用于数据输入,数据报告以及一些图表和照片的静态显示。

WPF将如何在这些应用程序中提供帮助?更好的更丰富的数据绑定?WinForm是一项经过验证的成熟技术,我喜欢这样的事实:我可以在Visual Studio中完成所有工作,而在WPF(VS和Blend系列)中可以使用多个IDE。另外,我认为WPF没有像Winform对应控件(DataGridView..etc)那样丰富的数据绑定控件。AFAIK,微软将继续支持Winforms多年。

尝试说服像我这样的人改行。


1
我认为有一些强有力的理由切换到WPF。我不想重复我刚刚写的博客,因此将在此处添加一个链接。
安迪·布朗

7
这是一个很好的问题。应该重新打开。我是Winform开发人员,现在改用WPF。学习曲线很大。但是WPF是未来,因为它本质上是声明性语言,例如HTML。Winform主要是程序性的,它更适合算法,但是显示UI时比较冗长。尝试解压缩.XPS打印文件,您将在其中看到WPF xaml。Winforms有太多限制。尽管它仍然有效,但是WPF的“眼睛糖果”可以帮助降低用户的压力水平。您可以用除listview或datagrid之外的更有意义的方式显示多行记录。
Jeson Martajaya

Answers:


101

我知道asp.net和winform开发。我不是那种仅仅因为新技术而跳入新技术的开发人员。它需要给我额外的好处,例如更高的生产率。

对于我的团队来说,事实证明WPF可以比WinForms更快地开发应用程序。我们最近在32个工作日内发布了一个中型应用程序。我们在团队中拥有经验丰富的WPF开发人员,以及经验丰富的渴望学习该技术的人。士气高昂,生产力令人印象深刻。

WinForm是一项经过验证的成熟技术,我喜欢这样的事实:我可以在Visual Studio中完成所有工作,而在WPF(VS和Blend系列)中可以使用多个IDE。

您认为自己是手动编码器还是拖放式编码器?如果您将自己视为拖放对象,那么当前的WPF工具可能不适合您。也许等待Visual Studio 2010?我几乎只在XAML中工作。大多数WPF人士可能会同意,这是目前创建WPF应用程序的最有效方法。但是后来,我也手工制作了HTML,因此对我来说感觉很自然...

对于纯业务应用程序,WPF与Winforms相比有什么优势?我对WPF提供的额外的视觉效果,动画,渐变,图像显示效果等不感兴趣。

我曾经以这种方式思考,但是最近我开发了一个具有渐变,基本动画和效果的业务应用程序。添加了这些精美功能,以增强用户体验。为什么商务应用程序应该是Battleship Grey?为什么它们不可用?当然,使业务应用程序可用的不是颜色,渐变,动画,但是使用这些效果可以帮助用户体验,这对我很重要。我本可以完成在WinForms中的WPF应用程序中所做的所有工作-这将花费更长的时间。

更好的更丰富的数据绑定?

数据绑定支持确实很棒。这是我在平台上最喜欢的功能。看看这个精彩的数据绑定备忘单

尝试说服像我这样的人改行。

我已经决定,我不会试图说服其他任何人转而使用WPF。我试图“说服”的开发人员(所有经验丰富的Winforms开发人员)通常都在使用该平台方面遇到困难。他们不投资于技术。他们没有“得到”。我鼓励人们检查该技术,以了解它是否适​​合作为开发人员。学习曲线很大。如果您通过书本学习,请查看此SO帖子,以获取有关WPF书本的一些小型复习。如果您通过视频学习,请查看windowsclient.net WPF视频。如果您通过示例学习,请查看此内容本内容发布。忘记有关WinForms的所有知识。WPF实际上似乎比WinForms更接近ASP。创建一些示例应用程序。看看它是否对您和您的团队有用。

由于您是多技能的(asp.net/winform技能),您可能会发现WPF技能培训的优势,因为它与Silverlight密切相关。Silverlight填补了富客户端应用程序和Web应用程序之间的空白。

我个人认为WPF是.NET框架可用的最佳客户端技术,通常会避免在WinForms中进行开发以用于将来的工作。青年汽车

祝您好运。


10
出色的回应Brad-我们的公司现在正为这个决定而苦苦挣扎。您的观察结果经过深思熟虑,并且与我们到目前为止所见非常一致。我们尚未做出决定,但您的Battleship Gray段落与我们产生了强烈共鸣,因为我们已经看到了外观精美的用户界面对销售的影响。感谢您抽出宝贵的时间写一个出色的答案。
gidmanma 2010年

3
在团队中只有一个经验丰富的WPF开发人员与根本没有一个完全不同。将其与陡峭的学习曲线相结合,如果您正在开展业务,那么您根本不会有太大成就。实际上,如果您有个人来指导您,那么WPF就是很棒的选择,而如果您正在学习,那么WPF就不那么重要了。如果这样做,请准备进行重大重构。
谢尔盖·阿科波夫

3
+1-“为什么商务应用程序应该是“战舰灰色”?- 完全同意!
塞缪尔·斯莱德

5
-1如果迁移到WPF的唯一原因是基于创建渐变并从“战舰灰色”更改应用程序对话框的能力,那么您需要实际学习如何使用WinForms。
deegee

1
+1,完整答案。链接Windowsclient.net WPF视频已关闭,任何人都知道在哪里可以找到那些视频?
Damien

11

我有相当多的winforms经验,只和WPF玩过一点,但是我被卖了。

为什么?

  • 更大的灵活性。如果您想在Winform中执行任何非标准的操作,则随之而来的是痛苦和痛苦,但是在WPF中,这很简单。

  • 更好的数据绑定

  • 易于开发(一旦您了解了核心概念,不幸的是,这将需要一段时间)


4

当我开始研究WPF时,我将其视为“带有矢量图形的Winforms”,并直接进入学习悬崖的一侧。从WinForms过渡到WPF的正确方法是大胆服用各种麻醉品,以忘掉一切,然后从头开始。

严重的是-如果使用诸如Model-View-ViewModel之类的模式,它将更加干净和容易。在The Orbifold上了解更多信息,此Google Groups主题Channel9

然后在某个时候,您将顿悟并开始对所有内容进行数据绑定。后面的代码将只不过是对InitializeComponent()的调用。


4

感谢您的帖子。我公司在WinForms上投入了大量时间。我无法想象要在32个工作日内发布一个中等大小的应用程序。我们的认证期为数月之久,有时甚至每年或更长时间(尽管我们尽可能坚持敏捷开发理念)才能发布,这就是我们开发的应用程序的本质。

我是第一次玩WPF,发现可以通过使用ElementHost在WinForms中获得WPF的一些好处。我扩展了WPF文本框,然后将扩展类包装在Win Forms UserControl中,现在有了使用该WPF文本框的WinForms应用程序,并提供了拼写检查支持。

微软想到这一点(在WinForms中托管WPF,反之亦然)使我印象深刻,因为除非我们能够长期过渡,否则我真的看不到我的公司会迁移到WPF。WinForms投入太多,无法重新启动。根据我最近的经验,我可能会开始与其他开发人员讨论我的最近经验,并了解他们的想法。我认为WPF会花一些时间来适应,这似乎与其他评论一致。




0

想象一下,是否可以将ASP.NET/(Silverlight)页面中的UI(XAML)与桌面应用程序一起使用。您只需要构建一次,然后将其连接到任何一个。...这是WPF / XAML的目的之一...我们真的到了吗?还没有,但是越来越近。


4
从理论上讲,在Silverlight和桌面应用程序中尝试使用相同的UI是听起来不错的事情之一,但实际上,我认为这只会导致两个平台上的UI都糟透了。
Orion Edwards,2009年

是的,WPF和Silverlight2之间的重叠很大,但不足以使您的代码可移植。绑定功能上的差异将严重限制WPF的开发。
geofftnz

1
好吧,我确实说过我们还没有到那儿……但这是最终目的。
Webjedi

geofftnz:您的意思是限制Silverlight开发吗?
阿卜杜(Abdu)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.