WPF应用程序与Winform的商业应用程序的优势?

时间:2009-03-11 19:38:37

标签: wpf winforms

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

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

WPF如何帮助这些应用?更丰富的数据绑定? WinForm是一种成熟的成熟技术,我喜欢这样的事实:我可以在Visual Studio中为WPF(VS& Blend系列)提供多个IDE。另外我认为WPF没有像Winform对应物那样丰富的数据绑定控件(DataGridView..etc)。 AFAIK,Microsoft仍将支持Winforms多年。

试着说服像我这样的人切换。

7 个答案:

答案 0 :(得分:100)

  

我知道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 Gray?他们为什么要无法使用?当然,不是颜色,渐变,动画使商业应用程序可用,但使用这些效果可以帮助用户体验,这对我来说很重要。我可以完成我在WinForms中的WPF应用程序中所做的一切 - 它只需要更长的时间。

  

更丰富的数据绑定?

数据绑定支持真的很棒。这是我在平台上最受喜爱的功能。查看this wonderful Databinding Cheatsheet

  

试着说服像我这样的人切换。

我已经决定,我不会试图说服其他人切换到WPF。我试图“说服”(所有经验丰富的Winforms开发人员)的开发人员通常都在努力平台。他们没有投资于这项技术。他们没有“得到它”。 我鼓励人们查看技术,看看它是否适合作为开发人员使用。学习曲线很大。如果您通过书籍学习,请查看this SO post以获取有关WPF书籍的一些小型评论。如果您通过视频了解,请查看windowsclient.net WPF videos。如果您通过示例学习,请查看thisthis帖子。忘掉你所知道的关于WinForms的一切。 WPF似乎比WinForms更接近ASP。创建一些示例应用程序看看它是否适合您和您的团队。

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

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

祝你好运。

答案 1 :(得分:10)

我有很多winforms体验,并且只玩了一点WPF,但我已经卖掉了。

为什么呢?

  • 更多灵活性。如果你想在winforms中做任何非标准的事情,那么痛苦和痛苦随之而来,但在WPF中它很简单。

  • 更好的数据绑定

  • 更容易开发(一旦理解了核心概念,不幸的是需要一段时间)

答案 2 :(得分:4)

当我开始查看WPF时,我将其视为“Winforms with Vector Graphics”并直接进入学习悬崖的一侧。从WinForms转换到WPF的正确方法是采取英雄的剂量,你可以放下手中的任何麻醉剂,以便忘记你所知道的一切,然后从头开始。

严重的是 - 如果你使用Model-View-ViewModel这样的模式,它会更清晰,更容易。请阅读The OrbifoldGoogle Groups threadChannel9

然后在某些时候你会有一个顿悟并开始数据绑定一切。您的代码隐藏不仅仅是对InitializeComponent()的调用。

答案 3 :(得分:4)

感谢您的帖子。我公司在WinForms上投入了大量时间。我无法想象在32个工作日内获得中等规模的应用程序;我们的认证期是几个月,发布周期有时是一年或更长(尽管我们尽可能地坚持敏捷开发理念),这就是我们开发的应用程序的性质。

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

我很高兴看到微软想到这一点(在WinForms中托管WPF,反之亦然),因为除非我们能够长时间过渡,否则我真的看不到我的公司转向WPF;在WinForms中投入太多资金才重新开始。根据我最近的经验,我可能会开始与其他开发人员讨论我最近的经历,看看他们的想法是什么。我认为WPF将需要一些时间来适应,这似乎与其他评论一致。

答案 4 :(得分:1)

不是很重复,但除了新的图形位之外,你可能会发现这篇文章对WPF的好处很有帮助。

WPF or WinForms for internal tools?

答案 5 :(得分:0)

只需在Stackoverflow中查看此搜索结果即可获得大量答案。 https://stackoverflow.com/search?q=WPF+Winforms

答案 6 :(得分:0)

想象一下,如果您可以将ASP.NET /(Silverlight)页面中的相同UI(XAML)与桌面应用程序一起使用。你只需构建一次,但将其连接到......这是WPF / XAML的意图之一...我们真的在那里吗?还没有,但越来越近。