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.