【问题标题】:Converting VB6 Forms to .Net Core WinForms将 VB6 表单转换为 .Net Core WinForms
【发布时间】:2020-02-04 20:43:12
【问题描述】:

我有一个 VB6 Forms 应用程序并想转换为 .Net Core WinForms。我知道可以使用转换工具来做出这种声明。不过,我正在寻找有关这方面的建议或第一手经验。

【问题讨论】:

  • 抱歉,您没有“VB6 WinForms”。 WinForms 是 VB.Net 的一部分,而不是 VB6。如果您使用的是 VB6,那么它们是 VB6 表单,而不是 VB.Net WinForms。所以需要对这个问题做一些澄清。但是,这个问题无论如何都不是主题,因为它要求产品推荐。
  • 这能回答你的问题吗? Conversion tool comparisons for visual basic 6.0
  • 虽然关于这个主题有很多封闭的问题,但我认为如果你阅读这个主题,你实际上仍然会在其中找到一些不错的信息。我的 2c 是值得从一个自动化工具开始,然后准备做很多(大部分是简单的)手动清理。但在大多数情况下,我发现不需要进行一般性重写(尽管可能是有益的)。
  • 我不建议从 VB6 转到 Core。这似乎是一个太大的跳跃。
  • 我不同意代码转换自动不是一个好的选择。它可能是也可能不是。在 Visual Studio 2008 中运行转换器并查看您得到的结果非常容易。通常,您会遇到大量相同的错误和一些独特的问题;它是需要特别注意的独特之处。如果通过替换 .NET 中的某些内容可以轻松修复它们,那是一个好兆头。如果不是,那么似乎可能至少对大部分内容进行重大改写。我已经以这种方式转换了很多代码,与从头重写相比,它似乎总是一个净收益。 \

标签: winforms .net-core vb6 vb6-migration


【解决方案1】:

手动可能是最好的,但如果您正在寻找自动路线,我会建议

  1. VB6 到 VB.NET WinForms (.NET Framework)
  2. VB.NET 到 C#(.NET 框架)
  3. 升级到 .NET Core

我对#1,VB6 到 VB.NET 没有任何经验。

对于 #2,请查看此项目 https://github.com/icsharpcode/CodeConverter。效果很好。

对于 #3,Microsoft 有一个 try-convert 项目来将 .NET Framework 项目升级到 .NET Core。它对我来说完美无缺。 https://github.com/dotnet/try-convert

【讨论】:

    【解决方案2】:

    我刚刚将一个大小合适的应用程序从 VB6 转换为 C#。对我来说最大的挑战是第三方控制。大多数工具无法管理这些,因为大多数旧控件要么已停产,要么界面差异如此之大,以至于使用工具毫无意义。

    我最终只是首先使用现代控件重新创建了所有表单。然后,我只需将旧的 VB6 代码粘贴到有意义的地方,然后将逻辑转换为 C#。在某些情况下,我将文件打印到纸上并通读并输入 C# 代码。

    我想利用 .net 编程模型,所以我重写了很多,并提高了代码的功能和可读性。

    我使用过工具,虽然它们确实有帮助,但我觉得它并没有真正为我节省很多时间。我的“蛮力”方法帮助我更好地理解应用程序,并帮助我更轻松地解决错误和错误。

    根据我的经验,手动操作是值得的。要想做好,真的没有捷径可走。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多