2016-04-06 2 views
7

Я долгое время задаюсь вопросом. Где именно нам нужно использовать WEB API и где мы должны использовать службы поддержки WCF. Что мы хотим достичь в WEB API, который мы можем достичь в WCF Rest. Я попытался вникать в ответы, но мне нужно сделать дополнительные настройки в wcf, например, шаблоны URI, контракты, конечные точки. Но больше о настройках, но я хотел узнать реальную причину использования WCF Restful Services.Разница между wcf restful services и WEB API

+0

, если вы хотите использовать HTTP-сервис, используйте Web Api, иначе используйте WCF – Thomas

+0

Возможный дубликат [WCF vs ASP.NET Web API] (http://stackoverflow.com/questions/9348639/wcf-vs-asp-net -web-api) – Thomas

ответ

18

Web Service

  • Он основан на 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-служб легкий и простой способ.
  • Веб-интерфейс API с открытым исходным кодом является идеальной платформой для создания служб RESTful с использованием .NET Framework.
  • В отличие от службы WCF REST, она использует полные функции HTTP (например, URI, заголовки запросов/ответов, кеширование, управление версиями, различные форматы контента).
  • Он также поддерживает функции MVC, такие как маршрутизация, контроллеры, результаты действий, фильтр, привязки моделей, контейнер IOC или инъекция зависимостей, модульное тестирование, которое делает его более простым и надежным.
  • Он может быть размещен в приложении или в IIS.
  • Это небольшая архитектура и подходит для устройств с ограниченной пропускной способностью, таких как смартфоны.
  • Ответы отформатированы MediaTypeFormatter веб-API в формате JSON, XML или любом другом формате, который вы хотите добавить как MediaTypeFormatter.


Выбор между WCF или веб-API

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

Для получения дополнительной информации вы можете обратиться к http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/.

+0

По-прежнему я не получил ответа, мы все еще можем достичь всех вещей в WCF Rest, которые мы можем сделать в WEB API. Почему тогда у microsoft есть WEB API, какой главный недостаток WCF Rest over WebApi Исключая все настройки в части WCF – abhijit

+2

, см. Abhijit, если вы хотите раскрывать свою функциональность широкому кругу пользователей, как в этом трендовом мире, где технология меняется ночью Конечно, webApi - это лучший вариант, который у вас есть с его легким весом и другими функциями. – Mohit

Смежные вопросы