Я не рекомендую сравнивать WCF с COM.
Windows Communication Foundation - это все для связи - в частности, с веб-сайта WCF он «предоставляет унифицированную модель программирования для быстрого создания сервис-ориентированных приложений, которые взаимодействуют через Интернет и предприятие».
Это действительно другой подход к межпроцессному взаимодействию, объединяющий его. Это позволяет вам использовать чистый сервисно-ориентированный API для всех коммуникаций между процессами и легко менять базовую технологию, используемую сервисами (например, переключаться с HTTP на TCP на Pipes и т. Д.).
Используя WCF, вы можете создавать процессы, которые взаимодействуют между собой чистым и последовательным образом. Один и тот же API можно использовать для общения с веб-службами, передачи данных между двумя настольными приложениями или для обмена данными между настольным компьютером и службой в системе. Во всех случаях вы можете легко переключать используемые протоколы и т. Д.
Это обеспечивает большую гибкость с одним инструментарием.
Что касается плюсов и минусов в сравнении с другими вариантами - плюсов много, в основном с точки зрения возможности использования единой модели разработки. Лично я использую WCF для всех своих текущих потребностей IPC, так как он в значительной степени заменяет удаленное взаимодействие в качестве предпочтительного API для IPC в .NET.
Основным недостатком будет производительность в некоторых конкретных сценариях. Использование WCF добавляет (незначительные) накладные расходы, поэтому в некоторых ситуациях выполнение собственной разработки сокетов низкого уровня будет работать лучше. Если вы не пишете игру в реальном времени или что-то в этом роде, усилия по разработке низкоуровневого коммуникационного протокола не стоят того.