我理解COM实际上是一种编程方式(即类似于结构化编程,或OO编程)。然而,它有点老了。所以我想知道是什么真正取代了这套规范?我会在.NET文档中找到它吗?
发布于 2012-03-06 03:41:37
COM未被替换。组件对象模型是Windows的核心部分,并且在可预见的将来仍将如此。
COM为您提供了一种进程间通信(在机器上的应用程序之间通信)的机制,它也被用作共享dll的一个更简单的(对于消费者而言)系统。它的COM (或ActiveX,或OLE -所有相同)使VBA能够在MS Office中很好地工作,它是ActiveX控件的基础。
COM不是一种编程方式(不像OOP等),它是一种在windows上工作的技术,使在运行时更容易访问其他应用程序。
.NET可以将COM对象与包装器一起使用,如果您希望允许任何应用程序访问您的功能,最好还是提供COM包装器。
现在存在其他应用程序间通信的方法,如ZeroMQ。
发布于 2012-03-06 03:59:06
COM的原始规范年代久远,但规范和概念仍在使用,您仍然可以创建和使用COM对象。
对于.NET,您可以从查看以下链接开始:
Com Interop Part 1: C# Client Tutorial (C#) @ MSDN
Interoperating with unmanaged code @ MSDN
此外,还有一些规范与COM非常相似,或者具有相同的语义。最值得注意的是,XPCOM在FireFox中用于其插件规范,也在内部用于FireFox to connectable objects。
WinRT是即将到来的windows平台更新,它也包含了大量的COM概念。
这里有一些有用的东西:Why is WinRT unmanaged @ StackOverflow
对于.NET开发人员来说,这里提到的很多声明性开销都被隐藏了:WinRT demystified - Miguel de Icaza
规范的负责人在这里:The Windows Runtime @ MSDN
在COM的上下文中,使用C++开发WinRT组件有相似之处,尽管某些语法借用自托管C++:Creating Windows Runtime Components in C++ @ MSDN
https://stackoverflow.com/questions/9572817
复制相似问题