如何将丑陋且未记录的VB6代码迁移到.NET
我知道已经有关于VB6迁移的问题,但是我项目的代码库带来了一些新的问题 我不得不说,代码质量、结构和体系结构只是一场噩梦。 有两个大项目: Nr.1有40个表单、40个模块和几个类文件,这个EXE是一种“基本系统”。 Nr.2有80个表单、20个模块和一些类文件,这个EXE再次调用“基本系统”中的函数。 然后还有10个其他带有GUI的项目(每个项目1-3个表单)和90个非GUI项目,其中大多数是EXE文件,一些是DLL。DLL是用C、C++和VB6编写的。 这段代码自10年来一直在进化,并且每次主要由一个(糟糕的)开发人员编写如何将丑陋且未记录的VB6代码迁移到.NET,.net,vb6,vb6-migration,.net,Vb6,Vb6 Migration,我知道已经有关于VB6迁移的问题,但是我项目的代码库带来了一些新的问题 我不得不说,代码质量、结构和体系结构只是一场噩梦。 有两个大项目: Nr.1有40个表单、40个模块和几个类文件,这个EXE是一种“基本系统”。 Nr.2有80个表单、20个模块和一些类文件,这个EXE再次调用“基本系统”中的函数。 然后还有10个其他带有GUI的项目(每个项目1-3个表单)和90个非GUI项目,其中大多数是EXE文件,一些是DLL。DLL是用C、C++和VB6编写的。 这段代码自10年来一直在进化,并且每次
- 具有500行(或更多)的函数非常常见李>
- 90%的GUI组件命名为text1、command2(1)和
- 复制和粘贴到处都是。G复制了一个包含5000行代码的EXE项目(没有GUI),副本中唯一的更改是每封邮件发送文件,而不是FTP(同一项目还有2个副本)李>
- 我曾经有一个小表单(15个字段),在那里我应该解决一个小问题(通常最多半小时),每次我更改某个内容时,它要么不起作用,要么在表单中产生新的错误。两天后,我决定完全重写表单,从旧表单中的20条SQL语句中,只有2条在新表单中幸存下来李>
- 甚至不要询问代码中的注释
我的问题是谁有迁移糟糕难看代码的经验/提示?你会建议哪些选项?我必须经历同样的事情(没有文档和可怕代码的大规模VB6应用程序)。唯一安全合理的路线是3号。要改进某件事,你必须首先了解它。如果你走1号或2号公路,你肯定会被弄得一团糟 请记住,始终牢记您的最终目标是完全迁移到.NET。在进行重构时,考虑一下VB6s糟糕的OO支持在VB.NET或C#中会是什么样子。如果可能的话,将代码转移到其他地方以使迁移更容易
您可能想考虑将许多核心功能转换成.NET DLL,并通过COM将其暴露给VB6。这将从VB6中删除大量荒谬的代码,并有望保留大部分业务逻辑
你需要记住的最重要的事情是不要做一个牛仔代码是否一定要迁移?如果没有,它仍然可以达到它的目的,并且可以进行一半的维护,只需别管它,继续 经过数小时、数周、数月的代码迁移,您将代码迁移到新语言的动机将很快消失,尤其是在您提到的规模上 从概念上讲,代码迁移的想法是一个奇妙的想法。很可能,这是一个可怕的混乱,你会讨厌这样的生活 想想看,在修复一个缺陷时,你现在讨厌你的生活吗?在迁移项目中,将其减少100倍
只要它有效,大多数企业都不会太在意引擎盖下的东西。记住,他们不是开发人员,不在乎修复它(因为他们不是做这件事的人)会有多痛苦,也不在乎激励企业花费数万美元更新代码,根本没有任何商业意义。不要从头重写它。这听起来好像要花很多时间,而且很可能会在代码中引入新的(旧的)bug 我想