迁移VB6应用程序

时间:2010-05-11 15:57:37

标签: c# java vb.net vb6 vb6-migration

VB6应用程序与.NET平台的结合几乎就像重写一样,无论是VB.NET还是C#。与.NET平台相比,您是否认为在Java平台上进行此操作需要更多的努力,因为它无论如何都是重写?请分享您的想法!

8 个答案:

答案 0 :(得分:8)

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

以下是Microsoft UK的官方建议:

  

对.NET执行完全重写要花费更多,并且难以做好[转换] ...我们只会针对少数情况推荐这种方法。

来自咨询重写的微软人员的blog post

  

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

我按此顺序推荐以下两个步骤。

  1. 写下迁移或重写的原因。 它会带来什么好处?好处可能只是为了让开发团队满意 - 这可能是一个足够好的理由,我不知道。确保您知道,并且您的经理/用户同意。
  2. 使用advice查看Microsoft UK screencast,了解.Net迁移的5个基本选项。决定哪个是最好的。它可能是重写,但睁着眼睛进入它。
  3. 回答你的实际问题:在.Net或Java中,完全重写会更容易吗? mainly depends on你的团队最了解哪一个。它还取决于应用程序是否与COM交互,就像SLaks说的那样。

答案 1 :(得分:2)

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

除非你愿意放弃项目的所有依赖,否则你可能会发现.NET更容易重写,特别是如果你需要保留一些行为的话。现有的应用程序源自库或其他依赖项。

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

我认为保持COM的容易程度也不应该是决定因素。事实上,我认为将VB6迁移到.NET,但是当你不必首先打破VB6迁移的关键目的时就保持COM:通过转移到一个支持良好且可行的平台来降低开发成本和风险。我会告诉你原因:

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

  • 迁移后与旧COM一起生活 意味着生活在额外的 调试的复杂性, 构建和部署。还要注意COM 组件并不真正“说”.NET (即他们不使用.NET类型和 惯例)所以它们通常用于.NET 导致增加的复杂性 编码和设计。

  • 还有一些 此规则的保留和例外 并且.NET替换不是 总是最好的选择,但总的来说, 迁移团队将能够找到 至少一个.NET替换选项 几乎每个他们使用的COM组件。 花时间去思考 评估,选择并升级到一个 这些选择将在以后得到回报 迁移。

  • 你不想互相交流 那是你计划迁移的VB6。干扰你自己的代码会导致更长的时间, 复杂的过渡和典型 需要回溯和 已经迁移的重新加工/重新测试 码。显然这不是最重要的 高效且易于理解的升级 路径。

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

免责声明:我为Great Migrations工作。

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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