Нужно ли использовать COM (компонентный объектный модуль)

Несколько дней назад я начал читать COM. Тогда один из членов моей команды сказал, что это старая технология, а сейчас никто не использует ее.

Мой вопрос:

1) Если это старая технология, то какая альтернатива для этого.

2) Почему я не должен использовать COM. Т.е. в чем недостаток СОМ.

3

Решение

COM — это «старая технология», как и C ++. То, что он старый, не значит, что он устарел. Причина, по которой Microsoft продолжает возвращаться к этому (Windows 8 широко использует это), заключается в том, что это относительно недорогая объектная технология. Нет большого времени выполнения для инициализации перед использованием COM (хотя компонент может инициализировать время выполнения, если это необходимо, например, NET CCW).

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

COM страдает от общего недопонимания того, что такое COM и что построено поверх COM. ActiveX, DCOM, OLE, COM + и т. Д. Построены на COM, но не определяют, что такое COM. Сам COM как основная технология был относительно простым.

Я говорю относительно, потому что COM не идеален. Модель квартиры может вызвать значительные проблемы, такие как сортировка между квартирами, требующая от приложения прокачки очереди сообщений. Еще в конце девяностых люди сходили с ума от COM и делали все из компонентов COM, и это вызывало ненужные сложности в приложениях. Тем не менее, это хорошо проверенная технология, и при правильном использовании она работает хорошо, особенно для демонстрации или использования функциональности третьими лицами. Если вы хотите по-настоящему понять Windows API, вам нужно знать, как работает COM.

9

Другие решения

1) Если это старая технология, то какая альтернатива для этого.

COM конечно старый. Microsoft «альтернативой» ему была / является .NET, но это означает, что вам нужно играть вместе с CLR (чтобы нативный C ++ не играл, вам для этого понадобится C ++ / CLI). Последняя альтернатива теперь называется WinRT (Windows Runtime). WinRT в настоящее время доступен только для Windows 8 и Windows Server 2012. На самом низком уровне WinRT на самом деле является COM, но Microsoft переосмыслила многие из своих подводных камней. Не зависящие от платформы и языка альтернативы включают в себя буфер протокола Google, Apache Thrift и SOAP.

2) Почему я не должен использовать COM. Т.е. в чем недостаток СОМ.

Основная цель COM — межпроцессное взаимодействие (IPC). Если, например, у вас есть два приложения, написанные на двух языках программирования, и вы хотите, чтобы они общались, COM — это решение (для Windows). COM широко использовался в 90-х годах для связи между приложениями C ++ и VB6. Если у вас нет необходимости в IPC, то ваши перспективы для COM довольно низки. На сегодняшний день мы чаще всего используем COM на работе для выполнения IPC в собственных приложениях C ++ и управляемых приложениях .NET, написанных на C #.

4

Новейшая «технология» Microsoft, среда выполнения WinRT для написания приложений для Windows 8 Metro (как бы они ни назывались сейчас …) полностью опирается на COM, поэтому она, безусловно, не устарела.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector