.net NET和VB6:互操作是一种可行的开发策略吗?
VB6和.NET之间的互操作是可行的开发策略吗 我正在开发一个VB6应用程序,它可以与一些.NET程序集进行互操作,但是“冷启动”和其他内聚问题的结合会导致不平滑的结果 VB6和.NET之间的互操作是可行的开发策略吗.net NET和VB6:互操作是一种可行的开发策略吗?,.net,vb6,interop,.net,Vb6,Interop,VB6和.NET之间的互操作是可行的开发策略吗 我正在开发一个VB6应用程序,它可以与一些.NET程序集进行互操作,但是“冷启动”和其他内聚问题的结合会导致不平滑的结果 VB6和.NET之间的互操作是可行的开发策略吗 仅在存在无法迁移的非托管代码的情况下。但是在VB6上编写新代码是不可行的。EDIT-缩小了我的答案 可能吗?当然可以 我可以推荐它吗?当然不是 通常的情况(我已经多次遇到)是您在五年或十年前用VB6编写了一些组件。作者已经离开了公司,虽然应用程序正在解决的问题相当简单,也很容易理解
仅在存在无法迁移的非托管代码的情况下。但是在VB6上编写新代码是不可行的。EDIT-缩小了我的答案 可能吗?当然可以 我可以推荐它吗?当然不是 通常的情况(我已经多次遇到)是您在五年或十年前用VB6编写了一些组件。作者已经离开了公司,虽然应用程序正在解决的问题相当简单,也很容易理解,但应用程序本身却不是;公司里没有人真正知道如何维护它和/或它写得很差,一开始很难维护 如果您的情况是这样的,那么我建议您使用一个端口,尤其是当您的公司缺少VB6资源并且拥有大量的.NET资源时。正如MarkJ所说,这不一定是一个普遍的观点,但根据我自己的经验,这听起来是真的 在以下网址发表MS帖子:- 微软表示,从头开始重写通常比扩展或自动迁移(使用链接的工具)成本更高。我当然使用了VisualBasic升级向导来获得一个起点,尽管我们通常是移植到C#而不是VB.NET。这是一个很好的开始——特别是如果你喜欢VB.NET 最后:- 通常情况下,我们只建议在少数情况下进行[重写],包括:
- 原始应用程序有许多 由坏消息引起的问题 架构、设计和/或编码 实践。症状可能包括身体不适 可扩展性或性能,用户体验差 界面和应用中的困难 维护代码
- 原著 应用程序不再与 业务的需求在很大程度上 地区。需要进行核心变更,例如:。 必须提供用户界面 通过浏览器而不是作为智能 客户
- 公司已经有了 在.NET上获得的重要技能 其他应用程序和应用程序 很好地理解和比较 小的
- 源代码不再是 适用于本产品的重要部分 应用程序
只是不要把它作为整体策略的一部分。我认为在某些情况下,使用VB6 COM组件的.NET应用程序是可行的 例如,我有一个.NET应用程序,需要对Office文档进行一些相当复杂的操作。这在.NET中是很难实现的,因为如果您在发布引用时没有非常小心,Office应用程序将无法按中所述退出
在本例中,一个实用的解决方案是创建一个VB6组件,该组件封装了所有Office操作,向调用方公开了一个简化的API,而不使用任何Office对象模型 我们有一个大型项目,我们在5年前就开始向其添加.NET功能,而且一直运行得很好。最初,我们只是添加非可视组件,慢慢地将业务逻辑移动到.NET中,原因有很多: