我有一个想要升级到 ac# 项目的 VB5(非 .net)项目。有没有人对可以帮助我解决这个问题的方法或免费工具有任何建议。
谢谢
布拉德
你最好直接重写。
我建议首先将项目转换为 VB6。从那里继续前进会容易得多。有许多工具可以帮助您做到这一点。有VBMigration Partner和有vbto。我也没有尝试过YMMV。
如果成本是一个限制因素,您可以试试这个:Visual Studio 中有一个向导会尝试将 VB6 升级到 VB.NET。它不是 100% 准确的,您必须为 VB.NET 不支持的东西(例如控件数组等)编写代码。一旦代码在 VB.NET 中,您可以使用SharpDevelop之类的工具将 VB.NET 转换为 C# . 这会有点乏味,但我想所有的道路,无论多么曲折,都会通往罗马。
如果您要将 VB5 转换为 .NET(无论是 C# 还是 VB.NET),最快的方法是从 0 重新开始您的实现,这样您就可以充分利用 .NET Framework 类。我不知道是否有工具可以自动进行这种转换。
从一种语言到另一种语言的严格转换很少是一个好主意,尤其是当它们与 VB5 和 C# 一样不同时。
从理论上讲,您可以将 VB5 转换为 VB6,然后将 VB6 转换为 VB.NET,然后将 VB.NET 转换为 C#,但这对我来说听起来很疯狂。
C# 比 VB5 强大得多,以至于您无论如何都不想隐藏代码。毕竟,由于 VB 的 OO 能力较弱,它的设计可能很糟糕。
相反,我建议在 C#(或您想使用的任何其他语言)中重新实现您需要的功能。
我知道有一个转换工具,但不确定是否有一些用于 vb5。
但是,我建议重新设计项目,利用 vb5 中不可用的 .net 功能。特别是对 OO 语言进行重新设计会很好。
将 VB5 迁移到 C# 只是为了拥有 .NET 绝不是一个好的理由。我更愿意好好看看我在 VB5 版本中所做的假设和设计决策,重新思考它们,添加新想法,绘制 UI 并改进它以使其看起来更接近现代。
然后这是一个新项目,我什至不会称其为重写,因为会有很多变化。
我已经将一个小的 1 层 VB6 应用程序迁移到 C#,我再也不会这样做了。
有一些应用程序可以很好地从 VB6 迁移到 VB.Net。
//马格纳斯
我过去做过,但不推荐。在“自动迁移”之后让项目正常工作是不值得的。我最终重写了该程序,并因此而变得更好。
我自己做了这件事后,我谈谈这里涉及的问题。
基本上,作为 ocdecio,您至少正在寻找部分重写。您可能需要重构表单以尽可能多地从中移出代码。您还需要重构任何 VB6 特定功能以在可以在 .NET 中重新实现的接口后面工作。尤其是图形命令和打印机功能。对于任何严肃的项目,迁移工具通常毫无价值。