Есть несколько ситуаций, которые «требуют» WCF. Во-первых, следует отметить, что слово «require» - это сильное слово, в то время как WCF является текущей предпочтительной моделью для обмена данными в .NET, платформа имеет историю других методов, которые все еще поддерживаются.
Конкретный пример 1 :
Ваше веб-приложение работает плохо, потому что некоторая вычислительная работа по подготовке ответа является «вычислительно дорогой» и потребляет процессор. Вы хотите переместить часть расходов в службу, которая работает в другом окне, где вы можете предоставить ей изолированные ресурсы. Вы создаете службу WCF, которая оборачивает функциональность, и развертываете эту службу в другом боксе, используя прокси-класс для доступа к нему по сети.
Конкретный пример 2 :
Вашему приложению Windows необходим доступ к ресурсам, находящимся за брандмауэром, в которые пользователи не могут проникнуть. Таким образом, вместо этого вы выбираете развертывание службы в демилитаризованной зоне, которую приложение может использовать и которая из демилитаризованной зоны получает доступ к ограниченному материалу и возвращает результаты в ваше приложение.
WCF - это мощный инструмент, который делает невероятные вещи, помогая разработке сервисов, особенно когда вы разрабатываете сервисы на основе SOAP. С другой стороны, многие считают, что в настоящее время более простой способ написания сервисов RESTful - это сделать с помощью ASP.NET MVC WebAPI. WebAPI начинался как проект команды WCF, но в конечном итоге был переведен в MVC по ряду причин. Если вы заинтересованы в REST, я бы порекомендовал посмотреть на WebAPI.