3

我有一个想要升级到 ac# 项目的 VB5(非 .net)项目。有没有人对可以帮助我解决这个问题的方法或免费工具有任何建议。

谢谢

布拉德

4

10 回答 10

22

你最好直接重写。

于 2009-01-12T15:43:27.140 回答
2

我建议首先将项目转换为 VB6。从那里继续前进会容易得多。有许多工具可以帮助您做到这一点。有VBMigration Partner和有vbto。我也没有尝试过YMMV。

如果成本是一个限制因素,您可以试试这个:Visual Studio 中有一个向导会尝试将 VB6 升级到 VB.NET。它不是 100% 准确的,您必须为 VB.NET 不支持的东西(例如控件数组等)编写代码。一旦代码在 VB.NET 中,您可以使用SharpDevelop之类的工具将 VB.NET 转换为 C# . 这会有点乏味,但我想所有的道路,无论多么曲折,都会通往罗马。

于 2009-01-12T15:50:30.057 回答
2

如果您能够将其迁移到 VB6,您可以使用代码顾问查看如何修复您的项目以与 vb.net 兼容,然后您可以迁移到 vb.net,如果成功,您可以使用将其转换为 c# 或Reflector的工具。

我给它 1x10^(-100)% 的工作机会。祝你好运。

于 2009-01-12T15:53:59.380 回答
1

如果您要将 VB5 转换为 .NET(无论是 C# 还是 VB.NET),最快的方法是从 0 重新开始您的实现,这样您就可以充分利用 .NET Framework 类。我不知道是否有工具可以自动进行这种转换。

于 2009-01-12T15:53:18.413 回答
1

从一种语言到另一种语言的严格转换很少是一个好主意,尤其是当它们与 VB5 和 C# 一样不同时。

从理论上讲,您可以将 VB5 转换为 VB6,然后将 VB6 转换为 VB.NET,然后将 VB.NET 转换为 C#,但这对我来说听起来很疯狂。

C# 比 VB5 强大得多,以至于您无论如何都不想隐藏代码。毕竟,由于 VB 的 OO 能力较弱,它的设计可能很糟糕。

相反,我建议在 C#(或您想使用的任何其他语言)中重新实现您需要的功能。

于 2009-01-12T18:22:13.590 回答
0

我知道有一个转换工具,但不确定是否有一些用于 vb5。

但是,我建议重新设计项目,利用 vb5 中不可用的 .net 功能。特别是对 OO 语言进行重新设计会很好。

于 2009-01-12T15:47:01.283 回答
0

将 VB5 迁移到 C# 只是为了拥有 .NET 绝不是一个好的理由。我更愿意好好看看我在 VB5 版本中所做的假设和设计决策,重新思考它们,添加新想法,绘制 UI 并改进它以使其看起来更接近现代。

然后这是一个新项目,我什至不会称其为重写,因为会有很多变化。

于 2009-01-12T15:55:10.610 回答
0

我已经将一个小的 1 层 VB6 应用程序迁移到 C#,我再也不会这样做了。

一些应用程序可以很好地从 VB6 迁移到 VB.Net。

//马格纳斯

于 2009-01-12T16:21:10.073 回答
0

我过去做过,但不推荐。在“自动迁移”之后让项目正常工作是不值得的。我最终重写了该程序,并因此而变得更好。

于 2009-01-12T18:46:22.823 回答
0

我自己做了这件事后,我谈谈这里涉及的问题。

基本上,作为 ocdecio,您至少正在寻找部分重写。您可能需要重构表单以尽可能多地从中移出代码。您还需要重构任何 VB6 特定功能以在可以在 .NET 中重新实现的接口后面工作。尤其是图形命令和打印机功能。对于任何严肃的项目,迁移工具通常毫无价值。

于 2009-01-12T19:10:16.503 回答