Почему ASP.NET MVC 2 использования для сервисов REST? Почему не WCF?

Таким образом, я вижу, что MVC 2 теперь поддерживает [HttpPut] и [HttpDelete] а также [HttpGet] и [HttpPost], позволение сделать полный УСПОКОИТЕЛЬНЫЙ веб-сервис с помощью него.

Я использовал остальных инструментарий для WCF некоторое время и нахожу это довольно мощным, но мне было бы интересно узнавать то, что (если таковые имеются) преимущества там используют подход MVC 2.

Ссылки, военные истории или даже чистый слух приветствуются.

19
задан Jeremy McGee 27 March 2010 в 20:48
поделиться

3 ответа

Я почти уверен, что ASP.NET MVC с самого начала поддерживает все HTTP-команды. По крайней мере, HttpVerb Enumeration имеет их с самого начала. Единственное, что нового в версии 2, - это то, что они являются атрибутами.

// V1
[AcceptVerbs( HttpVerbs.Delete )]

// V2
[HttpDelete]

Шесть из одного, полдюжины из другого. Что касается того, хотите ли вы предоставить функциональность через WCF или ASP.NET MVC, это будет зависеть от того, как вы думаете о своем приложении.

  • Если вы думаете об этом как о толстом клиентском приложении, которое просто написано на JavaScript и обращается к успокаивающим службам для данных (затем форматирует их на стороне клиента), то WCF будет казаться более правильным решение (даже если вы могли бы сделать это с помощью любого из них).

  • Однако, если вы думаете о своем приложении как о серверном приложении, которое возвращает контент в той или иной форме для потребления, тогда использование RESTful API для ваших действий будет более разумным. Ваши действия вернут полностью отформатированный контент, который будет отображаться в браузере без необходимости дальнейшей обработки. Вы могли возвращать форматированный контент (HTML или иначе) из веб-службы, но это было бы неправильно.

По крайней мере, такое различие имеет смысл в моей голове =). Вас также может заинтересовать сообщение Фила Хаака о Как метод становится действием .


Теперь есть еще один вариант, Веб-API . ScottGu имеет краткое введение в своем блоге, и есть интересная запись в блоге, в которой обсуждается создание API-интерфейсов с использованием веб-API и контроллеров здесь .

15
ответ дан 30 November 2019 в 04:24
поделиться

Вам следует проверить интересный Блог pledersofgiants , который написал серию сообщений о создании RESTful WebService с помощью ASP.Net MVC.

от Часть 1 до Часть 21 вы можете найти некоторую интересную информацию. И он еще даже не дочитал ... хорошее чтение.

4
ответ дан 30 November 2019 в 04:24
поделиться

Мы используем ASP.Net MVC 1.0 для создания служб JSON.

Для этого есть несколько причин:

  1. Мы использовали ASP.Net MVC для страниц, поэтому использование его для служб также сокращает количество технологий в проекте.
  2. Мы обнаружили, что очень легко использовать для возврата ActionResult с данными в формате JSON

     public ActionResult GetData (string id) 
     {
    if (string.IsNullOrEmpty (id)) {{ 1}} {
    throw new ArgumentNullException ("id", "Searchvalue must be provided."); 
    } 
     
     // Где Provider.GetData возвращает IEnumerable  
    return Json (Provider.GetData (id)); 
    } 
     
3
ответ дан 30 November 2019 в 04:24
поделиться
Другие вопросы по тегам:

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