BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Abel Avram 关注 11 他的粉丝 ,译者 王波 关注 0 他的粉丝 发布于 2009年12月18日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

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

rt

不可思议。 by Ma Karl

简直TMD太不可思议了。

怎么处理较不顺利的代码 by lee micheal

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

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

RT

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

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

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

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

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

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

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

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

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

8 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT