我知道COM实际上是一种编程方式(即结构化编程或OO编程)。然而它有点旧。所以我只是想知道真正取代这套规格的是什么?我会在.NET文档中找到它吗?
答案 0 :(得分:1)
COM尚未更换。组件对象模型是Windows的核心部分,在可预见的未来仍将如此。
COM为您提供了一种进程间通信机制(在计算机上的应用程序之间进行通信),它也被用作共享dll的更简单(用于消费者)系统。它的COM(或ActiveX,或OLE - 完全相同)使VBA在MS Office中运行良好,它是ActiveX控件的基础。
COM不是一种编程方式(与OOP等不同),它是一种适用于Windows的技术,可以在运行时更轻松地访问其他应用程序。
.NET可以将COM对象与包装器一起使用,如果您希望允许任何应用程序访问您的功能,那么最好提供COM包装器。
现在存在其他inter app coms方法,例如ZeroMQ。
答案 1 :(得分:1)
COM的原始规范已经过时了,但规范和概念仍在使用中,您仍然可以创建和使用COM对象。
对于.NET,您可以从以下链接开始:
Com Interop Part 1: C# Client Tutorial (C#) @ MSDN
Interoperating with unmanaged code @ MSDN
此外,还有其他规范与COM非常相似或具有相同的语义。最值得注意的是,XPCOM在FireFox中用于其插件规范,也在内部用于FireFox以连接对象。
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