VB6 迁移建议

4

我知道有很多关于VB6迁移的问题,但我不认为我的确切情况在其中得到了解答。

基本上,我们公司想要迁移我们的使命关键性VB6业务应用程序,它非常庞大,使用自定义库与其他内部程序和一些我们无法访问源代码的dll进行通信。这个遗留应用程序没有使用任何“最佳实践”。事实上,几乎所有变量都是全局变量,大多数代码(如打印等)都只是简单地复制/粘贴到需要它的位置。好吧,复制、粘贴并稍作修改...

如果我们尝试迁移,VB.NET和C#.NET之间的决定取决于我们,他们希望我们考虑将应用程序转移到基于Web的格式。管理层不会花钱聘请外部迁移公司。

另一种选择来自我们的基础设施团队,他们一直在研究使用虚拟化保留Visual Basic 6.0客户端-服务器应用程序

我们的老板希望我们给出高层次的估计和建议,但告诉我们执行管理层希望在2010年4月之前完成。

是的,我们笑了。

我的问题是:

是否有人有虚拟化路径方面的经验可以分享,因为这是开发团队首选的选项?它对你有用吗?你会警告哪些陷阱?

尽管以前的系统分析师给出了1-2年的估计,但管理层不断推动2-4个月的时间框架。如何说服他们这是疯狂的?

是否有人成功地将大型VB6应用程序迁移到Web应用程序?以前的一个VB6迁移问题的答案是将部分内容转换为.NET启用的COM库,以挖空VB6应用程序。这种方法可行吗?这里有人试过成功吗?

4个回答

5

一个说服管理层的建议是将任务分解成尽可能小的单元,然后给出估计并呈现给管理层。管理层通常无法给出实际的估计是因为他们不了解手头任务的范围。因此,如果您将任务切分并让他们看到实际需要的工作,那么就更容易说服他们 - 或重新考虑选择任务子集并进行一系列发布。

关于将其“移植”到.NET,一种方法是将VB6程序重写为模块(COM),并将功能合并到新的.NET应用程序中,然后逐个重写模块,使用您最喜欢的.NET语言。虽然从声音上来看,这可能与任何其他方法一样混乱。


4

几个月前我也处于同样的情况;最终,我制作了一份演示文稿,概述了以下内容:

  • 如果我们保留VB6版本并试图维护它,最终会发生什么
  • 如果我们只对.NET进行部分迁移,会导致多大的麻烦(和浪费时间)
  • 如果我们将整个应用程序(以及它所使用的所有内容)移植到.NET并放弃遗留代码库,我们可以实现多快的速度

此外,为帮助您,这是我向高管解释为什么他们的4个月时间表行不通的方式:

我们公司内部已经使用这个产品超过六年了;从一开始就经常对其进行修改、添加或其他工作。你怎么能认为我们可以在比我们现在花费的时间还少十五倍的时间内重写整个解决方案呢?

这起作用了!


3
我们仍然有一些用VB6编写的软件作为产品/维护,但是三四年前我们选择转向C#。这是因为VB6有很多限制,至少在您开始使用本地Win32 API之前(但这与使用C ++并没有太大区别)。.Net提供了一个非常完整的框架,使用非常好的工具,并推动您朝着强有力的方向发展(类型安全,强类型,代码分析,可扩展等)。我们选择C#而不是VB.Net,因为语法类似于C ++,Java,Javascript(类C),但这只是我们的观点。对我来说,将应用程序从VB6转换为Web就像从自行车切换到蔬菜汤...是的!无法比较...完全不同的框架,完全不同的开发等。我们有一些基于Web的“重度ActiveX”解决方案的间接经验,但那是噩梦...绝对不建议,也不建议从经济角度考虑:也许您可以在合理的时间内拥有“站立”的东西,但您应该将其视为比萨塔(可能每天都会倒塌)。

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接