案例分析:移植大型 VB6 应用程序到.NET

阅读数:1769 2009 年 12 月 17 日

话题:.NET语言 & 开发架构文化 & 方法

一个 IT 服务提供商花了 9 个月时间把一个由 950000 行 VB6 代码组成的 ERP 应用程序移植到.NET。

处理旧版 VB6 应用程序有以下 5 个选择:

  • 不作修改——如果应用程序甚少更新或更改的话
  • 用新程序取代——如果有类似的商业或开源应用程序或服务的话
  • 移植到.NET——使用升级工具把所有 VB6 代码转换成相应的.NET 代码
  • 使用.NET 扩展——使用.NET 添加新功能。可以给 VB6 应用程序添加.NET 窗体和控件,详情请查看:Interop Form Toolkit 2.0 (PDF)帮助文件
  • 重构——用.NET 重写所有代码。在旧版 VB6 应用程序的代码不健全或者有需要重写应用程序的时候,即应用程序需要大量修改以满足新的需求或源代码不可用的时候,这是一种可行的方法

若移植是必由之路,以下则有三个备选方案:

微软最近公布了一个把 950000 行 VB6 代码移植为.NET 的成功案例。该过程由澳洲的 IT 公司SiS主持使用 Code Architect 的 VB 移植搭档耗时 9 个月完成。该项目是一个十年前构建的 ERP 项目,由 33 个应用程序组成。这个应用的最佳解决方案是采取移植的方式而不是定制 ERP 应用或重写整个项目。不建议定制商业的 ERP 项目,因为它需要花费 3 至 5 百万欧元,且需耗时 2 年并没有任何供应商保证实现所有原始功能。

SiS 从中选取 25000 行代码并尝试用多种工具进行移植。VB 移植搭档是最好的工具,代码块的移植、编译和运行总共只需 25 小时。他们还声称 VB 移植搭档不需要过多的手动干预也不会影响用户界面的外观。

整个 ERP 应用程序由 3 个开发人员花了 9 个月的时间来完成,“3650 个工时用于移植代码,3400 个工时用于检查和重构代码,1300 个工时进行测试”。检查代码是必要的环节,因为将来代码有可能会需要进一步完善,而初次参与的开发人员未必能再次参与其中。该项目总共耗费 75000 欧元,远远低于重新订做 ERP。过程按以下方式进行:完成一个模块之后,它就会与余下的 VB 应用程序集成直到整个应用程序移植到.NET 为止。

对 VB6 投入大量资源的公司现在也可以通过移植到.NET 来利用他们的旧资产。微软及其合作伙伴似乎已为他们准备好了所需的工具。

查看英文原文:Case Study: Migrating a VB6 Large Application to .NET