Что случилось с DCOM?

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

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

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

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