Является ли Web API более простым способом создания «службы WCF»? [Дубликат]

Способ ES6 для этого был бы с использованием литералов шаблона

const str = `${This 


is 


a


multiline text}` ; 

console.log(str);
430
задан Uwe Keim 16 April 2018 в 12:24
поделиться

11 ответов

Новый веб-API ASP.NET является продолжением предыдущего проекта WCF Web API (хотя некоторые из концепций изменились ) .

WCF был создан для включения служб на основе SOAP. Для более простых служб RESTful или RPCish (например, таких как jQuery) ASP.NET Web API должен быть хорошим выбором.

166
ответ дан marcind 16 August 2018 в 11:57
поделиться
  • 1
    Кроме того: Хотя WCF предоставляет некоторую поддержку для написания сервисов типа REST, поддержка REST в ASP.NET Web API более полная, и все будущие улучшения REST улучшаются в ASP.NET Web API msdn.microsoft.com/en-us/library/jj823172.aspx – Ohad Schneider 3 August 2014 в 22:18
  • 2
    Фактически WCF был создан для реализации уровня абстракции между SOAP или RPC-сервисом и клиентом. Речь шла о создании единой архитектуры (ABC) вокруг обоих этих очень разных вызовов и обработки сантехники через файлы конфигурации. – Scott Marcus 30 November 2015 в 15:52
  • 3
    Реальный недостаток с ASP.NET Web API - это клиентский инструмент. Visual Studio поддерживает интегрированные инструменты для поддержки бесшовных WCF-сервисов и создания сервисов. Нет поддержки в веб-API. Я знаю, что есть HttpClient, который является удивительным, но он не заботится об образовании сущности и сериализации / десериализации. – Shimmy 21 February 2017 в 05:28
  • 4
    @Shimmy Как насчет создания сервиса с использованием swagger? – Alex78191 28 February 2018 в 15:22
  • 5
    @ Alex78191 благодарит за ваш ответ. Могут ли генерируемые объекты испускать INotifyPropertyChanged объекты-клиенты? Как насчет проверки? – Shimmy 28 February 2018 в 15:28

Сравнение MSDN с этим

WCF и ASP.NET Web API

Для меня выбор был о том, кто из клиентов , и где они расположены?

Внутри компании Network и .NET-клиенты: используйте WCF с привязкой TCP (Fast communication than HTTP)

Вне сети компании и используйте разнообразные такие технологии, как PHP, Python и т. д.: используйте веб-API с REST

9
ответ дан Arshad Mohammad 16 August 2018 в 11:57
поделиться

В приведенных ниже сценариях вы должны пойти для WCF:

  1. Если вам нужно отправить данные о таких протоколах, как TCP, MSMQ или MIME
  2. Если клиент-потребитель просто знает, как потреблять SOAP-сообщения

WEB API - это среда для разработки сервисов RESTful / HTTP.

Есть так много клиентов, которые не понимают SOAP, как браузеры, HTML5 , в тех случаях API WEB - хороший выбор.

Заголовок HTTP-сервиса указывает, как защитить службу, как кэшировать информацию, тип тела сообщения и тело HTTP может указывать любой тип контента, например HTML, а не только XML как службы SOAP.

60
ответ дан Carrie Kendall 16 August 2018 в 11:57
поделиться
  • 1
    Это делает предположение, что WCF обрабатывает только SOAP-сообщения, что является неправильным допущением. Вы также можете показывать конечные точки REST в службах WCF. Я бы изменил его, чтобы сказать, если вы не собираетесь использовать функции WCF (см. Сообщение tridy), тогда Web API имеет смысл. – Mike 11 January 2015 в 00:16
  • 2
    Yep WCF также работает. По сути, Web api - это подмножество функциональных возможностей WCF, которое подходит, если вы делаете простые приложения с данными о стиле CRUD. – user1496062 3 April 2015 в 21:14

Деловая речь, WebApi не хватает WSDL, поэтому разработчики должны документировать все вручную. И если, например, операция WebApi возвращает список объектов, то клиент должен создавать объекты вручную, то есть WebAPI действительно подвержен ошибкам определений.

Про Webapi является более легким, чем ФОС.

7
ответ дан magallanes 16 August 2018 в 11:57
поделиться

Для нас WCF используется для SOAP и веб-API для REST. Я хочу, чтобы Web API поддерживал SOAP. Мы не используем расширенные функции WCF. Вот сравнение с MSDN :

enter image description here [/g1]

225
ответ дан Manish Jain 16 August 2018 в 11:57
поделиться
  • 1
    И Web API поддерживает OData , который для CSOM является Godsend. – jmb.mage 9 November 2015 в 17:22
  • 2
    Удивительно, как MS так много говорит, что ничего действительно достойного. Например, WCF поддерживает JSON, но эта информация хорошо скрыта в этом «сравнении», в то время как текстовое сообщение означает, что WebApi поддерживает JSON не один, а два раза. – magallanes 4 March 2016 в 13:36
  • 3
    эта таблица не имеет смысла. & Quot; JQuery & Quot; (кавычки для капитала J) - это протокол и / или формат? – Hristo Yankov 2 September 2017 в 18:39
  • 4
    Интересно. MSDN ошибочно упоминает HTTP в качестве транспортного протокола. HTTP - это протокол уровня приложения. – RayLoveless 4 May 2018 в 16:49

ASP.net Web API - все о HTTP и REST, основанных на GET, POST, PUT, DELETE, хорошо знакомы с ASP.NET MVC-стилем программирования и возвратом JSON; веб-API предназначен для всего легкого процесса и чистых компонентов на основе HTTP. Для того, чтобы идти вперед с WCF даже для простого или простого одиночного веб-сервиса, он принесет весь лишний багаж. Для облегчения простого обслуживания для ajax или динамических вызовов WebApi просто решает эту проблему. Это аккуратно дополняет или помогает параллельно ASP.net MVC.

Проверьте подкаст : Hanselminutes Podcast 264 - это не ваш WCF вашего отца - все о WebAPI с Glenn Block Scott Hanselman для получения дополнительной информации.

75
ответ дан Naveen Vijay 16 August 2018 в 11:57
поделиться

С помощью wcf мы можем настроить и предоставить ту же сервисную поддержку для нескольких конечных точек, таких как tcp, http.if, если вы хотите, чтобы ваш сервис был только http, тогда лучше будет работать с веб-API. Web API имеет гораздо меньшую конфигурацию по сравнению с wcf и бит быстрее, чем wcf. Wcf также поддерживает службы поддержки. Если у вас есть ограничение .Net framework 3.5, то ваш вариант - wcf.

0
ответ дан Nayas Subramanian 16 August 2018 в 11:57
поделиться

С тех пор, как я использовал до сих пор, я нашел много различий между WCF и веб-API. Оба стека технологий хорошо подходят для разных сценариев. Таким образом, невозможно сказать, что лучше, это зависит от конфигурации и сценария.

Примечание: данные - это не только мой взгляд на это также собирается с другого официального сайта.

26
ответ дан qub1n 16 August 2018 в 11:57
поделиться
  • 1
    API веб-сервисов также может быть самообслуживанием (Owin / Katana), а также в службе Windows – Monis Iqbal 11 April 2017 в 21:55
  • 2
    Хорошее сравнение – Jogi Joseph George 11 July 2017 в 10:26

WCF предоставит вам так много из коробки, это даже не сравнимо ни с чем. Если вы не хотите выполнять собственную реализацию (чтобы назвать несколько) проверку подлинности, авторизацию, шифрование, организацию очередей, дросселирование, надежную передачу сообщений, протоколирование, сеансы и т. Д. WCF не является [только] веб-сервисами; WCF является платформой для разработки SOA.

31
ответ дан tridy 16 August 2018 в 11:57
поделиться
  • 1
    Если я не ошибаюсь, я думаю, что WEB API также предоставляет большинство функций, которые вы указали. – Alex 26 March 2015 в 09:45
  • 2
    Нет Web-ави не предоставляет эти вещи или предоставляет очень простые версии. – user1496062 3 April 2015 в 21:12
  • 3
    Ну, что это - это они предоставляют или нет? – user 6 September 2015 в 13:13
  • 4
    Для проверки подлинности и авторизации установите флажок asp.net/web-api/overview/security/… . tl; dr: Он точно поддерживает его в IIS. Для шифрования вам, вероятно, понадобится использовать SSL, ASP.NET естественно обрабатывает очередь (но это прямо на основе рабочих потоков, доступных по сравнению с входящими запросами). Сеансы существуют (но я никогда не рекомендую использовать сеансы напрямую). Регистрация достаточно проста для настройки (через ActionFilters или в таком случае). Альтернативой надежному обмену сообщениями является использование SignalR (хотя и не совсем). – James Haug 10 October 2015 в 19:53
  • 5
    & quot; Не сопоставимо ни с чем "& quot; Вряд ли. – bbsimonbb 5 February 2016 в 16:51

Что касается утверждения «Отсутствие WSAL WebApi», существует несколько способов создания клиента Rest. Одним из популярных подходов является Swagger UI / (Swashbukkle Nuget). Это дает богатый интерфейс, чтобы понять схему ввода и вывода конечной точки REST и онлайн-инструмент для проверки конечных точек.

JSON LD (Json Linked Documents) - еще один новый стандарт, который еще больше улучшит REST на основе JSON опыт разработчика, раскрывая схему JSON с лучшей семантикой.

6
ответ дан Venkatesh Muniyandi 16 August 2018 в 11:57
поделиться
0
ответ дан Wiqi 16 August 2018 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: