我公司有大量用VB6编写的遗留应用程序.
我们处于从将VB6应用程序迁移到.NET(特别是3.5)的过渡期.
将VB6转换为.NET的最佳策略是什么?
注意:以下更新应转至"项目管理",与主要问题无关.
[更新]:感谢您的反馈到目前为止,
还有更多问题需要弹出
你如何指定开发人员开发新的应用程序?
是否应该有一个特殊的一次性升级部门,将遗留应用程序转换为新的应用程序?或者每个开发人员都应参与转换过程吗?
只有高级开发人员参与转换吗?初级开发者?还是混合?
看起来,我越想到这个问题,就会出现更多问题.
Bravax.. 8
显然,这是一项涉及大量工作的重大事业.
所以我的建议是将它视为一个非常长期的项目.
有一个明确的目标,它解决了安全性,弹性,可维护性和应用程序未来等主要问题.
一旦得到利益相关者的同意,就可以开发一个原型系统来测试你的假设,在那里你可以试用C#vrs VB.net或MVC vrs Webforms.我会为此分配您最好的开发人员.
然后从一个小型遗留系统开始,构建您将在其他领域重用的核心组件.
在这个阶段,从更高级的开发人员开始,但每个人都必须参与并熟悉新框架.
这将确保每个人都在同一时间接受培训,并且不会留下任何人.
根据您拥有的应用程序数量,我会轮换开发人员,因此所有系统都可以从中受益.
所有新工作也必须使用.net语言而不是VB6.
逐步转换每个遗留应用程序.(如果他们正在改变或者更新它们有明显的好处,我只会转换它们.)
这应该为您提供一个可靠的框架,以便继续使用,同时仍然确保用户的功能不会受到迁移的阻碍.
例如:
我曾在一家拥有大约40个VB应用程序的公司工作过.
随着时间的推移,我们已将所有这些迁移到C#,现在(5年后),我们有大约150个c#应用程序(全部在.net 2中).
这些都共享一个共同的框架,使它们易于维护,并在必要时扩展.
显然,这是一项涉及大量工作的重大事业.
所以我的建议是将它视为一个非常长期的项目.
有一个明确的目标,它解决了安全性,弹性,可维护性和应用程序未来等主要问题.
一旦得到利益相关者的同意,就可以开发一个原型系统来测试你的假设,在那里你可以试用C#vrs VB.net或MVC vrs Webforms.我会为此分配您最好的开发人员.
然后从一个小型遗留系统开始,构建您将在其他领域重用的核心组件.
在这个阶段,从更高级的开发人员开始,但每个人都必须参与并熟悉新框架.
这将确保每个人都在同一时间接受培训,并且不会留下任何人.
根据您拥有的应用程序数量,我会轮换开发人员,因此所有系统都可以从中受益.
所有新工作也必须使用.net语言而不是VB6.
逐步转换每个遗留应用程序.(如果他们正在改变或者更新它们有明显的好处,我只会转换它们.)
这应该为您提供一个可靠的框架,以便继续使用,同时仍然确保用户的功能不会受到迁移的阻碍.
例如:
我曾在一家拥有大约40个VB应用程序的公司工作过.
随着时间的推移,我们已将所有这些迁移到C#,现在(5年后),我们有大约150个c#应用程序(全部在.net 2中).
这些都共享一个共同的框架,使它们易于维护,并在必要时扩展.
尝试用支持COM的.NET库替换核心功能.通过将功能逐位移动到.NET,"挖空"现有的VB6应用程序.
小心完全重写.虽然他们很诱人"因为它是一个干净的切割" - 通常是疯狂的!阅读Michael Feathers的"有效使用遗留代码"作为准备.虽然这本书没有具体涉及"从一种语言转移到另一种语言",但它确实显示了你将遇到的许多现实世界的陷阱.
我认为所有开发人员都应该定义他们在以前开发的旧版应用程序上进行迁移工作的时间段.由于他们已经拥有领域知识并且知道问题空间,因此他们应该是最有效率的.