【问题标题】:Will VC++ MFC become obsolete in near future? [closed]VC++ MFC 会在不久的将来过时吗? [关闭]
【发布时间】:2011-02-05 13:57:18
【问题描述】:

通常人们说 MFC 有点笨拙。它使 UI 开发有点难以维护,因为它有很多自动生成的代码。它具有良好的体系结构(文档/视图),但不像 Win32 编程那样透明,无法理解窗口程序如何在后台工作。 因此,在这种情况下,是扩大 MFC 编程的接触面还是更好地切换到 .NET,因为这样可以加快 UI 设计并易于维护。

继续做 MFC 开发人员好还是了解 .NET 好?

全球公司如何将 MFC 视为一种用于 UI 开发的技术。 他们是否愿意支持他们的开发人员继续使用 MFC 或寻求改变他们的开发技术。

【问题讨论】:

  • @kenny:如果是这样,MS为什么要为VC9(VS2008)提供MFC功能包(MFC UI设计的进步)。因此,他们可以为 MFC 做出贡献,这表明他们有兴趣支持或扩展对 MFC 的支持。
  • 因为一些对他们很重要的重要客户要求它。这并不意味着它没有过时,IMO。
  • 感谢 cmets。如果不是 MFC,那么根据您的说法,哪个最适合未来的 windows 用户界面设计和开发。有人对此有什么看法吗?
  • 如果您想要真正从 Windows 中获得最大收益的东西,那么您唯一真正的选择是 Winforms 和 WPF。而 WPF 是目前认可的方式,Winforms 在 MS 的路线图上已经过时,正在推动 Silverlight(与他们手机平台上的 WPF 相关)。 Java 可以像 wxWidgets 一样做 UI,但我从来没有见过一个跨平台的解决方案可以触及原生 Windows 应用程序以使其看起来正确。
  • Qt 是否包含了 .net 技术中所有可能的功能?或者它是一个“更好的MFC”......我从来没有使用过它。

标签: .net windows visual-c++ mfc


【解决方案1】:

在大多数情况下,MFC 已经属于遗留代码的范畴。但是,只知道 C++/MFC 的团队/公司将继续将它用于新应用程序,因为它对他们来说更快,并允许他们重用现有的代码库。

因此,总而言之,遗留 MFC 代码的比例将继续增长,但技术通常需要数年或数十年才能消亡,因为团队的生命周期可能就是这个时间。

如果您是 MFC 开发人员,找到学习 .NET 的方法绝对是一个好主意,因为越来越少的工作需要 MFC,而这些通常是旧项目,而不是令人兴奋的新东西。

但它仍然是一项有用的技能,了解一些稀有技术可以让你赚大钱!

【讨论】:

  • 有些技术永远不会消亡。也就是说:COBOL,FORTRAN。
【解决方案2】:

让您的 C++ 技能保持最新。如果我正在面试一份工作的候选人,并且一个人知道 C++ 并且可以展示一些深厚的 C++ 技能,我知道他们将能够处理我扔给他们的任何东西,无论是 VB、C#、Java , Python 等。只是语法和语义略有不同。多线程编程是在它之上的一个附加层,非常棒。

【讨论】:

    【解决方案3】:

    这些年来我做了很多 MFC 并且仍然很喜欢它。这是生成小型无依赖 Windows 可执行文件的最简单和最快的方法。我通常将 ATL、STL 和增强类与 MFC 混合在一起,它们都像一个幸福的家庭一样一起工作。您确实需要了解自动生成的代码的作用,但实际上并不难,特别是如果您已经完成了纯 win32 程序。

    任何 MFC 程序员都应该学习 .Net。这并不难,因为 MFC/Win32 开发人员会了解 .Net 框架中的所有这些类实际上在做什么。

    作为职业决策,我仍然鼓励任何人扩展他们的技能组合,而不仅仅是 Windows 桌面应用程序。毫无疑问,任何消费者桌面应用程序都希望跨平台,许多新的业务应用程序也是如此。如果您想继续使用本地计算机应用程序,您应该考虑学习跨平台框架,例如 Qt。

    当然,很多应用都在迁移到网络上,所以在网络上掌握一些技能也无妨。

    【讨论】:

      【解决方案4】:

      嗯,我们的产品由大约 70 个 MFC 项目(EXE 和 DLL)组成,开发工作大约 100 人年。

      我们必须确保该应用程序至少在 10 年内运行。我们必须确保我们现有的客户可以使用他们的 NT 网络和 Win98 客户端。

      考虑到这一点,我们仍然使用 MFC 开始新项目。

      尽管每个 Windows 版本都有一些新的光学特性,但 Windows 的核心仍然几乎相同,MFC 将继续工作。

      【讨论】:

      • 我相信你的情况也不例外。在客户站点上运行的 MFC 业务应用程序的数量是巨大的。根据我的经验,一个集成良好的应用程序的生命周期比开发人员和客户通常预期的要长得多。
      【解决方案5】:

      我真诚地怀疑任何公司会使用 MFC 而不是至少使用 WinForms 来启动一个新项目。

      但我可能过于乐观了。

      另一方面,有人可以维护使用 MFC 的旧项目总是一件好事,但我不会只依赖这项技能。

      【讨论】:

      • 在拥有丰富 MFC 使用经验且没有使用 C# 记录的公司中,他们可能会在新项目中使用 MFC - 例如 dwo 公司在现有项目中开发新应用程序是一个重要因素也是。
      • 我可以理解,一家公司不想(也不能)扔掉旧的软件只是为了用现代语言/技术重写它们。另一方面,开发人员应该努力了解新技术。如果没有人这样做,那么 50 年后只有少数(昂贵的)人仍然知道如何维护现有软件会发生什么?
      猜你喜欢
      • 1970-01-01
      • 2010-10-14
      • 2016-06-02
      • 2012-04-03
      • 1970-01-01
      • 2021-01-09
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多