将VB6项目打成块以使用Artinsoft的免费版本

我试图将一个大型(200K行)VB6项目转换为C#。 我只想转换表单设计,因为我想重写C#中的所有实际代码。

我想使用免费的Artinsoft转换器,但这只允许10K线的项目。 我想我可以将VB6项目分解为20个单独的项目,然后使用Artinsoft生成C#.NET表单,然后将转换后的表单重新放回到一个C#项目中。

这可行吗?

编辑:这会有用吗? 有什么潜在的问题?

我会按照以下顺序尝试

1)至少为主要业务操作编写自动化测试用例

这将为您节省很多麻烦,以后再validation结果。

2)重构你的VB(尝试在单独的类/ DLL中移出你的业务逻辑)。

3)您可以使用步骤1中编写的自动化测试用例来validation您的重新分解。

4)现在你有小块,这也可以帮助你创建块然后你可以使用Artinsoft。

5)你的新C#应用程序将很好地分层。

6)在新应用程序和旧应用程序上运行步骤1中创建的测试并比较结果并继续改进,除非它们匹配:)

我建议不要在UI中使用转换器。 这可能看起来微不足道,但有一些function在.NET中本身不存在(控件数组没有大包装器)。 它创建的控件包装器使用和维护都不好玩。

VB6端口不好; 用户界面和代码。 如果你继续沿着这条路走下去,有些事情可以帮上忙。

  1. 删除所有未使用的表单和代码
  2. 确保没有控制数组,如果有,则使用正确的相关代码
  3. 获取包含在类中的所有逻辑
  4. 确保您没有直接调用/加载/引用表单,并且您正在使用实例化对象
  5. 确保使用良好的封装实践和良好的面向对象设计模式

我会认真考虑转换。 转换后的代码/用户界面听起来很棒,但是在我使用VB6转换的糟糕体验中,由于VB6允许开发人员有多糟糕以及根本不再存在的function,因此存在很多问题。

帮自己一个大忙…开始一个新项目,创建一个inheritance自您使用的标准控件的自定义控件库,并在任何地方使用它们。 不喜欢Cliptext在C#和VB6中使用蒙版文本框的方式吗? 扩展或覆盖它。 希望您的所有列表视图都可以排序吗? 简单的单点实施。 在一年中发现企业需要对90%的文本框进行拼写检查? 简单。