Ответы:
Это в основном старая технология, используемая для написания программ в среде Windows. Это большой и сложный и не было приятно управлять / поддерживать. .NET Framework - это его замена.
COM-объект - это в основном черный ящик, который реализует некоторый известный интерфейс. Он также может зарегистрироваться в Windows, чтобы программы могли его использовать.
Например, скажем, есть некоторый интерфейс ICalculator
, который я пишу для использования в своей программе. Теперь я могу поменять любой объект, написанный на любом языке программирования (так как это двоичный интерфейс), который реализует ICalculator
. Затем во время выполнения я могу предоставить пользователям какую-то опцию, чтобы они могли выбрать использование FooCorpCalculator
COM-объекта, написанного на Python, или, возможно, если им нужна большая скорость, они могут выбрать NinjaCalculator
написанное на C. Дело в том, что я пишу моя программа должна зависеть от интерфейса, а не от реализации, а затем выбрать использование фактического COM-объекта, который реализует интерфейс позже.
Конечно, есть еще много чего, но это может быть примером, который делает его более конкретным для вас.
Смотрите эту статью в Википедии: объектная модель компонентов
Компонентная объектная модель (COM) - это стандарт двоичного интерфейса для программных компонентов, введенный Microsoft в 1993 году. Он используется для обеспечения межпроцессного взаимодействия и создания динамических объектов в широком диапазоне языков программирования. Термин COM часто используется в индустрии разработки программного обеспечения Microsoft как общий термин, который охватывает технологии OLE, OLE Automation, ActiveX, COM + и DCOM.
COM-объект часто реализуется в файле DLL. Они могут быть использованы программами для различных функций. Используемый здесь термин «объект» относится к объектам в объектно-ориентированном программировании .
COM представляет собой набор технологий, специфичных для Windows, для обеспечения возможности повторного использования кода и взаимодействия, прежде всего на уровне двоичного кода (необязательно на уровне исходного кода).
В начале 1990-х годов Билл Гейтс не разрешил, чтобы команда разработчиков Powerpoint внедрила собственную подсистему построения диаграмм для продукта Powerpoint, потому что у Microsoft уже был Excel. Поэтому они разработали спецификацию, позволяющую их собственным продуктам обмениваться данными и вызывать функции друг друга. Microsoft обобщила эти API, опубликовала их и многое другое.
Смотрите это видео с 2006 года: Тони Уильямс: Со-изобретатель COM
Я думаю, что сейчас, в 2012 году, COM все еще находится в центре WMI и Office.