Что означает COM-объект?

2452
Sergey

Что это? Как я понял, это своего рода специальная технология Microsoft для некоторых объектов. Но что именно?

9

4 ответа на вопрос

10
dsolimano

COM-объект - это в основном черный ящик, который реализует некоторый известный интерфейс. Он также может зарегистрироваться в Windows, чтобы программы могли его использовать.

Например, скажем, есть некоторый интерфейс ICalculator, который я пишу для использования в своей программе. Теперь я могу поменять любой объект, написанный на любом языке программирования (поскольку это двоичный интерфейс), который реализует ICalculator. Затем во время выполнения я могу предоставить пользователям какую-то опцию, чтобы они могли выбрать использование FooCorpCalculatorCOM-объекта, написанного на Python, или, возможно, если им нужна большая скорость, они могут выбрать NinjaCalculatorнаписанное на C. Дело в том, что я пишу моя программа должна зависеть от интерфейса, а не от реализации, а затем выбрать использование фактического COM-объекта, который реализует интерфейс позже.

Конечно, есть еще много чего, но это может быть примером, который делает его более конкретным для вас.

4
bwDraco

Смотрите эту статью в Википедии: объектная модель компонентов

Компонентная объектная модель (COM) - это стандарт бинарного интерфейса для программных компонентов, представленный Microsoft в 1993 году. Он используется для обеспечения межпроцессного взаимодействия и создания динамических объектов в широком диапазоне языков программирования. Термин COM часто используется в индустрии разработки программного обеспечения Microsoft как общий термин, который охватывает технологии OLE, OLE Automation, ActiveX, COM + и DCOM.

COM-объект часто реализуется в файле DLL. Они могут использоваться программами для различных функций. Используемый здесь термин «объект» относится к объектам в объектно-ориентированном программировании .

вот почему я задал этот вопрос. потому что википедия не ответила. Определение очень абстрактное, и я не вижу реального примера. Sergey 13 лет назад 1
4
MorganTiley

Это в основном старая технология, используемая для написания программ в среде Windows. Это большой и сложный и не было приятно управлять / поддерживать. .NET Framework - это его замена.

COM-объекты не используются в .NET Framework? Sergey 13 лет назад 0
Их можно вызывать из .NET, но это совершенно другая система. Это называется COM Interop. Вы можете немного изучить их на своем компьютере - в Панели управления >> Администрирование >> Службы компонентов. MorganTiley 13 лет назад 2
COM никуда не денется в ближайшее время. Он широко используется в собственных продуктах Microsoft. Поэтому я думаю, что это вводит в заблуждение то, что вы называете это «в основном старой технологией». Да, он был впервые представлен в начале 90-х годов, поэтому технически он «старый» в том смысле, что он уже давно, но вам нужно позаботиться * не *, чтобы указать, что он устарел или устарел. Cody Gray 12 лет назад 1
0
knb

COM is set of Windows-specific technologies to enable code reuse and interoperability, primarily at the level of the binary (not necessarily at the level of the source code).

In the early 1990s Bill Gates didn't permit that the Powerpoint development team implement an own charting subsystem for the Powerpoint product, because Microsoft already had Excel. So they developed a specification to enable their in-house products to exchange data and call each others functions. Microsoft generalized these APIs, published them and a lot more code design guidelines.

See this video from 2006: Tony Williams: Co-inventor of COM

I think, that now in 2012, COM is still at the core of WMI and Office.

Похожие вопросы