大型项目从VB6迁移到.NET并不是一件很容易的事情。我们公司的客户也有使用我们早期版本的ActiveX控件,如果想迁移到.NET控件,可能需要很多工作要做。幸好,最近有一个IT服务提供商花了9个月时间把一个由950000行VB6代码组成的ERP应用程序移植到.NET。也许可以作为参考。
下面新闻来自:http://www.infoq.com/cn/news/2009/12/Migrating-VB6-to-.NET
-----------------------------------------------------------------------------------------------
一个IT服务提供商花了9个月时间把一个由950000行VB6代码组成的ERP应用程序移植到.NET。
处理旧版VB6应用程序有以下5个选择:
- 不作修改——如果应用程序甚少更新或更改的话
- 用新程序取代——如果有类似的商业或开源应用程序或服务的话
- 移植到.NET——使用升级工具把所有VB6代码转换成相应的.NET代码
- 使用.NET扩展——使用.NET添加新功能。可以给VB6应用程序添加.NET窗体和控件,详情请查看:Interop Form Toolkit 2.0 (PDF)帮助文件
- 重构——用.NET重写所有代码。在旧版VB6应用程序的代码不健全或者有需要重写应用程序的时候,即应用程序需要大量修改以满足新的需求或源代码不可用的时候,这是一种可行的方法
若移植是必由之路,以下则有三个备选方案:
- 微软Visual Basic升级向导。VS 2008包含该向导,它可以很好地处理中小型的项目。对于大型企业级应用程序,微软则有两个推荐解决方案
- ArtinSoft公司的Visual Basic升级伴侣
- Code Architects公司出品的Visual Basic移植搭档
微软最近公布了一个把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 |
|