VB6应用程序与.NET平台的结合几乎就像重写一样,无论是VB.NET还是C#。与.NET平台相比,您是否认为在Java平台上进行此操作需要更多的努力,因为它无论如何都是重写?请分享您的想法!
答案 0 :(得分:8)
没有冒犯,但你错了。移植到.Net通常比重写更容易远。
以下是Microsoft UK的官方建议:
对.NET执行完全重写要花费更多,并且难以做好[转换] ...我们只会针对少数情况推荐这种方法。
来自咨询重写的微软人员的blog post:
我在.NET早期工作过的许多公司首先考虑的是重写,部分原因是他们在迁移到.NET的同时强烈希望改进底层架构和代码结构。不幸的是,许多项目遇到了困难,有些项目从未完成。他们试图解决的问题太大了
我按此顺序推荐以下两个步骤。
回答你的实际问题:在.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用户推荐的内容。