切换到WPF。是时候了吗?

时间:2009-11-16 16:53:10

标签: wpf mfc migration

我正在考虑从MFC切换到WPF。

我首先担心的是,有太多用户没有安装带WPF的.NET。任何人都可以指向包含WPF渗透数的来源吗?

我的第二个问题是速度。

还有其他考虑吗?

6 个答案:

答案 0 :(得分:10)

我一直在为WPF敲打一段时间。这很棒,但它仍然有(偶尔)漏洞你要插上自己。但是,所有迹象都表明.NET 4.0将是向前迈出的重要一步。

我想说从现在开始。 WPF的学习曲线非常陡峭,相信我,在您向用户发布软件之前还需要一段时间。也帮自己一个忙,获得 WPF Unleashed 书。这是优越的。

速度不是考虑因素。 WPF提供的功能非常值得任何速度上的缺点 - 来自Windows Forms - 我没有注意到诚实。

答案 1 :(得分:7)

您正在开发什么样的应用程序?如果它是您希望祖母安装的广泛分发的桌面应用程序,那么您对.NET 3.0 / 3.5采用的关注是有效的。到目前为止,我所看到的,性能不是一个问题。

答案 2 :(得分:7)

WPF渗透率

首先,Windows Vista和Windows 7都预装了WPF,自动占用35% of the market。 Windows XP已经拥有它,因为它在Windows Update中作为.NET Framework 3.0的一个选项已经有三年多的时间了,许多应用程序都附带了它,所以它很可能也安装在很高比例的Windows XP机器上。 StatOwl表示.NET Framework安装的about 80%版本为3或更高版本。

如果您在CD上发货,那么在CD上包含最新的.NET Framework并自动安装就没什么大不了的。如果用户正在下载您的应用程序,它可以联系Microsoft的Web服务器以下载并安装最新的.NET Framework。如果您希望人们能够直接从Web浏览器启动他们的应用程序而不安装它,那么在线ClickOnce部署也具有此功能。

所以最重要的是,您可能不需要担心人们是否会在他们的计算机上安装WPF,除非您的目标市场主要包括Windows XP上没有多少运行的拨号客户 - 派对软件(即他们只运行Windows和您的应用程序)。

<强>速度

不是问题。我有一个200 MHz Pentium Pro,1998年有384 MB RAM,我测试我的软件,我的WPF应用程序具有与同等MFC应用程序相当的性能。如果您的WPF应用程序使用大量精美的图形和动画,它将在古老的CPU和显卡上运行缓慢,但具有相同功能的普通MFC应用程序也是如此。

答案 3 :(得分:3)

如果您在接下来的一两年内坚持使用Visual Studio 2008,请不要尝试使用WPF。这种经历太痛苦了。我说的是“我的IDE再次崩溃”的痛苦。

如果你打算在不久的将来使用VS 2010,那么WPF就是一个爆炸性的。下载测试版,CodePlex的几个主题,正在开始播放。一旦你超越(巨大的)学习曲线,我认为你会发现它非常有趣。

答案 4 :(得分:3)

恕我直言,您应该等待Visual Studio 2010和WPF 4.0进行实际迁移。他们将关闭产品中一些非常烦人的差距。

同时,你可以尝试一下。在编码/可读性方面 - 它将比使用MFC =)

更好地使用WAAAY

至于性能和平台 - 除非你有任何特殊情况(例如你不能要求用户安装.NET),否则它应该不是问题。

另见related question on switching to WPF from Windows Forms

答案 5 :(得分:0)

如果您正在考虑更大的模块化应用,我建议您查看Prism。它本身就是一个野兽,但在掌握了C#,Dependency Properties和XAML后,你应该能够解决这个问题。另外,学习Prism让我对WPF / Silverlight有了更好的理解,至少从开发/绑定方面来看。

Mike Paulty发表了一篇关于Prism的10部优秀视频系列。这是一个了解平台的好方法。

我还建议从codeplex上的Getting Started页面链接到的页面。毕竟,您可能已经准备好处理下载附带的参考实现。

A previous answer of mine也可能有助于消除您可能拥有的框架中控制器/演示者之间的任何混淆(我做过)。