.NET和VB6:Interop是一个可行的开发策略吗?

Cra*_*ton 5 .net vb6 interop

VB6和.NET之间的Interop是一个可行的开发策略吗?

我正在开发一个与一些.NET程序集交互的VB6应用程序,但"冷启动"和其他内聚问题的组合会导致不平滑的结果.

Iai*_*way 6

编辑 - 缩小我的答案.

可能吗?是的,当然了.

我会推荐它吗?当然不是!

陈规定型的情况(我遇到过很多次)是你有五年或十年前用VB6编写的一些组件.作者已离开公司,虽然应用程序解决的问题相当简单且易于理解,但应用程序本身并非如此; 公司里的任何人都不知道如何维护它和/或它写得很差并且难以维护.

如果您的情况如此,那么我会建议一个端口 - 特别是如果您的公司缺乏VB6资源并且拥有大量.NET资源.正如MarkJ所说,这不一定是普遍意见,但它与我自己的经验一致.

致电MS职位: -

http://msdn.microsoft.com/en-gb/dd408373.aspx#migrate3

MS表示,从头开始重写通常比扩展或自动迁移(使用链接的工具)更昂贵.我当然使用Visual Basic升级向导来获得一个起点,虽然我们通常移植到C#而不是VB.NET.这是一个很好的起点 - 特别是如果你偏爱VB.NET的话.

最后:-

通常我们只建议[重写]少数情况,包括:

  • 原始应用程序由于糟糕的体系结构,设计和/或编码实践而导致许多问题.症状可能包括可扩展性或性能差,用户界面差以及维护代码困难.
  • 原始应用程序不再符合重要领域的业务需求.需要进行核心更改,例如,用户界面必须由浏览器而不是智能客户端提供.
  • 该公司已经拥有在其他应用程序上获得的重要.NET技能,并且该应用程序已被充分理解且相对较小.
  • 源代码不再适用于应用程序的重要部分.

这些都是优点,但如果您无法在项目中找出至少一个问题 - 应用程序运行正常且可维护,您需要进行的更改很小,公司有足够的VB6资源,而您我可以访问源代码 - 我可能会问你为什么要迁移到.NET.在我参与的每个相关项目中,我们遇到了前三个问题中的两个(如果不是全部三个问题).

如果移植根本不是一个选项,那么我们需要更多信息.它是什么类型的应用程序?什么是VB6在做什么?.NET在做什么?