2012-04-20 114 views
1

可能重复:
Best Strategy for moving from VB6 to .NET
Conversion tool comparisons for visual basic 6.0VB6代码升级

是否有一个很好的工具,任何人都可以推荐给商业VB6应用程序转换为VB.NET应用。我发现了一些免费的和一些商业的,但是找不到任何试图失败或尝试成功的开发者的评论和意见。

有什么复杂的?我知道.NET使用托管代码和多线程的公寓等,而VB6是基于COM。

+2

.NET应用程序支持STA就好了。不幸的是,[购物问题是堆栈溢出题外话](http://blog.stackoverflow.com/2010/11/qa-is-hard-lets-go-shopping/)。 – 2012-04-20 20:20:01

+0

@Cody Gray,谢谢你的建议。我已经阅读过这个页面:购物问题与Stack Overflow相关。我具体询问开发人员的升级经验,而不是如何升级。 – w0051977 2012-04-20 20:26:14

+0

然后浏览[常见问题]:开放式和讨论式的问题也不适用于此。 – 2012-04-20 20:26:35

回答

4

不要这样做。不要转换。做一个重写。对不起,但即使代码可以转换,但并不意味着它应该被转换。

请以任何地方清洁的代码的名义花费资源时间让它正确写入。查看这个作为清理代码的机会,并利用一切.Net带来的优势......

我真的不在乎,如果我得到负面rep'd这一个。如果我说服一家公司重写而不是转换,这是值得的。

+1

我同意这一点。你有没有升级(不重写),如果是的话;什么是并发症? – w0051977 2012-04-20 20:33:14

+0

我见过输出的代码。这不是一个复杂的问题,因为它是从一种不关注OOP的语言转换为围绕它设计的语言,而是将转换后的代码“平坦化”,因为每个人都生活在一个类中in。 – 2012-04-20 20:36:21

+1

我明白了。面向对象是前进的方向,而不是基于对象。有问题的VB6应用程序有很多类(54)。你是否说过他们将通过与你使用的工具合并成一个? – w0051977 2012-04-20 20:38:53

1

几乎任何免费工具都可以完成转换代码的工作。你得到的结果并不是很好,无论你使用什么工具,因为VB.NET代码与VB6代码完全不同,尽管语法相似。即使你使用翻译工具,你也应该彻底清理代码。

+2

我所知道的只有一个免费工具 - 微软 - 和它的不足。它留下很多工作要手动完成。你在想什么?我会建议任何代码清理应该以务实的方式完成,集中在需要改变的代码上,比如对遗留代码的任何重构。任何彻底的清理都需要提供节约来付出代价。 Theres有投资时间清理不太可能被改变的代码的危险。 – MarkJ 2012-04-21 05:46:34

1

Visual Studio在菜单File > Open > Convert...中有一个集成的转换工具。

如果您的VB6项目结构良好且评论充分,并且您是两种语言(VB6和VB.NET)的专家,那么您可以尝试一下,否则转换可能会变成一场噩梦。无论如何,在转换之后你将不得不手动修复许多事情。


使用谷歌搜索Language Changes for Visual Basic 6.0 Users将给你有用的链接,涵盖两种语言之间的差异。

+2

这也是值得考虑的商业转换工具。它们的存在是因为微软的转换工具离开了这么多工作要手动完成。值得一看,如果你有大量的VB6 – MarkJ 2012-04-21 05:52:53

+0

转换工具只存在于Visual Studio 2008和更早版本。它已被删除](http://msdn.microsoft.com/en-us/vstudio//ms788233)在Visual Studio 2010中。 – MarkJ 2012-07-07 19:30:19

3

这是我对重复问题(如CW)的答案的副本,因为我想回复当前在这里排名最高的“始终重写”答案。

我的建议是不要低估转换的努力 - 对开始重写非常谨慎。这是一个常见的陷阱,要乐观地开始,早日完成固定旧架构中一些着名缺陷的早期进展,然后陷入多年来刚刚被视为理所当然的功能陷入困境。此时你的管理开始变得棘手,一切都会变得很不舒服。

...这是一个博客帖子由Microsofty是somewhat agrees with me

许多公司我.NET初期曾与第一次看的强烈愿望,以改善部分重写驱动底层架构和代码结构的同时,他们转移到.NET。不幸的是,其中许多项目遇到了困难,有些项目从未完成。他们试图解决的问题太大了......

因此,我很快成为迁移或重用的粉丝,作为大多数公司的正确方法。有趣的是,与过去相比,重写是一个风险较小的选择。许多仍然拥有重要VB6项目的公司现在也拥有在其他项目上获得的强大的.NET技能,改进了软件开发实践(包括自动化测试 - 必须为重写的恕我直言),甚至花费时间将VB6的代码元素重构为最近6年。也就是说,我仍然将重写放在大多数公司的迁移或重用之下。从一个优秀微软webpage

执行一个完全重写,以.NET

报价是更为昂贵和困难做好[不是转换] ...我们只推荐这种方法对于小情况的数量。

还拥有著名的VB专家丹Appleman said

在大多数情况下,移植[VB6到VB.NET]是愚蠢的钱 完全是浪费。

said而回:

的最糟糕的战略失误 ,任何软件公司可以让[是 来]决定从 从头重写代码。

有关迁移的其他一些有用链接,包括指向另一本免费微软书籍的链接。 OneTwoThree
微软page包括他们的回答“如何迁移”的屏幕录像

+1

+1我可以在VBA上获得您对VSTO升级的快速意见吗,您认为小型VBA项目值得转化吗?以及如果(或何时)VB6运行库不会在最新的Microsoft操作系统上运行会发生什么?那么很多公司将没有选择升级或使用旧的操作系统。 – 2012-04-21 09:24:26

+1

任何你可以考虑重写的小项目。我对VSTO一无所知,抱歉 – MarkJ 2012-04-21 12:46:32