将现有的基于Vb6.0胜利的应用程序转换为基于c#win的最快方法是什么?

时间:2010-02-03 09:03:02

标签: c# vb6-migration

将现有的基于Vb6.0胜利的应用程序转换为基于c#win的最快方法是什么?

6 个答案:

答案 0 :(得分:9)

核心语言是如此不同,我不得不说从头开始,只复制复杂的代码位。如果你从头开始,你将不必处理所有的VB6问题,同时利用所有的C#电源。

VB6没有真正的类或OOP,这与C#有很大不同。此外,对事件管理器(SubClassing)的控制很少。

所以,从零开始,复制UI布局,并考虑我将如何在C#中首先实现这一点,它将使您的生活更轻松。

答案 1 :(得分:8)

我认为最快的是将其转换为VB.net。请检查以下问题以获得此答案

VB6 to VB.net conversion

然后将其转换为c#。但我觉得手动转换将是更好的选择,因为您可以重新设计应用程序,并可能使其更简单。

答案 2 :(得分:4)

将代码从Visual Basic 6转换为C#最好使用自动迁移工具完成,例如ArtinSoftVisual Basic Upgrade Companion,它支持迁移到C#。这个建议有几个原因,除了我使用该工具的经验。

首先,即使您从VB6迁移到VB.NET,VB.NET中也有几种语言特定的功能,它们不会直接转换为C#。因此,即使您使用VB.NET到C#转换器,您也必须处理这些特殊情况(或找到一个为您处理它们的工具)。这些可以包括可选参数,AddressOf函数,Visual Basic编译器辅助操作,如Information.Err(),以及使用Try / Catch语句进行结构化错误处理的非结构错误处理。另一件需要考虑的事情是VB.NET编译器仅限于显示100个编译错误,编译错误在迁移时非常常见。转移到C#时,编译器和其他代码分析工具(如ReSharper)可以让您更好地了解未来的挑战,并帮助您检测常见的编译错误模式。

其次,通过直接迁移到目标语言,您可以专注于从一开始就使用该语言的可用功能,而无需中间步骤。否则,当你只专注于一个迁移时,你基本上会完成两次迁移。

第三,正如renick所说,尽管迁移工具可以产生数百或数千个问题,但大多数问题都有相对简单的解决方案。其中一些可以使用find& amp;替换功能。商业解决方案具有额外的优势,即它们支持将第三方UI控件迁移到.NET等效项。

此外,迁移可能比重写快得多,您仍然需要编写代码,但仅针对存在问题的区域。

当然,有些应用程序不能选择迁移,但对于那些适合迁移用例的应用程序,它是切换平台的一种非常有效的方法。你不应该立即打折。

答案 3 :(得分:1)

完全重写。 MS有一些迁移帮助,但我相信它只是VB.Net。但是为什么要考虑移植,当然你现在可以更好地重写应用程序,如果你有任何你需要保留的遗留部分,那就互操作。并且只迁移最佳位。使用它作为真正改善应用程序的机会。

答案 4 :(得分:1)

如果你需要它很快;然后不要动摇它 - 你会错过任何东西并撕掉你的头发!

几年前我调查了这个product,我觉得这个产品是最好的。它从VB6转换为C#。他们也有free trial

答案 5 :(得分:0)

尝试使用ArtInSoft。该公司将您的VB 6代码直接迁移到C#。