首页 > 解决方案 > 需要将复杂的 GUI 界面项目从 RAD Studio 移植到 Visual Studio

问题描述

我正在为一家维护几个用 C++ 编写的桌面应用程序项目的公司工作。所有这些应用程序都有复杂的 GUI 界面。我所说的“复杂”是指与许多组件的接口、深层组件层次结构、框架的使用、第三方和/或支持透明度和动画等功能的自定义组件包。

到目前为止,我们一直使用 Embarcadero RAD Studio 套件来编写和维护我们的应用程序。然而,每个新版本的许多反复出现的错误让我的上级感到厌烦,现在他们正在考虑迁移到 Visual Studio 的可能性。

我认为迁移用 c++ 编写的应用程序核心功能不会是一个真正的问题。

然而,对于 GUI,这是另一回事。我以前在 Visual Studio 2003 编译器下有过复杂接口的经验,我记得创建和维护它们是一项痛苦的工作。没有真正的设计师,组件有限,而且大部分工作都是手动完成的。从那以后,我查看了 Visual Studio 2017 提供的设计工具,我的第一印象是自那以后并没有太大变化。c++ 项目的设计器仍然很初级,特别是与 RAD Studio VCL 相比,它具有良好的组件库。C# API 比我需要的更接近,但我无法设想用 C# 重写我的所有代码作为一个严肃的选择。

我试图搜索有关在这种情况下应用的良好做法的教程,但直到现在我还没有找到有用的信息。

我的问题是:

  1. 我可以在迁移到 Visual Studio 时恢复当前的 GUI 界面(至少是其中的一部分),还是必须计划从头开始重写所有内容?
  2. Visual Studio 是否提供类似于 VCL 的机制来编写 GUI 界面、安装第三方包和编写自定义组件?如果是,我在哪里可以找到相关信息?
  3. 如果没有高剂量的头痛和眼泪,这样的端口是否可行?我在哪里可以找到有关此类流程的相关信息?

标签: visual-studioportingrad-studio

解决方案


我目前还在开发使用 Embarcadero RAD Studio 和一些 3rd 方 UI 控件开发的产品。开发是多年前完成的,所以它的 UI 风格相当陈旧。我尝试通过在 C++ 中开发应用程序逻辑和在 C#(WPF) 中开发 UI,在 Visual Studio 中迁移它。但它与编写新应用程序一样好,成本更高。所以我们停止了那个练习。然而我在这期间学到的是——</p>

  1. 将 VCL 应用程序从 RAD Studio 迁移到 Visual Studio 就像编写新应用程序一样。没有一对一的映射(数据类型、结构、UI 控件等),您必须从头开始。也没有可用的工具可以帮助这种迁移。
  2. 某些数据类型、数据结构、UI 控件在 RAD Studio 中很容易获得,而在 Visual C++ (MFC) 中则没有,反之亦然。因此,您必须在迁移应用程序逻辑时检查每一行代码。
  3. 没有可用于 Visual C++(MFC) 的 3rd 方 UI 控件可以让您的生活变得轻松。对于 RAD Studio,您有 LMD 工具、businessSkinForms 等。
  4. 在 RAD Studio 工作超过 5 年之后,在 RAD Studio 中开发 UI 非常容易(C++ 中的 UI)。但是在 Visual Studio 中,您可以使用 C#(WPF) 开发您的 UI,这将是丰富的,并且可以与用 C++ 编写的应用程序逻辑进行通信。

正如您所说,您有几个使用 RAD Studio 开发的桌面应用程序,而迁移到 Visual Studio 则从较小的独立应用程序开始。所以你在迁移这个应用的过程中会有一些信心,然后你就可以将这样迁移的小应用一个一个地投入生产,而不会受到影响。

~尼莱什


推荐阅读