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

SMG*_*eld 8 .net user-interface winapi mfc visual-studio-2010

我有一个广泛的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工具包应该考虑用于桌面应用程序开发?

斯蒂芬

Roe*_*oel 5

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

我还没有看到像 C++ 一样“可靠”的 .Net/WPF 应用程序(是的,我意识到它们在技术上是正交的,但实际上,谁在 C++ 中构建了 .Net UI?)。我理解为什么人们想要远离 MFC;我并不是不了解它的消极面。IMO,归根结底是:您对快速发展有多大价值?对于某些应用程序(业务线、寿命较短的产品),上市时间和更改速度比“可靠”设计更重要。对于其他(专业工具、系统软件),创建具有良好用户体验的可靠软件更为重要。我还没有看到在更“现代”的框架中做到这一点的生产软件(而不是“技术演示”);MFC(或者我应该说' win api 通过 C++' 使用,但 MFC 在这方面有足够的优势,可以让正面胜过负面)应用程序(仍然)(通常)是最好的工具。海事组织。

不过,要考虑的最后一件事是您的开发人员。如果他们已经为 MFC 编程了 15 年,那么他们的职业生涯很可能会陷入困境。如果你坚持继续使用 MFC,你可能会疏远他们。您必须权衡其中的业务风险与技术考虑因素(我从您的问题中得知您是企业主)。如果您愿意私下进行,请随时与我联系进行后续讨论。

  • 有很多 WPF 应用程序(或至少与 WPF 大量使用)我认为是“可靠的”,包括 Visual Studio。 (2认同)

Ree*_*sey 4

  1. 您可以采用任何一种方法。然而,.NET 对于用户界面设计来说更为常见,并且如果您需要灵活的用户界面,它具有许多优势(在更快的开发方面)。

  2. 是的。C++/CLI 可以很好地桥接本机代码与 .NET 用户界面。

  3. 不,您可以在 VS2010 中执行此操作。话虽这么说,VS 2012 确实有很多优点,尤其是在使用 C++ 时。升级可能会有好处。

  4. 我会看看WPF。新的 Windows 8 用户界面可能很有趣,但可能很难与您以前的代码库一起使用。此外,它不适用于较旧的操作系统。根据我的经验,WPF 是最好的、目前正在改进的选项(.NET 4.5 中有许多改进),它支持将现有代码库与新的用户界面技术混合。