代码之家  ›  专栏  ›  技术社区  ›  Chris

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

com
  •  1
  • Chris  · 技术社区  · 15 年前

    我的经验是,这是一个彻底的混乱,并导致问题,难以诊断和解决的非黑带窗口开发商。

    什么是使COM发光的用例?

    9 回复  |  直到 9 年前
        1
  •  7
  •   Richard    15 年前

    COM在很大程度上透明地提供了本地(对象到对象)和远程(机器到机器、进程到进程)通信。稍微小心一点,您的代码就可以很高兴地与托管在同一内存空间中任何位置的对象一起工作,从而跨越Internet。

    虽然这种抽象有它的问题(不同情况下的动态非常不同),但是二进制格式的使用挑战了它的互操作性。并且工作得很好(考虑所有启用了VisualBasic的业务线应用程序)。

        2
  •  6
  •   JaredPar    15 年前

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

        3
  •  3
  •   user151323    15 年前

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

    至于这一团糟,我不同意。这很复杂,但没有混乱。当然,你需要对OO、接口、指针、低级编程和大脑模型有很好的理解,这才是一个优秀的C++程序员。

        4
  •  1
  •   ChrisW    15 年前

    什么是使COM发光的用例?

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

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

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

        5
  •  0
  •   Akash Kava    15 年前

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

        6
  •  0
  •   George Silva    15 年前

    COM在地理信息系统中仍被广泛应用。它是一些应用程序的主干,例如arcmap(esri)及其用于空间对象的巨大编程API。

    正如每个人所说,这很复杂,但一旦你掌握了一些关键概念,就更容易为之开发。

    .NET支持COM对象。

        7
  •  0
  •   Peter Mortensen icecrime    15 年前

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

        8
  •  0
  •   AnthonyLambert    15 年前

    我对这个名字总是很感激。因为我没有把它看作是一种对象技术——COM对象不能继承!我以为这是一种包装技术……但是M$用“对象”这个名字来让它看起来比原来更像。

    其他同时可用的技术,比如Next的可移植分布式对象,使得它看起来很原始。

        9
  •  -1
  •   lovespring    15 年前

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