COM不再流行或过时了吗?如果是这样,为什么?

时间:2018-10-01 04:47:05

标签: .net com idl

我正在学习COM,在阅读Essential COM之后,我发现这个想法很棒,并且仍然适用于跨供应商兼容性和向后兼容性很重要的各种情况。但是,我在网上找不到很多有关COM的资源,也没有很多人在谈论它。

此COM技术是否已过时?如果是这样,那么有什么解决方案比COM更能解决二进制级别的跨厂商编译兼容性和向后兼容性问题?

1 个答案:

答案 0 :(得分:1)

COM在.NET中不那么流行,因为Global Assembly Cache(GAC)和内置在.net程序集中的内部清单解决了与COM注册相同的目的。

这里有a useful article可能会帮助解释它,这是它的摘录

  

.NET提供了一种全新的创建和部署方法   零部件,也称为装配体。有了COM,   开发人员必须在服务器上注册该组件-即   信息必须在系统注册表中进行更新。目的是   将组件信息保存在中央位置   COM +可以找到合适的组件。

     

对于.NET程序集,程序集文件封装了所有元数据   在称为清单的特殊部分中需要。 [...]自   有关组件的信息保存在清单中,开发人员   不必在服务器上注册组件,还有几个   相同组件的版本可以安全地共存于   同一台机器。

本文实际上并未提及GAC,但是通过供应商在GAC中注册程序集以及使用该程序集的程序,您可以在.NET中处理您将与COM进行的任何跨厂商交互或二进制向后兼容性。

.NET使用COM的唯一时间是与最初为COM编写的非托管代码进行互操作时。

但是,今天许多供应商甚至都不使用GAC,他们要做的是提供一个程序集,程序员可以将其添加到项目中并通过exe进行部署,通常使用NuGet进行分发。