WCF vs WEb api vs Web-сервисы для нового веб-сайта электронной коммерции

Я создаю новое приложение для электронной торговли в MVC и sql-сервере в качестве базы данных. Я хочу использовать инфраструктуру Entity для того же самого. Я смущен в выборе моего уровня доступа к данным. Какой из них следует использовать между WCF и Web api vs Web-сервисами. Возможно, в будущем нам может понадобиться приложение android и IOS. Я думаю, что Web api будет лучшим вариантом для этого.

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

WCF был создан для предоставления услуг на основе SOAP. Для более простых сервисов RESTful или RPCish (например, таких как jQuery) ASP.NET Web API должен быть хорошим выбором. Есть тысячи ссылок, рассказывающих об отдыхе, TCP, FTP, мыле, Http. Но нет, где я нашел свой ответ. Я все еще запутался. Какой из них выполнит мою проблему. Еще одна вещь, если я выбираю Web api, может интегрировать структуру сущности с Web api. Я новичок в сети точек. Любая помощь будет очень полезна.

Редактировать: @win благодарит за вашу помощь. Я хочу знать, как решить, какой из них выбрать, RESTFull (Web api) или WCF (Soap). Какие факторы в приложении принимают решение, какой из них использовать.

WCF предоставляет множество функций, но ценой безумной настройки конфигурации. Сумасшедший безумный. Он включает определение «ABC», «Адрес, привязка», «Контракт». Я всегда говорю людям «с WCF: его конфигурацией, а не кодом». Существует всего лишь несколько вариантов настройки.

Если вам нужно нажать / вытащить небольшие объемы данных «клиентам» (браузер, андроид, iphone), то лучшим вариантом будет WebApi.

Одна из функций WebApi предоставит вам xml OR json, как настроить запрос (в заголовке).

С WCF вам нужно «закодировать» либо / или / оба для json и xml, и это не супер тривиально. Aka, вы должны поместить атрибуты в Service-Methods («Контракт» ABC), чтобы сказать «этот метод отправит обратно xml» или «этот метод отправит обратно json».

Ваш уровень WebApi будет предоставлять услуги. Обычно это означает предоставление данных json или использование json-данных. И MS позаботилась о «сантехнике» для вас, так что со стороны служб это происходит автоматически.

Я кодировал оба с 2005 года (ну, WCF в 2005 году и далее, а затем позже с WebApi).

WebApi гораздо легче справиться, особенно для новичков.

Поэтому, если у вас нет конкретной причины использовать WCF, я бы использовал WebApi.

Что касается ORM, это происходит полностью на «стороне сервера», поэтому вы можете выбрать тот, который вы хотите. Я бы выбрал Poco / Code-First / Entity-Framework или NHibernate.

Ниже приводится небольшое объяснение автомагистрали … где вы не разбираете Json на стороне SERVER.

http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/

и здесь

http://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/

Вне моего мнения здесь, вот сравнительная статья Microsoft:

https://msdn.microsoft.com/en-us/library/jj823172.aspx

И цитата:

Используйте WCF для создания надежных, безопасных веб-сервисов, доступных через различные транспортные средства. Используйте ASP.NET Web API для создания служб на основе HTTP, доступных из широкого круга клиентов. Используйте ASP.NET Web API, если вы создаете и разрабатываете новые сервисы типа REST. Хотя WCF обеспечивает некоторую поддержку для написания сервисов типа REST, поддержка REST в ASP.NET Web API более полная, и все будущие улучшения REST будут сделаны в ASP.NET Web API. Если у вас есть существующая служба WCF и вы хотите открыть дополнительные конечные точки REST, используйте WCF и WebHttpBinding.