用于COM Dll的C#.Net包装器

时间:2012-05-11 13:24:41

标签: c# asp.net-mvc web-services design-patterns com-interop

我们的新应用程序 1)Web应用程序(MVC3) 2)Web服务 需要通过基于COM的业务层的互操作进行通信

我们计划在.Net中为业务层创建一个包装器,以便从上面的2中解除COM dll,以便我们有一个位置(包装器)来进行任何增强或完全将COM替换为其他内容。

          For eg: if there is a COMClassA and ICOMClassA. create a new WrapperClassA in .Net which will essentially have an instance of the COMClassA and required properties. 

在Web应用程序和Web服务中使用WrapperClassA

我的问题           1)这是正确的方法吗?     2)如果是这样的话。创建.Net Wrapper的最佳方法是什么 COM dll有大约100多个类和相应的接口。任何代码生成技术?
    3)我们可以使用一些设计模式来最小化代码生成     或者是否有其他替代方案可以解耦基于COM的业务层

请注意:我们不希望创建Web服务并在ASP .Net Application中使用,因为我们认为可能存在相当大的性能问题。

任何帮助将不胜感激。 Stackoverflow社区你做得很好。

TIA

1 个答案:

答案 0 :(得分:0)

David Wheeler -

  

计算机科学中的任何问题都可以通过另一层间接解决。

我同意你问题中的以下陈述:

  

我们计划在.Net中为业务层创建一个包装器,以便从上面的2中解除COM dll,以便我们有一个位置(包装器)来进行任何增强或完全将COM替换为其他内容。

这使您可以“挑选”您的问题区域,重写区域或单独留出区域。我几乎可以保证至少有一个COM组件执行一些黑魔法......五年前由一些前顾问或前雇员写的...... LOL

不幸的是,据我所知,您必须手动编写/设计间接层(或层)。但是,一些VS.NET(和Resharper和CodeRush)重构/自动生成方法会帮助你一点点。但是在一天结束时比任何人(或任何工具)都更了解你的产品(和设计)。