可能重复:
Best Strategy for moving from VB6 to .NET
Conversion tool comparisons for visual basic 6.0
是否有任何人都可以推荐将商业VB6应用程序转换为VB.NET应用程序的好工具。我发现了一些免费的和一些商业的,但找不到任何经过尝试和失败或尝试和成功的开发人员的评论和意见。
涉及的复杂性有哪些?我知道.NET使用托管代码和多线程公寓等,而VB6则基于COM。
答案 0 :(得分:4)
不要这样做。不要转换。重写一下。对不起,但即使代码可以转换,也不意味着它应该被转换。
请以更清洁的代码名称,花费资源时间让它正确编写。将此视为清理代码的机会,并充分利用.Net带来的一切......
我真的不在乎我是否对这个负面评价。如果我说服一家公司改写而不是转换,那就值得了。
答案 1 :(得分:3)
这是我对重复问题(如CW)的回答的副本,因为我想回复目前在这里投票最多的“总是重写”答案。
我的建议是不要低估转换的努力 - 对重写进行非常谨慎。这是一个常见的陷阱,乐观地开始,在旧架构中修复一些众所周知的缺陷,早日取得良好的进展,然后陷入你多年来一直认为理所当然的功能陷入困境。在这一点上,您的管理层开始变得神秘莫测,一切都会变得非常不舒服。
...这是微软的一篇博文somewhat agrees with me:
我在.NET早期工作过的许多公司首先考虑的是重写,部分原因是他们在迁移到.NET的同时强烈希望改进底层架构和代码结构。不幸的是,许多项目遇到了困难,有些项目从未完成。他们试图解决的问题太大了.....
因此,对于大多数公司来说,我很快成为了Migrate或Reuse的粉丝。有趣的是,Rewrite是一个比以前更低风险的选择。许多仍然拥有重要VB6项目的公司现在也拥有在其他项目上获得的强大的.NET技能,改进的软件开发实践(包括自动化测试 - 重写的必须恕我直言),甚至花时间重构他们的VB6代码库的元素。过去6年。也就是说,对于大多数公司来说,我仍然会将Rewrite置于Migrate或Reuse之下。
引用优秀的微软webpage
对.NET执行完全重写要花费更多,并且难以做好[转换] ...我们只会针对少数情况推荐这种方法。
着名的VB专家Dan Appleman said:
在大多数情况下,移植[VB6到VB.NET]是愚蠢的和a 完全浪费钱。
和Joel said一会儿回来:
唯一最糟糕的战略错误 任何软件公司都可以[是 决定从中重写代码 划伤。
其他一些有关迁移的有用链接,包括指向Microsoft的另一本免费书籍的链接。
One。
Two。
Three。
Microsoft page包括截屏,并回答“如何迁移”
答案 2 :(得分:1)
几乎任何免费工具都可以很好地转换代码。无论你使用什么工具,你得到的结果都不是很好,因为VB.NET代码与VB6代码完全不同,尽管语法相似。即使您使用翻译工具,也应该彻底清除代码。
答案 3 :(得分:1)
Visual Studio在菜单File > Open > Convert...
中有一个集成的转换工具。
如果你的VB6项目结构合理,评论很好并且你是两种语言(VB6和VB.NET)的专家,你可以尝试一下,否则转换可能会成为一场噩梦。在任何情况下,您都必须在转换后手动修复许多内容。
谷歌搜索Language Changes for Visual Basic 6.0 Users将为您提供有用的链接,涵盖两种语言之间的差异。