1

可能重复:
从 VB6 迁移到 .NET 的最佳策略
Visual Basic 6.0 的转换工具比较

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

涉及的复杂性是什么?我知道 .NET 使用托管代码和多线程单元等,而 VB6 是基于 COM 的。

4

4 回答 4

4

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

请以更干净的代码的名义,花费资源时间来正确编写它。将此视为清理代码的机会,并利用 .Net 带来的一切......

我真的不在乎我是否在这个问题上得到负面评价。如果我说服一家公司重写而不是转换,那是值得的。

于 2012-04-20T20:24:13.880 回答
3

这是我对重复问题(作为 CW)的回答的副本,因为我想回复目前在此处获得最高票数的“始终重写”答案。

我的建议是不要低估转换的努力——在开始重写时要非常谨慎。乐观地开始,在修复旧架构中一些众所周知的缺陷时取得良好的早期进展,然后陷入您多年来认为理所当然的功能,这是一个常见的陷阱。在这一点上,你的管理层开始变得紧张,一切都会变得非常不舒服。

...这是微软的一篇博客文章,有点同意我的看法:

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

因此,我很快成为大多数公司的正确方法迁移或重用的粉丝。不过有趣的是,与以前相比,重写是一个风险较小的选择。许多仍然拥有重要 VB6 项目的公司现在也拥有在其他项目中获得的强大 .NET 技能、改进的软件开发实践(包括自动化测试——恕我直言,这是重写所必需的),甚至花时间重构其 VB6 代码库的元素。过去 6 年。也就是说,对于大多数公司,我仍然会将 Rewrite 置于 Migrate 或 Reuse 之下。

引用来自一个优秀的微软网页

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

著名的 VB 专家 Dan Appleman 也说过

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

乔尔不久前

任何软件公司都可能犯的最严重的战略错误[是]决定从头开始重写代码。

其他一些关于迁移的有用链接,包括指向 Microsoft 的另一本免费书籍的链接。
Microsoft页面,包括截屏视频以及他们对“如何迁移”的回答

于 2012-04-21T06:01:02.633 回答
1

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

于 2012-04-20T20:31:22.580 回答
1

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

如果您的 VB6 项目结构良好且注释良好,并且您是两种语言(VB6 和 VB.NET)的专家,您可以尝试一下,否则转换可能会成为一场噩梦。在任何情况下,您都必须在转换后手动修复许多事情。


谷歌搜索Visual Basic 6.0 用户的语言更改将为您提供有用的链接,涵盖两种语言之间的差异。

于 2012-04-20T20:40:54.143 回答