InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

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

作者 Abel Avram 译者 王波 发布于 2009年12月17日

领域
过程 & 实践,
架构 & 设计,
语言 & 开发
主题
Visual Basic.NET ,
.NET ,
故事和案例分析 ,
编程 ,
变更 ,
敏捷 ,
迁移 ,
VB 6

一个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
 

译者 王波 是匆匆IT过客,涉足于.NET编程技术,潜心研究和译书,与友人共译《C# 3.0揭秘》 。

这决定是一个MS的经典案例。 发表人 Wu Junyin 发表于
不可思议。 发表人 Ma Karl 发表于
怎么处理较不顺利的代码 发表人 lee micheal 发表于
Re: 怎么处理较不顺利的代码 发表人 Wang Lei 发表于
三个人做9个月和9个人做三个月哪个比较合算呢? 发表人 Dong Yuan 发表于
Re: 三个人做9个月和9个人做三个月哪个比较合算呢? 发表人 Wang Lei 发表于
Re: 三个人做9个月和9个人做三个月哪个比较合算呢? 发表人 侯 伯薇 发表于
Re: 三个人做9个月和9个人做三个月哪个比较合算呢? 发表人 jiang jianbo 发表于
  1. 返回顶部

    这决定是一个MS的经典案例。

    发表人 Wu Junyin

    rt

  2. 返回顶部

    不可思议。

    发表人 Ma Karl

    简直TMD太不可思议了。

  3. 返回顶部

    怎么处理较不顺利的代码

    发表人 lee micheal

    我就是想知道面对里面较“烂”的代码是怎么处理的?
    毕竟不是每个项目都是按照产品的编码来严格要求以及设计的!

  4. 返回顶部

    三个人做9个月和9个人做三个月哪个比较合算呢?

    发表人 Dong Yuan

    RT

  5. 返回顶部

    Re: 怎么处理较不顺利的代码

    发表人 Wang Lei

    所以检查和重构的时间和移植代码差不多。3600个小时只是能让老代码在新平台上跑起来。下面就是3400小时的修改。把里面的坏味道清理出去。

  6. 返回顶部

    Re: 三个人做9个月和9个人做三个月哪个比较合算呢?

    发表人 Wang Lei

    不是这么算的。3个人9个月的活,9个人半年能完成就很不错了。人多了,交流、管理成本也就多了,所以速度不一定上去,反而有可能下降。

  7. 返回顶部

    Re: 三个人做9个月和9个人做三个月哪个比较合算呢?

    发表人 侯 伯薇

    我也认为,三个人做九个月的工作,九个人在三个月之内肯定是完不成的。

  8. 返回顶部

    Re: 三个人做9个月和9个人做三个月哪个比较合算呢?

    发表人 jiang jianbo

    一个人60秒可以挖好一个坑,但是60个人一秒钟可以挖一个坑吗?自己想一下为什么。