我应该使用WPF或Winforms来构建我的新Windows桌面应用程序吗?

时间:2010-03-01 13:26:18

标签: .net wpf winforms

两种方法都有利弊。但从经理的角度来看,最好的方法是什么?

6 个答案:

答案 0 :(得分:2)

对此没有简单的答案。微软的战略是让WPF成为前进的平台,而WinForms最终将开始受到越来越少的关注。尽管如此,WinForms仍然是一个非常大的开发平台;你会发现WinForms的第三方组件比WPF更多(虽然这个鸿沟显然正在关闭)以及更多的在线示例。您还可以在就业市场中找到更多WinForms开发人员。

差异真正取决于你正在做什么。这是什么类型的项目?

答案 1 :(得分:1)

如果你想在表单中实现一些eyecandy,我应该去WPF。另外请记住,WPF是基于矢量的,因此它将比常规winform更好地处理缩放。

但是,如果您的应用程序用于管理数据,注册客户端,那么您可能现在想要坚持使用WinForms。如果您坚持使用模型 - 视图 - 控制器,您可以在以后轻松更改视图(如果需要或需要)。

答案 2 :(得分:1)

恕我直言,我认为.NET 1.0发布时类似于VB6。 随着时间的推移......最有才华的程序员(也是最昂贵的程序员)将全部转移到WPF。只有那些才华横溢的人才会留在windows.forms ......但这需要时间。

在我的工作中,我们必须支持2002-2004的COM + ASp3.0应用程序。我希望它至少在.NET 1.0中。

在WPF中开发的代码将来更容易保持windows.forms代码。但正如亚当所说,这取决于项目的类型。

答案 3 :(得分:1)

要考虑的一件事是Mono目前计划支持WPF。他们的计划似乎只是支持Silverlight在Moonlight中提供的子集。随着Moonlight首先瞄准桌面,Silverlight跟随它,可能Silverlight是要走的路,除非你有一些需要WPF高端功能的特定功能。

答案 4 :(得分:1)

从经理的角度来看,这没关系,至少在你似乎提出这个问题的方式上。经理不会编写代码,通常不应该设置要求。这个问题的答案是“最有效地满足业务需求”,这不是一个简单的问题。

所以,实际上,经理应该向要实施该软件的团队提出技术反馈。他们将基于他们对业务需求,他们自己的技能以及他们必须支持/整合的任何预先存在的资产的理解给出答案。

重要的是要记住这样一个问题,即使给出相同的要求,不同的团队/个人也会给出不同的答案。这并不意味着两者都错了!

答案 5 :(得分:1)

如果你忽略了学习曲线(这有点像问问Harry Whittington,“没关系,鹌鹑怎么样?”),WPF在几乎每个层面上优于Windows Forms的优势都是巨大的。即使您忽略了分辨率独立,富媒体和动画等内容,也只是专注于为用户创建表单以输入数据。

我认为这都与数据绑定有关。你必须了解很多其他的东西(特别是依赖属性),以便能够使数据绑定,但WPF的数据绑定实现从根本上改变了UI开发的可能性。

考虑一个非常简单和常见的UI支持:输入窗口的一个区域,其内容取决于用户在窗口另一部分中选择的对象类型。这是Windows Forms中的一个有趣挑战。在WPF中,通常可以在不编写任何过程代码的情况下完成(至少在构建正确的视图模型后)。