Разница между WCF, Web API, WCF REST и веб-службой?

в чем разница между WCF и Web API и WCF REST и веб-службой? Действительно ли WCF настолько сложен, что следует использовать webapi? Может ли WebApi делать ВСЮ работу и не пользоваться преимуществами других?

2 ответов


.Net framework имеет ряд технологий, которые позволяют создавать службы HTTP, такие как веб-служба, WCF и теперь веб-API. Есть много статей через Интернет, которые могут описать, кому Вы должны использовать.

Веб-Сервиса

  • Он основан на SOAP и возвращает данные в форме XML.
  • Он поддерживает только протокол HTTP.
  • он не является открытым исходным кодом, но может использоваться любым клиентом, который понимает xml.
  • Это может размещаться только на IIS.

WCF

  • Он также основан на SOAP и возвращает данные в форме XML.
  • это эволюция веб-службы (ASMX) и поддержка различных протоколов, таких как TCP, HTTP, HTTPS, именованные каналы, MSMQ.
  • основная проблема с WCF-это его утомительная и обширная конфигурация.
  • он не является открытым исходным кодом, но может использоваться любым клиентом, который понимает xml.
  • его можно разместить с помощью приложения или IIS или с помощью службы окон.

WCF Rest

  • чтобы использовать WCF в качестве службы WCF Rest, необходимо включить webHttpBindings.
  • он поддерживает HTTP GET и POST глаголы [WebGet] и [WebInvoke] атрибуты соответственно.
  • чтобы включить другие http-глаголы, вам нужно выполнить некоторую конфигурацию в IIS, чтобы принять запрос этого конкретного глагола .svc файлы
  • передача данных через параметры использование WebGet требует настройки. UriTemplate должен быть указан.
  • он поддерживает формат данных XML, JSON и ATOM.

Web API

  • Это новый фреймворк для построения HTTP-сервисов простым и понятным способом.
  • Web API с открытым исходным кодом является идеальной платформой для создания служб REST-ful над .NET Framework.
  • В отличие от службы WCF Rest, он использует полную функцию HTTP (например, URIs, request/response заголовки, кэширование, управление версиями, различные форматы контента)
  • Он также поддерживает функции MVC, такие как маршрутизация, контроллеры, результаты действий, фильтр, связующие модели, контейнер IOC или инъекции зависимостей, модульное тестирование, что делает его более простым и надежным.
  • он может быть размещен в приложении или в IIS.
  • это легкая архитектура и хорошо подходит для устройств с ограниченной пропускной способностью, таких как смартфоны.
  • ответы отформатированы в Интернете MediaTypeFormatter API в JSON, XML или любой формат, который вы хотите добавить в качестве MediaTypeFormatter.

кому выбирать между WCF или WEB API

  • выберите WCF, если вы хотите создать службу, которая должна поддерживать специальные сценарии, такие как односторонние сообщения, очереди сообщений, дуплексная связь и т. д.
  • выберите WCF, если вы хотите создать службу, которая может использовать быстрые транспортные каналы, когда они доступны, например TCP, с именем Каналы или, возможно, даже UDP (в WCF 4.5), и вы также хотите поддерживать HTTP, когда все другие транспортные каналы недоступны.
  • выберите веб-API, если вы хотите создать ресурсоориентированные службы через HTTP, которые могут использовать все функции HTTP (например, URIs, заголовки запросов/ответов, кэширование, управление версиями, различные форматы контента).
  • выберите Web API, если вы хотите предоставить свой сервис широкому кругу клиентов, включая браузеры, мобильные телефоны, iphone и таблетки.

ссылка:http://www.dotnettricks.com
Автор: Шайлендра Чаухан


.Net framework имеет ряд технологий, которые позволяют создавать службы HTTP, такие как веб-служба, WCF и теперь веб-API. Есть много статей через Интернет, которые могут описать, кому Вы должны использовать. Теперь у вас есть много вариантов для создания HTTP-служб на .NET framework. здесь вы можете прочитать больше:

WCF vs ASP.NET Web API

служба WCF vs ASP.NET Web Api