4

我有一个非常大的 VB6 代码库,其中包含大量的 3rd 方控件。想要将其移至 .NET。重写它是毫无疑问的——客户认为花钱得到同样的东西没有任何价值。使用内置升级向导迁移到 .NET 基本上是不可能的。

有没有人尝试过http://www.vbmigration.com/的 VB 迁移伙伴 如果有,体验如何?

4

3 回答 3

6

我是 VB 迁移合作伙伴工具(位于 www.vbmigration.com)的主要作者。一般来说,我们对来自现有或潜在客户的所有请求都做出了非常快速的答复。如果发现难以与我们联系,我很抱歉。请在http://www.vbmigration.com/contactus.aspx重试

我们确实相信我们的工具能够处理非常大的 VB6 应用程序。实际上,我们的大多数客户都在使用它来迁移 200-500K 行代码范围内的应用程序。我们目前正在开发一个包含超过 1300 万个 LOC 的“怪物应用程序”,这些 LOC 被划分为 1200 多个项目。

正如 RSConley 所建议的那样,如果您的应用程序可以部分迁移和测试,那么任何转换工具都能发挥最佳效果。我们支持 VB6 项目组(在单个操作中转换)、批量转换,并且我们支持与源代码控制工具的集成。(例如,我们保留上一代的解决方案/项目指南,以便您的 SC 工具知道如何处理新生成的代码。)

最后,我们即将发布 1.11 版本,它可以生成与原始 COM DLL 二进制兼容的 .NET DLL,这样您就可以同时迁移一个组件,从最基本的组件开始,所有其他部分都使用该组件。您的应用程序,而无需重新编译它们。(据我们所知,VB Migration Partner 是唯一具有此功能的工具。)

Francesco Balena -- VB 迁移合作伙伴团队

于 2008-11-05T15:36:02.673 回答
4

我以前从未与 VB 迁移人员合作过,但是我强烈建议不要将代码库迁移到 .NET。它确实没有增加价值。

我取得的巨大成功是在 .NET 中添加新功能并通过 VB6 应用程序中的 COM 互操作获得它。这非常轻松,是在遗留应用程序中利用 .NET 的好方法。

...我的 2 美分

于 2008-11-05T05:12:22.417 回答
4

简短的回答是 VB6 和 VB.NET(以及因此 C#)是独立但相关的语言。两个平台之间存在许多细微的差异(Integer 是 Int32 而不是 Int16)和严重的差异(图形、表单和打印引擎)。您需要将此视为您正在转换到一个完全不同的平台。

我发现除了某些特定情况外,各种迁移工具都不值得付出努力。例如使用水晶报表的数据库前端。

至于迁移的价值。只有您和您的公司才能做出这样的决定。在 PC 上维护应用程序足够长的时间,最终您必须认真考虑它。主要是为了利用一种全新的技术(例如从 DOS 切换到 Windows)。我的应用程序始于 1985 年,在其 20 年的历史中发生了 3 次重大转换(工作站到 DOS、DOS 到 Windows 3.X、Windows 3.X 到 32 位 Windows 和面向对象的框架)。

我们正在考虑 .NET 有几个原因。VB.NET 是一种相关语言,泛型和继承允许我们的大部分样板代码压缩成几行。更丰富的图形 API 等等。当然,转换权衡一切都是令人头疼的问题。然而,当我们切换到面向对象的框架时,我们的应用程序变成了一个通过 COM 链接到多个 DLL 的小型 EXE。由于我们的应用程序结构,我们有机会进行零碎的转换和测试。

我强烈建议,如果您打算将您在 VB6 中的应用程序重构为可以部分转换和测试的结构。您将能够使用活动 DLL 来完成此操作。如果你尝试一次性完成,那么你会发现 80% 的项目会很快完成,而最后的 20% 将是纯粹的地狱。通过零碎转换,您将在每一步都留下工作软件。

在这里更全面地探讨了这些问题

如何将大型应用程序从 VB6 切换到 VB.NET

于 2008-11-05T13:48:00.113 回答