.net - Windows 桌面应用程序的现代 UI 的正确方法是什么?

标签 .net visual-studio-2010 winapi user-interface mfc

我有一个具有广泛 C++ 模型的现有应用程序,我想将它连接到一个漂亮的现代 Windows 7 或 8 UI。我们应用程序的当前(古老)UI 是在早期的 Windows XP/95/98 时代使用纯 Win32 API 开发的。我们的代码目前正在通过 Visual Studio 2010 编译/链接。

Windows 上似乎有很多不同的开发 API“标准”:Win32、MFC、ATL、COM 和 .NET。在过去的 14 年里,我的工程师几乎一直在拖微软的路线:在 2001 年,它是“MFC 已死——我们必须迁移到 ATL”(我们没有)。然后“.NET 将替换 MFC”(它似乎没有)。

所以现在我们准备好转储旧的 UI 代码。使用一组可靠且高效的标准会很好,而且我们可以快速创建 UI。撇开 QT 不谈(我在 stackoverflow 上阅读了很多争论不休的优点和缺点):

1) Windows 7 和 8 的现代 UI 开发方法是使用 MFC 还是 .NET?

2) 对于 .NET 方法(假设有充分的理由选择 .NET),我们可以将我们的 C++ 模型代码 UNMANAGED 与 .NET 应用程序一起使用吗?

3) 是否必须在 Visual Studio 2012 中进行开发,即使我们的应用最初不是为 Metro 外观设计的?

4) 是否有任何其他 Microsoft 工具包应考虑用于桌面应用程序开发?

斯蒂芬

最佳答案

this我在 2011 年给出的答案。我认为它今天仍然有效;考虑到最近从微软转向 C​​++,也许更是如此。我不确定 MFC 中有多少对 win8 的额外支持,但如果您没有完全切换到 Metro(我想您不会;如果您有“产品”,则需要支持较旧的 Windows至少,什么,5年?),这并不重要。

我还没有看到一个感觉像 C++ 一样“可靠”的 .Net/WPF 应用程序(是的,我意识到这些在技术上是正交的,但实际上,谁用 C++ 构建了 .Net UI?)。我理解人们为什么要离开 MFC;这并不是说我不了解它的消极面。 IMO,归根结底是:您对快速发展的重视程度如何?对于某些应用程序(业务线、生命周期短的产品),上市时间和做出改变的速度比“扎实”地设计更重要。对于其他(专业工具、系统软件)而言,创建具有良好用户体验的可靠软件更为重要。我还没有看到在更“现代”的框架中执行此操作的生产软件(而不是“技术演示”); MFC(或者我应该说'win api used through C++',但在这方面,MFC 有足够的优势让积极因素胜过消极因素)应用程序(仍然)(通常)是最好的工具。国际海事组织。

最后要考虑的一件事是您的开发人员。如果他们已经为 MFC 编程 15 年,那么他们可能会将自己的职业生涯编程到一个角落。如果你坚持继续使用 MFC,你可能会疏远他们。您必须权衡其中的业务风险与技术考虑因素(我从您的问题中得出,您是企业主)。如果您希望私下进行,请随时与我联系以进行后续讨论。

关于.net - Windows 桌面应用程序的现代 UI 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823493/

相关文章:

c# - .NET Framework 2.0 中的 AES 256 加密

c# - 解码 Decimal64 数据

c# - .NET 中的 Hadoop 流式处理

c++ - 当我在 Debug模式下编译时,丰富的编辑控件格式不起作用

c - winapi中如何区分卷和文件句柄?

c# - 如何在 WebApi 请求中获取 Controller 名称?

c# - 如何在 VS WPF 设计面板中显示集合数据?

visual-studio-2010 - Visual Studio 2010 会支持经典的 asp 吗?

c++ - 如何使用 C++ win32 API 连接消息框文本中的值?

c# - 当我将鼠标悬停在组合框项目上时引发事件