4

将 VB6 应用程序迁移到 .NET 平台几乎就像是重写,无论是 VB.NET 还是 C#。与 .NET 平台相比,你认为在 Java 平台上做这件事需要更多的努力吗,因为它无论如何都是重写的?请分享你的想法!

4

8 回答 8

9

没有冒犯,但你错了。移植到 .Net 通常比重写要容易得多

这是来自Microsoft UK的官方建议:

对 .NET 进行完全重写要比转换成本高得多,而且很难做好[比转换]……我们只在少数情况下推荐这种方法。

来自一位咨询重写的微软人的博客文章:

我在 .NET 早期工作过的许多公司首先考虑重写,部分原因是在迁移到 .NET 的同时,他们强烈希望改进底层架构和代码结构。不幸的是,其中许多项目遇到了困难,有几个项目从未完成。他们试图解决的问题太大了

我建议按此顺序执行以下两个步骤。

  1. 写下迁移或重写的原因。它会带来什么好处?好处可能只是让开发团队高兴——这甚至可能是一个足够好的理由,我不知道。确保您知道,并且您的经理/用户同意。
  2. 查看 Microsoft UK 的建议,并通过截屏视频解释 .Net 迁移的 5 个基本选项。决定哪个是最好的。它可能正在重写,但请睁大眼睛进入它。

回答您的实际问题:在 .Net 或 Java 中完全重写会更容易吗?这主要取决于您的团队最了解哪一个。它还取决于应用程序是否与 COM 交互,就像 SLaks 所说的那样。

于 2010-05-12T00:42:29.083 回答
1

重要的是不仅要减少迁移期间的总工作量,还要减少迁移后的维护成本。许多因素推动 TCO,但在所有条件相同的情况下,我认为 .NET 工具、社区、框架和 C# 语言在开发人员生产力、操作可管理性和性能方面可以达到或超过 Java——假设您的目标是 Windows 操作系统。

我也不认为易于保留 COM 应该是决定因素。事实上,我认为将 VB6 迁移到 .NET,但在不必这样做时保留 COM,这违背了首先进行 VB6 迁移的关键目的:通过迁移到支持良好且可行的平台来降低开发成本和风险。我会告诉你为什么:

  • 与 VB6 一起使用的大多数流行的 COM 库和控件多年来都没有发展;许多较小的供应商已经消失,或者如果他们仍然支持他们的产品,他们现在也提供新的和改进的 .NET 版本。

  • 迁移后使用旧 COM 意味着在调试、构建和部署方面具有额外的复杂性。还要注意,COM 组件并不真正“说”.NET(即它们不使用 .NET 类型和约定),因此它们与 .NET 一起使用通常会增加编码和设计的复杂性。

  • 这条规则仍有一些保留和例外,.NET 替代品并不总是最佳选择,但总的来说,迁移团队将能够为他们使用的几乎每个 COM 组件找到至少一个 .NET 替代品选项. 花时间深思熟虑地评估、选择和升级到其中一个选项将在迁移后获得回报。

  • 您不希望与您计划迁移的任何 VB6 进行互操作。互操作您自己的代码将导致更长、更复杂的过渡,并且通常需要回溯和重新处理/重新测试已迁移的代码。显然,这不是最有效和最容易理解的升级路径。

关于必须“在输出上进行大量手动工作”的另一点。Great Migrations产品是一种新的可编程迁移工具。它旨在帮助迁移团队逐步提高生成代码的质量,从而减少完成迁移项目所需的手动工作。这包括使翻译更正确,处理复杂的多 VBP 迁移,以及自动重组 VB6/COM 代码以使用 .NET 组件。如果 VB6 代码库非常大、变化频繁,并且在迁移过程中进行了重大的重新设计和清理,这些功能特别有用。这是一种敏捷迁移方法,我们称之为工具辅助重写。

免责声明:我为大迁徙工作。

于 2010-05-13T02:35:20.443 回答
1

重写 VB6 应用程序的工作不仅仅是您所针对的语言的问题。VB 应用程序通常依赖于 COM 对象和某些特定于 VB 的库方法,这些方法在 Java 中可能没有等价物,但在 .NET 中可能具有一定的可移植性。

除非您愿意放弃项目的所有依赖项,否则您可能会发现 .NET 是一个更容易为 .NET 重写的目标,尤其是当您需要保留源自库或其他依赖项的现有应用程序的某些行为时。

另一个考虑因素是您的团队最熟悉哪个平台 - 如果您有很多 Java 专业知识但很少或没有 .NET 专业知识,那么 Java 可能是您的不错选择。

于 2010-05-11T16:01:53.523 回答
1

有一些工具可以从 VB6 迁移到 VB .Net,包括 Visual Studio 中内置的工具。此工具将 VB6 迁移到 C#。无论您使用什么工具,您仍然需要对工具输出的代码进行大量手动工作,但这可能比完全重写 java 少。

根据您现有应用程序的架构以及代码的结构,您可能会决定最好还是完全重新设计和重写它,在这种情况下,.Net 和 java 之间可能没有太多选择。

于 2010-05-11T16:03:49.933 回答
0

使用像 ArtInSoft 这样的迁移工具将其迁移到 .NET。

于 2010-05-12T20:56:35.557 回答
0

您可以使用内置的 VS 迁移到 VB.Net 来迁移 VB 6 应用程序。试着看看这是否对你有帮助。如果您正在考虑将 VB 6 迁移到 C#,那么我也会推荐 ScaleOvenStove 用户推荐的内容。

于 2010-05-13T01:41:54.803 回答
0

如果应用程序使用 COM,用 .Net 重写它比用 Java 容易得多。否则,移植到 .Net 可能会更容易一些。

如需更具体的答案,请提供有关您的应用程序的更多详细信息。

于 2010-05-11T16:00:15.010 回答
0

您也可以使用 Jabaco,它是一个 Java 字节码编译器,它有自己的 IDE 和与 VB6 非常相似的语法(几乎相同)。
您可以在以下网址找到更多信息:
http ://www.jabaco.org/
http://www.jabaco.org/board/

于 2010-05-12T09:09:37.983 回答