Подтвердить что ты не робот

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

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

  • Веб-сайт ASP.NET MVC
  • консольное приложение С#
  • iPhone App

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Для обработки операций, которые не являются CRUD в природе, я бы рекомендовал Googling "REST non-CRUD". Я нашел этот пост в блоге URL-адреса RESTful для операций без CRUD (и особенно интересные комментарии). Если вы решили, что вам НЕОБХОДИМО иметь вызовы RPC, то это может быть сделано с WCF. Тем не менее, поскольку WCF REST убит, я не уверен, каким лучшим решением будет. Иметь, вероятно, лучший ответ, но в то же время это не обязательно хороший ответ.

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

ИЗМЕНИТЬ

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

Ответ 5

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

Ответ 6

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

На сайте 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