2010-07-09 113 views
4

我有一个VB应用程序。客户希望将其转换为.net应用程序。我想继续并将其转换为C#windows应用程序。但我不确定我将面临的挑战。VB到C#或VB.net转换

一种方法是去理解VB代码,并重写C#或VB .NET

,我不知道其他的方式,所有的模块是基于工具的转换。

我可以知道你如何处理这种转换吗?您希望进行转换的哪种类型的工具以及您可能面临的挑战?

为了简单起见,我们假设我们要将一个简单的VB转换为VB .net或c#windows应用程序。

你愿意VB到VB.net转换还是VB到C#的转换。即使你可以在部分回答这个问题,我会很感激。

回答

2

,你可以看看这个文章,很值得一读的热身:Converting VB6 to VB.NET, Part I

我的建议是把你的用户实际使用只是件,增加新的功能,因为他/她的要求。

0

根据我的经验,最好的方法是重写应用程序。

每次我尝试使用自动转换器时,它都失败了。在VB中有很多东西只是不能很好地翻译(像控制数组)。

1

这里有很多在线代码转换器,用于简单地转换语法。一些例子是:

这些转换不会采取的所有问题的照顾。例如,数组的访问是在VB中使用(),与方法访问器相同,而在C#中使用[]。这带来了一个问题,因为转换器不知道哪些是方法,哪些是数组。

显然,最大的问题是旧的VB和.NET的区别。即使你做翻译,你可能会陷入过时的废弃方法,收缩等问题。

我会建议在使用代码转换器之前重新评估你的应用程序,以便你有一个想法, 。

1

我会选择C#,因为我更熟悉这种语法。我认为你应该选择你最熟悉的语言。

我曾经使用过.Net VB,我已经做了一些VB.Net编码,但是这两种语言之间的相似之处还不够大,无法指导这种选择。

在任何情况下,由于GUI,数据库,文件访问等方面存在很多技术差异,所以它可能更多是重写而不是端口。

我希望您的现有产品结构良好,这将有助于此过程。如果不是,那么在移植/重写之前,重构或重组(重新调用它)会非常值得。

0

这取决于您的应用程序的大小,您的应用程序的GUI和非GUI部分的大小,应用程序使用的外部库/组件以及您或您的团队的哪种语言(C#或VB.NET)感觉更舒适。

如果您可以在旧的VB应用程序中分离出很多非GUI代码,那么“VB到VB.NET”的道路往往可能是最好的道路,因为机会并不坏,您可以移植很多您的旧代码只需稍作更改。在其他所有情况下,为此C#或VB.NET几乎是相同的,因此请选择您团队中拥有最多经验/最多现有代码/最专业知识的语言。

1

在我开始之前: VB不是面向对象的语言...... C#和VB.NET都是! 关键在于你深入思考 - 开发面向对象与程序设计无关。你可以使你的新系统代码看起来像你目前的 - 但你真的不应该这样做。如果你不喜欢学习面向对象并改变你的应用程序的方式,你不应该开始这个项目,因为你会浪费时间和金钱,可能会失败。 ......毕竟你不用墨水笔来充盈它,旧的方法很有趣,但技术是有原因的。 但我不确定我将面临的挑战。 ....你应该学习面向对象。之后,有了正确的问题,很容易就能得到答案。微软不再支持VB,你不应该留下来,尤其是当客户要求你移动它时。这并不容易 - 但你没有选择。

一种方法是只理解VB代码,并重写C#或VB中的所有模块.net ....这是唯一的方法 - 当事情开始分崩离析时 - 你不会指责转换器 - 你有责任了解您系统中的每个功能

另一种我不知道的方式是基于工具的转换。 ...其他人为您提供了工具 - 它对语法有好处,但对整体功能有风险

我可以知道您将如何处理此类转换吗?您希望进行转换的哪种类型的工具以及您可能面临的挑战? ...使用Visio word excel或更专业的工具(如UML图表应用程序)映射您的功能

为了简单起见,我们假设我们要将简单的VB转换为VB .net或c#windows应用程序。 ...建立窗体很容易,组件通常更强大

你更喜欢VB到VB.net的转换还是VB到C#的转换。 ...选择C#vb让人们认为他们仍然处于vb环境中...... C#让你明白你处于不同的世界。但重要的是,您将知道Microsoft决定将两种语言对齐以具有相同的功能。

从一种语言到另一种语言都有很好的转换器。

0

最好的方法是重写应用程序。我认为使用vb.NET更好,因为语法与vb类似。如果你想尝试一个转换工具,我建议VB移民合作伙伴。 www.vbmigration.com