在VB6应用程序中实例化.NET组件时,我应该关注什么?

时间:2010-06-15 20:54:40

标签: c# .net vb.net vb6 interop

我刚刚阅读了一篇名为Calling a .NET Component from a COM Component的2002年MSDN文章,以便从VB6代码中调用.NET对象。但是,我仍然想知道在从VB6引用.NET对象时我可能会关注什么,以及是否有比8年前撰写该文章时可用的信息更新的信息。

在我们的具体实现中,我们需要向VB6和经典ASP(VB脚本)应用程序添加一个组件,该应用程序将折扣规则应用于购物车中的项目。我打算用.NET编写解决方案,然后从我们的VB6应用程序调用该组件。

但是,我们担心我们可能会遇到与将ADO记录集转换为更简单的类型相关的性能瓶颈,实例化.NET组件以完成工作,然后在完成后转换回ADO记录集。我希望使用.NET的性能和代码维护收益将超过转换到ADO记录集和从ADO记录集转换的任何成本,但我不确定;我也不知道可能使.NET程序集比简单地使用COM程序集慢的其他问题。任何建议和见解都将非常感激。

1 个答案:

答案 0 :(得分:1)

我在这方面遇到的主要问题是维修;制作一个可COM调用的dll并不难,但是当你更新它(即重新部署更改)时,使它保持可调用可能是一个真正的痛苦。或者也许我只是习惯了robocopy部署,在这种情况下这还不够 - 而且我也没有帮助我与COM +竞争。

重新获取数据......您真的希望保持API基本。我很乐意在边界上投掷字符串(也许是xml,但不是唯一的选择),但我会避免记录集等。这只是要求痛苦。当然,你可能没有选择。

上次我不得不这样做,我实际上厌倦了尝试对抗不同的层,我最终使用http作为界面; VB6和C#都能够在基本的http服务器(ASP或ASP.NET)周围抛出http消息或支持不足。也许更多的开销,但分离是值得的。这意味着我可以随时交换客户端或服务器。