WCF и ASP.NET Web API

WCF является единой моделью программирования (Майкрософт) для построения ориентированных на службы приложений. Она позволяет разработчикам построить безопасные надежные решения с поддержкой транзакций и возможностью межплатформенной интеграции и взаимодействия с существующими инвестициями. веб-API ASP.NET — это платформа, которая упрощает создание http-служб, которые достигают широкого спектра клиентов, включая браузеры и мобильные устройства. ASP.NET Web API - это идеальная платформа для сборки REST-приложений на базе .NET Framework. В этом разделе даны рекомендации, помогающие решить, какая технология лучше подходит под конкретные требования.

Выбор технологии

В следующей таблице описаны основные возможности каждой из технологий.

WCF ASP.NET Web API
Включает службы сборки, которые поддерживают несколько транспортных протоколов (HTTP, TCP, UDP и пользовательский транспорт) и допускают переключение между ними. Только HTTP. Модель программирования первого класса для HTTP. Более подходит для доступа из различных браузеров, мобильных устройств и т. д., что обеспечивает широкий охват.
Включает службы сборки, которые поддерживают разные кодирования (текст, MTOM и двоичные) одного типа сообщений и допускают переключение между ними. Позволяет создавать сетевые API-интерфейсы, которые поддерживают большое количество различных типов содержимого, в том числе XML, JSON и т. д.
Поддерживает создание служб по таким стандартам WS-*, как надежный обмен сообщениями, транзакции и безопасность сообщений. Использует базовый протокол и форматы, такие как HTTP, WebSockets, SSL, JSON и XML. Отсутствует поддержка протоколов высокого уровня, таких как надежный обмен сообщениями и транзакции.
Поддерживает шаблоны обмена сообщениями «запрос-ответ», «односторонний» и «дуплексный». HTTP — это запрос или ответ, но с помощью интеграции SignalR и WebSockets можно поддерживать дополнительные шаблоны.
Службы WCF SOAP могут быть описаны в языке WSDL, что позволяет автоматическим средствам создавать прокси клиентов даже для служб со сложными схемами. Имеются различные способы описания Web API - от автоматически формируемых html-страниц справки с описанием фрагментов до структурированных метаданных для интеграции API в OData.
Поставляется с платформа .NET Framework. Поставляется с платформа .NET Framework, но доступен с открытым исходным кодом, а также доступен вне диапазона в качестве независимой загрузки.

Используйте WCF для создания надежных, безопасных веб-служб, доступных через различные транспорты. Используйте ASP.NET Web API для создания служб на основе HTTP, доступных из разных клиентов. Используйте ASP.NET Web API при создании и разработке новых служб в стиле REST. Хотя WCF предоставляет некоторую поддержку написания служб в стиле REST, поддержка REST в ASP.NET Web API более полная и все последующие улучшения возможностей REST будут вноситься в ASP.NET Web API. Если имеется существующая служба WCF и необходимо предоставить дополнительные конечные точки REST, используйте WCF и WebHttpBinding.

См. также