Вопрос по asp.net, wcf, asp.net-web-api – Служба WCF против ASP.NET Web Api

10

Может ли кто-нибудь разделить фактическую разницу между службой WCF и ASP.NET Web Api? В каком сценарии мы должны использовать WCF Service и ASP.NET Web Api.

возможный дубликат:stackoverflow.com/questions/9348639/wcf-vs-asp-net-web-api Filippo Pensalfini

Ваш Ответ

3   ответа
1

Web Service

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

WCF

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

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

To whom choose between WCF or WEB API

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

Последняя часть ваших ответов проясняет концепцию @Muhammad
13

оления.

Сервисы WCF изначально разрабатывались с канальной архитектурой, позволяющей настраивать протоколы и транспорты, используемые для связи между системами. Хотя это дает архитектору / разработчику большую гибкость в создании совместимых приложений, это достигается ценой сложности. Настройка WCF никогда не была простой (IMO).

Наиболее распространенный вариант использования (IMO) - использование служб WCF для поддержки веб-приложений посредством запросов AJAX от браузера для получения дополнительных данных. Кроме того, со времени, когда WCF был впервые представлен, стало обычным делом для приложений предоставлять API с использованием http.

В связи с этим новый веб-API WCF является попыткой упростить инфраструктуру служб и принять транспортный протокол http.

Если вы создаете новое веб-приложение, я бы использовал новый веб-API. Я бы только посмотрел на использование служб WCF, если бы мне нужно было общаться с другой системой, используя что-то другое http.

Архитектура канала WCF

http://msdn.microsoft.com/en-us/library/ms729840.aspx

WCF Web API

http://www.asp.net/web-api

Крейг в значительной степени ударил гвоздь по голове здесь. WebAPI = все, что связано со службами POX / JSON. WCF делает все остальное, включая IPC / NetTCP / SOAP / RPC.
10

http://mattmilner.com/Milner/Blog/post/2012/02/28/WebAPI-or-WCF.aspx, отличный пост по этому вопросу: «WCF остается основой для построения сервисов, где вы заботитесь о гибкости транспорта. Web API - это платформа для создания сервисов, где вы заботитесь о HTTP. & Quot;

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