Visual Basic 6.0 的转换工具比较

15

有没有人在这里使用过以下任一工具(或其他任何工具)将您的vb6代码转换为.net语言?

Artinsoft的升级伴侣(转换为c#和vb.net)

vbmigration合作伙伴(转换为vb.net)

它们的效果如何,您转换了多大规模的项目?

之后还剩下多少工作要做? 对生成的.net项目满意吗? 支持如何? 是否有类似这些工具用户的支持论坛,两家供应商似乎都没有提供。

他们收费多少,他们的价格未公布,我听说两个示例的不同来源之间价格差异很大。

6个回答

7
我是Eugenio La Mesa,Code Architects的总经理。我读到了一些关于我们的VB Migration Partner和转换工具的评论,想为大家提供一些有用的提示。
首先,我们的转换软件支持所有VB6图形属性和方法,唯一的例外是DrawMode和ClipControls。我们甚至支持AutoRedraw属性和用户定义的ScaleMode坐标,因此将类似CAD的程序迁移到VB.NET在我们的软件中非常容易。www.vbmigration.com的代码示例部分包含许多图形密集型VB6应用程序的示例,这些应用程序已经用最少的努力转换为.NET。
其次,让我澄清我们的价格结构。我们销售两个不同版本的VB Migration Partner:专业版可以转换最多50,000行代码的VB6应用程序,而企业版没有大小限制,并支持一些其他高级功能,例如与源代码控制软件的集成以及生成与原始VB6 DLL二进制兼容的.NET组件,这使您能够实现基于N层COM的应用程序的分阶段迁移。
专业版的价格为£399,是Microsoft UK营销活动期间的特别促销,仅适用于英国,且适用于50K行代码以下的应用程序。企业版的价格可能会有所不同,因为它取决于几个因素,包括许可证数量和要迁移的代码行数。这就解释了为什么您可能会看到不同的价格报价。此外,我们最近略微降低了定价,以应对经济形势。我们还计划将一些功能从主产品中剥离出来并单独提供,这将导致更灵活的价格结构。
老实说,对于25-50K LOC的应用程序,我们通常建议手动重写。事实上,我们的重点是企业市场细分,那里经常会发现具有几十万甚至数百万LOC的VB6应用程序。在这些情况下,手动重写很少是一个可行的选择:它需要太多熟练的VB6/.NET开发人员,需要太长时间,或者成本太高。我们最近发布了一个与650K LOC的应用程序相关的案例研究;我们的一位客户目前正在迁移一个约1500万LOC的庞大应用程序!

嗨,Eugenio 对于英国以外的人来说,专业版的费用是多少?谢谢 - kjack
今天,专业版的价格为1500美元,但在未来几个月可能会有所变化,因为我们将发布一个带有新功能的新主要版本。 - Eugenio La Mesa
谢谢提供信息,Eugenio。价格确实不算太贵,但很遗憾它足够昂贵,以至于像我这样的很多人只能在微软支持我们的应用程序的情况下继续使用vb6。 - kjack

5
"将VB6升级到.NET"是一个错误的说法。你只能在.NET中得到VB6代码;通常情况下,使用不同的类模型进行重构/重新架构可以获得更好的结果。例如,设计可进行单元测试,或者使用IoC。
如果你只想让代码工作(并且你有信心可以测试它),那就没问题。
个人而言,我会认真考虑手动移植。我有很多遗留的VB6代码,所以我知道其中的痛苦。
每次我们面对这种情况,我们都会简单地用C#重新编写它——作为一种方法,它已经证明了自己很多次。
实际上,我推荐《Brownfield Application Development(Manning)》——它可能会给出一些有价值的见解,让你在开始之前做好准备。"

Brownfield


我只是希望这个东西能在 .net 中工作。重新编写需要太长时间了。 - kjack
你要重写的项目有多大? - kjack
原始代码库是数百个VB6的COM+ dll,但具有合理的组件隔离度 - 我们只在需要时移植功能:我们仍然拥有令人沮丧的VB6 dll数量,但它们现在还能工作... - Marc Gravell
如果您有一些小的孤立项目,逐步重写可能是可行的。但是微软建议:“进行完整的.NET重写比转换要昂贵得多且更难做好...我们只建议在少数情况下采用这种方法。” - MarkJ
与所有情况一样,您必须根据当地的具体情况做出自己的判断。我坚持我的声明,就像我坚持许多COM+ dll一样,它们不需要工作,也不需要迁移。但是您至少应该始终正确提出问题。 - Marc Gravell
好的评论。其他人在SO上已经成功地完成了Vb6->C#重写,所以这是可以做到的。Bravax就是其中之一。https://dev59.com/NkfRa4cB1Zd3GeqP5gEH#683946 - MarkJ

5

我想你已经看到了有关将VB6迁移到VB.NET的工具的问题

两者都在Microsoft UK的页面上发布了针对英国市场的基本产品的特价。当然,您需要了解基本产品的限制和您所在市场的价格,以做出现实判断,因此您可能确实需要联系他们 :(

  • Artinsoft Upgrade Companion Developer Edition £199,可处理多达50,000行代码。 EDIT 现在提供一个免费版本,可处理多达10,000行代码。
  • Code Architects’ Visual Basic Migration Partner Professional Edition £399。他们告诉我这也是可处理多达50,000行代码的。

内置的Microsoft升级向导很糟糕 - 根据编写它的人所说 - 当然他来自Artinsoft,所以他希望向您销售更好的东西。 Microsoft UK也表示,Artinsoft和Code Architects工具比内置的升级向导更好。

EDIT:我联系了Code Architects询问报价,他们非常快地回复了我。与这个Stack Overflow问题中由Angry Hacker提出的更糟糕的经历相比。但是Francesco Balena在12小时内就在Stack Overflow上回答了他的问题,这更加令人鼓舞。


这些价格比我之前听到的要低得多。我曾经听说过vb迁移合作伙伴专业版的报价超过2,000美元,企业版的价格更高。 - kjack
它们似乎只适用于英国。 - kjack
是的,就像我说的“针对英国市场”。我已经链接到了他们给出价格的页面。我得到了迁移合作伙伴企业版的报价,比专业版高得多。由于这只是给我的一个报价,我不觉得我应该分享具体数字。 - MarkJ
我应该说,当我联系他们时,他们也非常快速地回复了我。然而,他们所有的回复都一直进入垃圾邮件文件夹。这是我在Gmail中看到的少数误报之一。 - AngryHacker
2
http://www.greatmigrations.com/拥有一个非常棒的工具,可以完全自定义。你的代码基于规则达到100%,无需像artinsoft或vb migration partners那样手动编码。试试看吧。我强烈推荐它。 - Jimmie Clark

4
问题在于转换工具不支持VB6图形命令或VB6打印机模型。而且处理ActiveX控件时会遇到很多边角情况。我知道我们自己的CAD/CAM应用程序无法使用任何转换工具进行转换,因为UI中内置了许多调整,使其与VB6表单引擎平稳工作。
由于WinForm引擎需要自己的调整,因此这些是转换工具失败的事项。当我们的软件从DOS迁移到VB3时也有相同的经历。有时候,手动转换是不可替代的选择。
话虽如此,您可以采取一些措施使转换变得非常容易。首先确保你的应用程序建立在层次结构上。这样你就可以逐层转换、测试并继续下去。它还具有每一步都留下可用软件的优点。我建议从顶层(表单)开始,并逐层向下。
确保任何与VB6相关而不是基本相关的内容都在接口后面。几年前.NET刚推出时,我创建了一个Canvas接口,并使用VB6图形命令对其进行了实现。我在VB.NET中使用相同的Canvas接口,只不过现在它使用了Graphics对象。打印机也是如此处理的。
几乎所有的代码都从我们的表单中移出到类中,这些类被表单调用。表单本身实现了一个界面,UI类使用这个界面。当我们转换到.NET时,我们有了一个精确的定义,这样表单与系统的其余部分之间的交互就更清晰明确,表单转换也变得容易。
所有这些步骤都在VB6中完成,并通过我们正常的发布Q&A流程进行审核。然后我们开始转换。

vbmigration合作伙伴是一个相当新的产品,不到1年的历史。你用过它吗?我认为转换工具已经远远超越了升级向导。 - kjack
ArtinSoft似乎没有为我们的CAD/CAM应用程序添加任何有用的东西。然而,vbmigration似乎采取了我所做的相同方法(构建兼容的支持库等),我会更仔细地研究它们。谢谢。 - RS Conley
你提到了打印机型号 - 你看过 VB.NET Power Packs 中的打印机兼容性库吗?据说可以轻松升级打印机对象代码。http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx - MarkJ
是的,有了那个,我能够设计一个VB6图形兼容库。 - RS Conley

2
我没有使用过提到的这两个工具,但是通过一些准备,Visual Studio中的升级工具已经足够了。
你需要做的第一件事就是从微软获取Visual Basic 6 Code Advisor。它可以帮助你准备好迁移项目所需的条件。

谢谢,vb6代码顾问需要Excel,信不信由你,上次我检查的时候我的Excel版本太旧了(不过应该现在没问题了 :))。 - kjack
据编写该工具的人(当然还想为你销售更好的东西)表示,微软的这个工具很糟糕。 http://www.devx.com/vb/Article/16822 而且,微软英国表示,你所询问的两个工具比他们的向导更好。http://msdn.microsoft.com/en-gb/dd408373。 - MarkJ

1

去年我收到了VB迁移伙伴专业版的报价,价格为2500美元。 但是我没有购买,所以无法对其进行评论。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接