需要将复杂的GUI接口项目从RAD Studio移植到Visual Studio



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

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

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

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

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

我的问题是:

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

我目前也在开发一款使用Embarcadero RAD Studio和一些第三方UI控件开发的产品。开发是在很多年前完成的,所以它的UI是相当古老的风格。我尝试在Visual Studio中迁移它,用C++开发应用程序逻辑,用C#(WPF(开发UI。但它和编写新的应用程序一样好,成本更高。因此,我们停止了这项工作。然而,我在这期间学到的是——

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

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

~ Nilesh

最新更新