sha*_*oth 6 windows com interop com+ com-interop
创建COM +应用程序后,向导将提供在库和服务器应用程序之间进行选择。
服务器应用程序是在单独的过程中激活的,可用于廉价地互操作具有32位进程内COM组件的64位使用者。
直接在调用者进程中激活的库应用程序有什么用?为什么要使用它们而不是普通的老式In-proc COM服务器?
有几个:
性能 - 它更快一点,因为您不必执行消息自动化(编组和解组)
隔离 - 如果许多不同的应用程序正在使用该库,那么每个应用程序都将拥有自己的副本。在处理 MTA(多线程单元)和 STA(单线程单元模型)之间的差异时,这一点最为重要
IN-PROC 服务器(实际上是一个进程外、调用者进程之外的服务器)由所有不同的调用者共享(这是获得廉价 IPC/RPC 的好方法)
好的,我正在编辑更多的定义和更多的参考:
Tim Ewald 的优秀著作“Transactional COM+”第 2 章约 30 页讨论了这些概念 ISBN:0-201-61594-0
因此,直接引用第 2 章的摘要:“对象可以使用对象上下文与其上下文进行交互,并使用调用上下文与给定的因果关系进行交互。这两个对象提供了与 COM+ 运行时服务交互的接口。这种编码风格,‘ “深入上下文”使得 COM+ 开发与经典 COM 开发截然不同。”
最后,第 2 章有一个讨论“为什么是库应用程序?”(这与你的问题不同,为什么不只是普通的旧 COM?)他的论点主要表明与使用 COM 对象相同的原因,1.每个应用程序都有自己的实例。2. 加载到非 DLLhost.exe 进程中。3. 开销少得多。4. 常见对象的简单部署。
因此,最重要的是,如果您不是分布式的,并且本质上不是事务性的,那么使用 COM+ 相对于 COM 可能没有真正的优势。但是,如果您编写 COM+ 应用程序并将其部署为 LIBRARY 应用程序,那么它的行为会更像 COM 组件。
希望有帮助。
归档时间: |
|
查看次数: |
1610 次 |
最近记录: |