visual basic 6.0的转换工具比较

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

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

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

他们和你转换的大小项目效果如何?

之后剩下多少工作要做? 你对自己的.net项目感到高兴。 支持是什么样的? 对于像这样的工具的用户,是否有任何支持论坛,供应商似乎都没有提供。

他们收取了什么费用,他们的价格没有公布,而且我听到上述两个例子来自不同来源的价格差别很大

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

两者都在这个微软英国页面上公布了其英国市场基本产品的特价。 当然,您需要了解基本产品的局限性和市场价格才能做出切合实际的判断,因此您可能需要联系他们:(

  • Artinsoft Upgrade Companion Developer Edition 售价199英镑 ,最多可提供50,000行代码。 编辑现在提供一个可以执行多达10,000行代码的免费版本 。
  • Code Architects的Visual Basic迁移合作伙伴专业版£399 。 他们告诉我这也是最多50,000行代码。

内置的微软升级向导是可悲的 – 据编写它的人说 – 当然他来自Artinsoft所以他想卖给你更好的东西。 Microsoft UK还表示 ,Artinsoft和Code Architects工具比内置升级向导更好。

编辑 :我联系了Code Architects以获得报价,他们回复得非常快。 与愤怒黑客的 Stack Overflow 问题不同,他的体验更糟糕。 但随后Francesco Balena在Stack Overflow上突然出现,在12小时内回答了他的问题,这更令人鼓舞。

我是Code Architects的总经理Eugenio La Mesa。 我在VB迁移合作伙伴和转换工具上阅读了一些评论,并认为我可能会添加一些有用的提示。

首先,我们的转换软件支持所有VB6图形属性和方法 – 除了DrawMode和ClipControls之外。 我们甚至支持AutoRedraw属性和用户定义的ScaleMode坐标,因此将类似CAD的程序迁移到VB.NET是我们的软件所能达到的。 http://www.vbmigration.com上的“代码示例”部分包含许多图形密集型VB6应用程序的示例,这些应用程序已经轻松转换为.NET。

其次,让我澄清一下我们的价格结构。 我们销售两个不同版本的VB Migration Partner:专业版可以转换最大的VB6应用程序。 50,000行代码,而企业版没有大小限制,并支持一些其他高级function,例如与源代码控制软件集成以及与原始VB6 DLL二进制兼容的.NET组件的生成,这允许您实现N层基于COM的应用程序的分阶段迁移。

399英镑专业版的价格是截至2009年6月30日,在微软英国营销活动期间的特别促销活动,仅适用于英国以及高达50K行代码(LOC)的应用程序。 企业版的价格可能会有所不同,因为它取决于几个因素,包括许可证数量和要迁移的LOC数量。 这就解释了为什么您可能会看到不同的报价。 此外,我们最近略微降低了定价,作为我们对经济形势的回答。 我们还计划从主要产品中提取一些function并单独提供,这将导致更灵活的价格结构。

老实说,对于25-50K LOC的应用,我们通常建议手动重写。 事实上,我们的重点是企业市场,你经常会发现拥有数十万个LOC的VB6应用程序,如果不是数百万的话。 在这些情况下,手动重写很少是一个可行的选择:它需要太多熟练的VB6 / .NET开发人员,需要太长时间,或者只是花费太多。 我们最近发布了一个与650K LOC应用相关的案例研究; 我们的一个客户目前正在迁移一个拥有大约1500万个LOC的怪物应用程序!

“uprading”VB6到.NET是用词不当。 你得到的只是.NET中的VB6代码; 通常,您可以使用重构/重新架构获得更好的结果 – 例如,使用不同的类模型。 例如,设计可以进行unit testing。 或者使用IoC。

如果您只想让代码工作(并且您确信可以测试它),那么很好。

就个人而言,我会认真考虑一个更手动的端口。 我有很多遗留的VB6代码,所以我知道所涉及的痛苦。

每当我们面对这一点时,我们只是简单地用C#重写它 – 作为一种方法,它已经多次certificate了自己。

实际上 – 我推荐Brownfield Application Deveopment (Manning) – 它可能会在您开始之前提供一些有价值的见解。

布朗菲尔德

问题是转换工具不支持VB6 Graphics命令或VB6打印机型号。 此外,在处理ActiveX控件时,您会遇到许多极端情况。 我知道我们自己的CAD / CAM应用程序不会转换为任何转换工具,因为在UI中内置了许多调整,以使其与VB6表单引擎一起顺利运行。

这些是转换工具失败的原因,因为WinForm引擎需要它自己的调整。 当我们的软件从DOS移动到VB3时,也遇到了同样的事情。 有时没有替代手动转换。

话虽如此,你可以做一些事情来使转换变得相当容易。 首先确保您的应用程序是分层构建的。 这样您就可以一次转换一个图层,进行测试并继续。 它还具有在每一步都为您提供可用软件的优势。 我建议从顶层(表格)层开始,然后向下工作。

确保任何以VB6为中心而不是Basic Centric的东西都在接口后面。 当.NET几年前问世时,我创建了一个Canvas接口,并使用VB6图形命令实现了该接口。 我在VB.NET中使用相同的Canvas接口,但现在它使用Graphics Object。 打印机也是如此。

几乎所有代码都从表单中移出到表单所调用的类中。 表单本身实现了UI类使用的接口。 当我们切换到.NET时,我们可以精确定义表单如何与系统的其余部分进行交互,并且表单转换相当容易。

所有这些步骤都是在VB6中完成的,并通过我们的正常发布问答流程完成。 然后我们开始转换。

我没有使用过上面提到的任何一种工具,但只需要做一些准备,Visual Studio中的升级工具就足够了。

您需要做的第一件事是从Microsoft获得Visual Basic 6 Code Advisor 。 这对于让您的项目为迁移做好准备是一个很好的帮助。

去年我被vb迁移合作伙伴的专业版报价2500美元。 我没有买它所以我可以评论它