причины выбора ком - PullRequest
       8

причины выбора ком

4 голосов
/ 05 декабря 2009

Мне было интересно, почему бы выбрать Com в качестве его "технологии" разработки программного обеспечения

Мое первое, хотя это независимость от машин и программирования.

что у тебя?

Ответы [ 4 ]

9 голосов
/ 05 декабря 2009

COM является стандартом де-факто для автоматизации и IPC на окнах (хотя .Net начал смещать фокус), поэтому есть области, которые вы просто не имеете (или не имели) выбора:

  • Расширения оболочки
  • ActiveX основывается на COM
  • Расширения Internet Explorer
  • расширение приложений MS Office
  • Возможность написания сценариев для JScript, VBScript, ... с одним двоичным кодом

До появления .Net почти вся автоматизация приложений MS осуществлялась через COM, и довольно много фирм также участвовали в этом поезде.

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

2 голосов
/ 05 декабря 2009

Основная сила COM заключается в том, что это широко применяемая технология взаимодействия.

  • COM очень хорошо поддерживается в Windows без установки чего-либо.
  • Он предлагает широкие возможности взаимодействия для различных комбинаций управляемых / неуправляемых приложений и приложений на разных языках - клиенту все равно, как работает сервер, и наоборот.
  • Если у вас уже есть большая неуправляемая кодовая база (как, например, у нас миллионы строк кода C ++) и вы хотите показать ее функциональность клиентам на разных языках, COM, безусловно, будет вашим выбором - ATL делает создание COM-серверов довольно простым и клиенты смогут использовать без лишних усилий.
  • Не забудьте COM +, что просто замечательно, если у вас есть 32-битный неуправляемый внутрипроцессорный COM-сервер и вы хотите открыть его для 64-битного клиента - во многих случаях вам нужно всего несколько щелчков мышью и не нужно кодировать что-нибудь новое вообще.
  • COM поддерживает модели потоков (подробнее см. в этой статье ), что позволяет вам решить, сколько масштабируемости вам нужно от вашего COM-компонента и сколько вы готовы за это заплатить, и ни один клиент не сможет неправильно использовать ваш компонент и получить травму из-за одновременного доступа к данным.
0 голосов
/ 05 декабря 2009

Моя первая мысль - не надо !!! Если вы можете держаться подальше от COM / DCOM.

Конечно, если вам нужно интегрироваться с устаревшими приложениями, у вас не будет выбора, но даже тогда используйте COM только для того, чтобы пересекать управляемые / неуправляемые границы.

Если унаследованная совместимость не является проблемой - оставайтесь на связи. В .NET есть все, что может предложить COM, а потом еще немного. А сложность и стабильность кода .NET не с чем сравнивать с эквивалентным кодом COM.

Я работаю с интеграцией Visual Studio в течение некоторого времени. Первоначально все это было COM, но MS медленно преобразовывает различные его части в управляемые. Новая платформа Editor, основанная на MEF, на несколько порядков уменьшает объем необходимого кода. И не надо возиться с реестром. Такое облегчение.

0 голосов
/ 05 декабря 2009

Как сказал gf, люди используют его для автоматизации. Кроме того, большие части Windows доступны только как COM-объекты. DirectX является примером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...