Что не так с DCOM? - PullRequest
       44

Что не так с DCOM?

10 голосов
/ 04 декабря 2009

Кажется, что против DCOM много вражды, и мне любопытно понять, почему. Для компании, все еще пишущей в Win32 SKD с использованием C ++, есть ли реальная причина не использовать DCOM в текущей или будущей разработке? Не будет ли какая-то будущая версия Windows поддерживать ее? Это слишком хрупко и часто не работает? Это слишком сложно для реализации по сравнению с другими технологиями? В чем дело?

Ответы [ 6 ]

6 голосов
/ 04 декабря 2009
  1. Модель безопасности. Особенно, когда компьютеры не находятся в одном домене (или вообще не находятся в нем).
  2. Автоинтерфейсы, смоделированные для Visual Basic (оригинальные, а не .NET), устаревшие и не очень удобные для использования на других языках.

Если вы хотите разрабатывать только на C ++ и развертывать в управляемой сети, это может быть хорошим выбором.

3 голосов
/ 04 декабря 2009

Мне не нравится COM / DCOM, потому что "Catastrophic failure" - самое бесполезное сообщение об ошибке в истории сообщений об ошибках.

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

Если вы пытаетесь создать клиент-серверное приложение и хотите, чтобы обмен данными проходил через сетевые границы (например, через Интернет), тогда DCOM может быть проблематичным из-за брандмауэров.

Я работал над очень успешным серверным приложением, которое распространялось с использованием DCOM. Мы позволяли системе справляться с большинством сложностей, создавая серверные приложения COM + и экспортируя прокси приложений. В этом случае это работало очень хорошо, пока все наши версии были синхронизированы.

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

Ну, DCOM - это распределенная версия COM, и COM сам по себе очень сложен, и очень легко непреднамеренно сделать что-то не так (см. этот недавний вопрос и ответ на него для примеров). С DCOM у вас есть еще больше способов навредить себе.

Кроме того, он работает и, например, является хорошим способом размещения внутрипроцессных COM-компонентов в отдельном процессе.

1 голос
/ 04 декабря 2009

Я реализовал большую систему с использованием DCOM в конце 90-х. Хотя это работало довольно хорошо, было несколько проблем. Для начала он использует непредсказуемые номера портов для связи. Он не масштабируется, и вам лучше использовать WCF, чем DCOM.

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

Я думаю, что импульс переместился на SOAP и другие технологии веб-сервисов, потому что это:

  • проще в развертывании систем при наличии брандмауэров
  • без привязки к поставщику

Я никогда не использовал DCOM сам, поэтому я не могу прокомментировать его общее качество или пригодность.

...