visual basic 6.0的转换工具比较

时间:2009-04-05 11:20:49

标签: c# vb.net vb6 vb6-migration

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

Artinsoft's upgrade companion (转换为c#和vb.net)

vbmigration partner (转换为vb.net)

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

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

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

6 个答案:

答案 0 :(得分:6)

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

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

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

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

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

答案 1 :(得分:5)

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

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

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

每当我们遇到这种情况时,我们只是简单地用C#重写它 - 作为一种方法,它已经多次证明了自己。

实际上 - 我推荐Brownfield Application Deveopment(曼宁) - 它可能会为您在开始之前的所有事情提供一些有价值的见解。

Brownfield

答案 2 :(得分:5)

我认为您已经看到了question关于将VB6迁移到VB.NET的工具。

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

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

内置的Microsoft升级向导很可怜 - according to the guy who wrote it - 当然他来自Artinsoft所以他想卖给你更好的东西。 Microsoft UK还say Artinsoft和Code Architects工具比内置升级向导更好。

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

答案 3 :(得分:4)

问题是转换工具不支持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中完成的,并通过我们的正常发布Q& A流程完成。然后我们开始转换。

答案 4 :(得分:2)

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

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

答案 5 :(得分:1)

去年,vb迁移合作伙伴的专业版引用了2500美元。 我没有买它所以我可以发表评论

相关问题