从Winforms迁移到WPF

时间:2010-10-14 13:44:21

标签: .net wpf winforms

我知道可能是一个主观问题,但我想知道您的经验,并估计Winforms程序员切换到WPF并编写一个简单的应用程序需要多长时间。

我开始使用.Net Winforms构建一个Windows应用程序。由于客户关心用户界面,我认为最后切换到WPF是个好主意 我是WPF的新手,除了一些常识之外几乎不知道任何事情。

该应用程序是一个单用户桌面应用程序,SQL Server Express作为后端数据库,将使用强类型数据集或亚音速作为其DAL。将使用一些基本UI元素(Datagridviews,Textboxes,Buttons,...)。正如你所看到的,它根本不是一个复杂的项目。这就是为什么我第一次考虑在这个项目中使用WPF的原因。

我不知道Winforms开发人员需要多长时间才能习惯WPF 您是否认为我应该根据其学习曲线使用WPF开始这个项目? 附:该项目应该在大约2个月内准备好,我是一个快速学习者。

6 个答案:

答案 0 :(得分:4)

您可以使用WPF轻松快速地编写“WinForms-like”(事件处理程序,代码隐藏等)代码,它可以正常工作。但它并不是真正的“WPF方式”,并且将限制您未来的灵活性。

答案 1 :(得分:4)

关于winforms与WPF开发,有两件有趣的事情(对我而言)。

  • 支持并采用模型,视图,视图模型(MVVM)开发方法。虽然我过去曾使用过MV *方法,但是数据绑定,路由事件/命令等的概念似乎很适合MVVM模式。从我的角度来看,由于关注点的分离,这使得编码更容易。

  • MVVM方法自然地将您的UI与数据/业务逻辑分开 - 但是,WPF更进一步,并将您的UI与实际显示的方式分开。 MSFT表示,他们认为设计师应该是设计师,开发人员应该是开发人员,而且这两种技能组合有时会混合,但很少。因此,他们在WPF中使用样式方法做得非常出色,允许开发人员淘汰快速(丑陋)用户界面,然后将其转交给清理它并使其看起来漂亮的设计师团队 - 所有而不影响底层代码。 (在MIX '09讨论)

我认为你可以做的最糟糕的事情是尝试为WPF开发带来winforms代码隐藏方法。首先,因为您将阅读的大多数(最近)材料都面向MVVM模式,其次,因为您会发现应用程序的开发和维护在MVVM模型中更容易一个数量级。

答案 2 :(得分:3)

像Dan说的那样,使用Canvas并且你非常接近winforms,但这很糟糕。 编辑:在我忘记之前,不要指望DataGrid与Winforms DataGrid类似。我倾向于使用ListView(使用GridView布局)在简单的情况下替换它。

获得一本好的(即实用的)书,以获得陡峭的学习曲线。我推荐Adam Nathan的书,它以即将开始的步伐教你重要的概念。

答案 3 :(得分:2)

我最近在开发了几年Windows.Forms后,在WPF中创建了我的第一个更复杂(即非企业,但不是hello world)的应用程序。我会说开关并不太复杂。您必须学习新的类和一些新的编码样式(例如更多的XAML定义,不同的数据绑定等)。

总的来说,如果应用程序不是太复杂,你应该在一周内学到很多东西,当你的项目在2个月内完成时,应该非常擅长WPF。

答案 4 :(得分:2)

关于WPF与Winforms的比较......

WPF versus Windows Forms

答案 5 :(得分:2)

许多人发现这是一个非常巨大的飞跃。估计需要多长时间是很困难的,因为它取决于你来自哪里。您可能会受益于reading Scott Hanselman关于他在学习WPF时的经历的博文。它将指导您从头到尾完成开发过程,最终结果(Baby Smash!)可供下载。