Служба WCF или веб-API - PullRequest
       1

Служба WCF или веб-API

25 голосов
/ 29 февраля 2012

Я собираюсь работать над проектом, который включает несколько элементов:

  • Веб-сайт ASP.NET MVC
  • Консольное приложение C #
  • iPhoneПриложение

Чтобы все эти отдельные приложения могли общаться с базой данных, моей непосредственной мыслью было использование службы WCF.

Однако теперь мне нужно добавить API к сайту, чтобыразрешить третьим сторонам выбирать, вставлять и обновлять записи из своих собственных приложений.

На мой взгляд, я бы просто создал отдельную конечную точку службы RESTful в моей службе WCF, которая была бы заблокирована с использованием аутентификации и давала бы только доступдля некоторых методов.

Тем не менее, я читал сегодня о функции веб-API в MVC 4, которая должна быть самой последней для API RESTful?

Должен ли я идти по путилиния использования веб-API?или из-за того, что другим моим приложениям требуется веб-служба, мне следует придерживаться службы WCF?

Ответы [ 6 ]

16 голосов
/ 29 февраля 2012

Если вы намереваетесь заняться разработкой RESTful, вам определенно нужно будет использовать ASP.Net Web Api (который изначально назывался WCF Web Api и создавался с целью «Сделать REST гражданином первого класса в .NET».".

Еще одна вещь, которую следует учитывать, это то, что стартовый комплект WCF REST больше не поддерживается .

Обратите внимание, что использование Web Api не означает, что у вас естьиспользовать ASP.Net MVC или IIS, даже если он может быть самостоятельно размещенным .

Для операций, которые не относятся к CRUD, я бы порекомендовал поискать в Google «REST non-CRUD».Я нашел это сообщение в блоге RESTful URL для операций без CRUD (и особенно интересные комментарии). Если вы решите, что вам НУЖНО иметь вызовы RPC, то, возможно, это должно быть сделано с WCF.Я не уверен, какое будет лучшее решение. И то и другое, вероятно, лучший ответ, но в то же время это не обязательно хороший ответ.

Другая альтернативабыть службой OData WCF, но я не уверен, получит ли это какую-либо поддержку от iPhone.

Последнее замечание (которое может быть удалено в будущем, поскольку оно зависит от времени)

Microsoft предоставила бета-версию лицензии Go Live, которая означает, чтоон поддерживается Microsoft, и у вас не должно возникнуть проблем с обновлением до RTM-файла.

6 голосов
/ 29 февраля 2012

Сервисный стек также выглядит как опция.

Демоверсии, обзор, примеры доступны здесь .

4 голосов
/ 29 февраля 2012

Здесь нет правильного ответа. Безусловно, вы можете довольно хорошо справляться со службой WCF RESTful. Или вы можете использовать ASP.NET MVC. И то, и другое совершенно справедливо, и оба имеют свои сильные и слабые стороны.

В конечном счете, я бы посоветовал вам пойти с тем, что вам кажется наиболее приемлемым.

Хочу отметить, что MVC 4 находится в бета-версии, поэтому следите за ошибками и не выпускайте их, пока они не выйдут из бета-версии.

1 голос
/ 29 февраля 2012

Поскольку вы собираетесь создавать веб-сайт ASP.NET MVC, было бы довольно удобно использовать веб-API ASP.NET также потому, что модель программирования очень похожа и эти решения более или менее интегрированы друг с другом.

1 голос
/ 29 февраля 2012

Я бы не стал обращать внимание на наилучшую поддержку на всех платформах, которые вы собираетесь использовать, я подозреваю, что приложение для iPhone может в конечном итоге повлиять на ваш выбор.

Если бы это был чистый .net, я бы по-прежнему склонялся к использованию службы SOAP - в наши дни это не считается классным, но на большинстве платформ он, как правило, будет делать то, что вам нужно, без необходимости развертывания пользовательских решений.

EDIT

ASP.NET Web API означает, что .NET теперь предоставляет отличную платформу для разработки спокойного API, и я пересмотрю свой ответ, чтобы сказать, что теперь я склоняюсь к этому - прогресс велик!

0 голосов
/ 19 ноября 2014

У меня такой же вопрос.

На сайте MSDN http://msdn.microsoft.com/en-us/library/jj823172(v=vs.110).aspx

Нашел видеоурок, в котором говорится, что для таких компьютеров, как iPhone или клиенты веб-приложений JSON или xml, рекомендуется использовать веб-API.Это вокруг последней части видео.

Хотя для более сложных межмашинных коммуникаций WCF предпочтительнее.

http://channel9.msdn.com/Series/Building-Web-Apps-with-ASP-NET-Jump-Start/Building-Web-Apps-with-ASPNET-Jump-Start-04-Building-a-Service-Layer-with-ASPNET-Web-API

Вот скриншот из их презентации.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...