【问题标题】:Switching to WPF. Is it time?切换到 WPF。是时候了吗?
【发布时间】:2010-12-17 03:16:59
【问题描述】:

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

我首先担心的是有太多的用户还没有安装 WPF 的 .NET。谁能指出包含 WPF 渗透率的来源?

我的第二个担忧是速度。

还有其他注意事项吗?

【问题讨论】:

  • 那么太阳神用的是Windows?有趣... ;-)

标签: wpf mfc migration


【解决方案1】:

我一直在研究 WPF 有一段时间了。它很棒,但它仍然有(偶尔)你必须自己堵住的漏洞。然而,所有迹象都表明 .NET 4.0 将是向前迈出的重要一步。

我会说现在开始。 WPF 的学习曲线非常陡峭,相信我,您还需要一段时间才能向用户发布软件。也帮自己一个忙,并获得 WPF Unleashed 书。太棒了。

速度不是一个考虑因素。 WPF 提供的强大功能非常值得任何速度上的缺点 - 来自 Windows 窗体 - 老实说,我没有注意到。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 请注意,Silverlight 比 WPF 更年轻,并且没有预装在 Vista 上,因此它的渗透率可能远低于 WPF。如果您交付的是一张 CD,您可以包含最新的 NET Framework 并自动安装它。如果您正在下载,您可以轻松地将 Windows 更新过程集成到您的安装过程中。无论哪种情况,您的祖母都不需要采取任何额外的步骤,因为您使用了 WPF。
    • @Ray 您如何将 Windows 更新过程集成到您的安装过程中?
    • @Ray True- riastats 网站并不像我想象的那么好。
    • @Ra- 您可以使用 VS 2008 创建的安装项目包括“先决条件”。其中包括 .NET 和 SQL Express 之类的东西。为所需的 .NET 版本 (3.5) 添加先决条件,然后从默认的 Windows 更新位置下载。
    【解决方案3】:

    WPF 渗透率

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

    如果您在 CD 上发布,那么在 CD 上包含最新的 .NET Framework 并自动安装它并不重要。如果用户正在下载您的应用程序,它可以联系 Microsoft 的 Web 服务器以下载并安装最新的 .NET Framework。如果您希望人们无需安装即可直接从 Web 浏览器启动其应用程序,在线 ClickOnce 部署也具有此功能。

    因此,底线是,您可能不需要担心人们是否会在他们的机器上安装 WPF,除非您的目标市场主要包括在 Windows XP 上拨号的客户,他们不运行太多第三方 -派对软件(即,它们只运行 Windows 和您的应用程序)。

    速度

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

    【讨论】:

      【解决方案4】:

      如果您在接下来的一两年内仍坚持使用 Visual Studio 2008,甚至不必费心尝试使用 WPF。体验会太痛苦。我说的是“我的 IDE 再次崩溃”类型的痛苦。

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

      【讨论】:

        【解决方案5】:

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

        同时,您可以尝试一下。在编码/可读性方面——它会比MFC好得多=)

        至于性能和平台——这应该不是问题,除非你有任何非常特殊的情况(比如你不能要求用户安装 .NET)。

        另见related question on switching to WPF from Windows Forms

        【讨论】:

          【解决方案6】:

          如果您正在考虑一个更大的模块化应用程序,我建议您查看Prism。它本身有点像野兽,但在掌握了 C#、依赖属性和 XAML 之后,您应该能够解决它。另外,学习 Prism 让我对 WPF/Silverlight 有了更好的理解,至少在开发/绑定方面是这样。

          Mike Taulty 在 Prism 上发布了一个优秀的 10 部分视频系列。这是让您了解平台的好方法。

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

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

          【讨论】:

            猜你喜欢
            • 2010-11-29
            • 2010-09-15
            • 1970-01-01
            • 2012-12-14
            • 1970-01-01
            • 2022-11-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多