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

9

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

Сергей
источник

Ответы:

3

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

Морган Т.
источник
1
COM-объекты не используются в .NET Framework?
Сергей
3
Их можно вызывать из .NET, но это совершенно другая система. Это называется COM Interop. Вы можете немного изучить их на своем компьютере - в Панели управления >> Администрирование >> Службы компонентов.
Морган Т.
2
COM никуда не денется в ближайшее время. Он широко используется в собственных продуктах Microsoft. Я думаю, поэтому немного вводит в заблуждение то, что вы называете это «в основном старой технологией». Да, он был впервые представлен в начале 90-х годов, поэтому технически он «старый» в том смысле, что он уже давно, но вам нужно быть осторожным, чтобы не указывать, что он устарел или устарел.
Коди Грей,
12

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

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

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

dsolimano
источник
4

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

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

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

bwDraco
источник
1
вот почему я задал этот вопрос. потому что Википедия не ответила. Определение очень абстрактное, и я не вижу реального примера.
Сергей
1

COM представляет собой набор технологий, специфичных для Windows, для обеспечения возможности повторного использования кода и взаимодействия, прежде всего на уровне двоичного кода (необязательно на уровне исходного кода).

В начале 1990-х годов Билл Гейтс не разрешил, чтобы команда разработчиков Powerpoint внедрила собственную подсистему построения диаграмм для продукта Powerpoint, потому что у Microsoft уже был Excel. Поэтому они разработали спецификацию, позволяющую их собственным продуктам обмениваться данными и вызывать функции друг друга. Microsoft обобщила эти API, опубликовала их и многое другое.

Смотрите это видео с 2006 года: Тони Уильямс: Со-изобретатель COM

Я думаю, что сейчас, в 2012 году, COM все еще находится в центре WMI и Office.

KNB
источник