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