WCF и ASP.NET Web APIWCF and ASP.NET Web API

WCF является единой моделью программирования (Майкрософт) для построения ориентированных на службы приложений.WCF is Microsoft’s unified programming model for building service-oriented applications. Она позволяет разработчикам построить безопасные надежные решения с поддержкой транзакций и возможностью межплатформенной интеграции и взаимодействия с существующими инвестициями.It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments. Веб-API ASP.NET — это платформа, которая позволяет легко создавать службы HTTP для широкого диапазона клиентов, включая браузеры и мобильные устройства.ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API - это идеальная платформа для сборки REST-приложений на базе .NET Framework.ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework. В этом разделе даны рекомендации, помогающие решить, какая технология лучше подходит под конкретные требования.This topic presents some guidance to help you decide which technology will best meet your needs.

Выбор технологииChoosing which technology to use

В следующей таблице описаны основные возможности каждой из технологий.The following table describes the major features of each technology.

WCFWCF ASP.NET Web APIASP.NET Web API
Включает службы сборки, которые поддерживают несколько транспортных протоколов (HTTP, TCP, UDP и пользовательский транспорт) и допускают переключение между ними.Enables building services that support multiple transport protocols (HTTP, TCP, UDP, and custom transports) and allows switching between them. Только HTTP.HTTP only. Первоклассная модель программирования для HTTP.First-class programming model for HTTP. Больше подходит для доступа из различных браузеров, мобильных устройств, д Включение широкая доступность.More suitable for access from various browsers, mobile devices etc enabling wide reach.
Включает службы сборки, которые поддерживают разные кодирования (текст, MTOM и двоичные) одного типа сообщений и допускают переключение между ними.Enables building services that support multiple encodings (Text, MTOM, and Binary) of the same message type and allows switching between them. Позволяет создавать сетевые API-интерфейсы, которые поддерживают большое количество различных типов содержимого, в том числе XML, JSON и т. д.Enables building Web APIs that support wide variety of media types including XML, JSON etc.
Поддерживает создание служб по таким стандартам WS-*, как надежный обмен сообщениями, транзакции и безопасность сообщений.Supports building services with WS-* standards like Reliable Messaging, Transactions, Message Security. Использует основные протоколы и форматы, такие как HTTP, WebSockets, SSL, JSON и XML.Uses basic protocol and formats such as HTTP, WebSockets, SSL, JSON, and XML. Отсутствует поддержка протоколов высокого уровня, таких как надежный обмен сообщениями и транзакции.There is no support for higher level protocols such as Reliable Messaging or Transactions.
Поддерживает шаблоны обмена сообщениями «запрос-ответ», «односторонний» и «дуплексный».Supports Request-Reply, One Way, and Duplex message exchange patterns. HTTP — запрос/ответ, но дополнительные шаблоны, которые могут поддерживаться через SignalR и интеграции WebSockets.HTTP is request/response but additional patterns can be supported through SignalR and WebSockets integration.
Службы WCF SOAP могут быть описаны в языке WSDL, что позволяет автоматическим средствам создавать прокси клиентов даже для служб со сложными схемами.WCF SOAP services can be described in WSDL allowing automated tools to generate client proxies even for services with complex schemas. Имеются различные способы описания Web API - от автоматически формируемых html-страниц справки с описанием фрагментов до структурированных метаданных для интеграции API в OData.There is a variety of ways to describe a Web API ranging from auto-generated HTML help page describing snippets to structured metadata for OData integrated APIs.
Поставляется вместе с платформой .NET Framework.Ships with the .NET framework. Поставляется вместе с платформой .NET Framework, но имеет открытый код и доступна также по внешним каналам как независимая загрузка.Ships with .NET framework but is open-source and is also available out-of-band as independent download.

Используйте WCF для создания надежных, безопасный веб-службы, доступные через различные транспорты.Use WCF to create reliable, secure web services that are accessible over a variety of transports. Используйте ASP.NET Web API для создания служб на основе HTTP, доступных из разных клиентов.Use ASP.NET Web API to create HTTP-based services that are accessible from a wide variety of clients. Используйте ASP.NET Web API при создании и разработке новых служб в стиле REST.Use ASP.NET Web API if you are creating and designing new REST-style services. Хотя WCF предоставляет некоторую поддержку написания служб в стиле REST, поддержка REST в ASP.NET Web API более полная и все последующие улучшения возможностей REST будут вноситься в ASP.NET Web API.Although WCF provides some support for writing REST-style services, the support for REST in ASP.NET Web API is more complete and all future REST feature improvements will be made in ASP.NET Web API. Если имеется существующая служба WCF и необходимо предоставить дополнительные конечные точки REST, используйте WCF и WebHttpBinding.If you have an existing WCF service and you want to expose additional REST endpoints, use WCF and the WebHttpBinding.

См. такжеSee also