微软的COM被认为是一种好的/有用的技术吗?

时间:2009-08-25 16:28:23

标签: com

我的经验是,这是一个完全混乱,并导致难以诊断和修复非黑带Windows开发人员的问题。

使COM闪耀的用例是什么?

9 个答案:

答案 0 :(得分:7)

COM在很大程度上透明地提供了本地(对象到对象)和远程(机器到机器,进程到进程)通信。稍微小心一点,您的代码可以愉快地处理托管在同一内存空间中任何位置的对象。

虽然这种抽象有问题(不同情况的动态变化非常不同),并且使用二进制格式挑战互操作性,但确实有效。并且工作得很好(考虑Visual Basic启用的所有业务应用程序)。

答案 1 :(得分:6)

很难将产品称为最流行的操作系统之一的主干,如果它的应用程序不是很有用,那么大多数都是如此。

答案 2 :(得分:3)

实际上,它已经被广泛使用多年。许多相互集成和交互的应用程序都依赖于COM技术。我想甚至.NET库都将自己注册为COM。

至于一团糟,我不同意这里。这很复杂,但没有一团糟。当然,您需要对OO,接口,指针,低级编程以及构成优秀C ++程序员的大脑模型有一个很好的理解。

答案 3 :(得分:1)

  

使COM闪耀的用例是什么?

不同语言之间的互操作(例如C ++和Visual Basic)

不同进程之间的互操作(例如OLE,在Word文档中嵌入Excel电子表格)

不同供应商之间的互操作(例如,如果你想编写一个插入Windows资源管理器的shell扩展,你可以使用COM来实现,因为资源管理器声明了一个用于调用它的扩展的COM接口)。

答案 4 :(得分:0)

在许多项目中,COM已被.NET取代,但COM仍然可以用较低级别的MFC / ATL C ++编写,人们只使用COM编写高性能应用程序,其中每个cpu周期都很重要,可能是directX,游戏应用程序,硬件接口等。

答案 5 :(得分:0)

COM仍广泛用于GIS应用程序。它是某些应用程序的支柱,例如ArcMap(ESRI)及其用于Spatial Objects的庞大编程API。

正如大家所说的那样,这很复杂,但是一旦你掌握了一些关键概念,就可以更容易地为它开发。

.NET支持COM对象。

答案 6 :(得分:0)

虽然不是为它设计的(当然)COM已经成为将本机代码(例如C ++)与.NET接口的最佳方式。

答案 7 :(得分:0)

名称COM或实际上OLE总是和我一起磨。因为我没有将其视为对象技术 - COM对象无法继承!我认为这是一种包装技术....但M $使用了“对象”这个名字来使它看起来比它更多。

NeXT的Portable Distributed Objects同时提供的其他技术使它看起来很原始。

答案 8 :(得分:-1)

大多数问题是因为开发人员并不真正了解COM。 但COM很难理解微软必须重新设计另一个类似的平台,即.Net。