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 и WebSocket.
Службы 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.

См. также раздел