Зачем мне нужен WCF для создания сервисов RESTful? - PullRequest
1 голос
/ 24 июля 2010

Недавно я обнаружил способ реализации сервисов RESTful с использованием Global.asax (путем обработки события Application_BeginRequest). По сути, я говорю, что можно (и легко) реализовать веб-сервис RESTful в классическом ASP.NET без необходимости в WCF.

Требуется приблизительно 30 строк кода, чтобы выяснить, какой метод вы хотите вызвать (из URL), и передать его параметры (из строки запроса, через отражение), а также сериализовать результат, используя XmlSerializer. Все это приводит к веб-службе, к которой можно получить доступ через HTTP-запросы GET, и возвращает стандартные данные XML.

Итак, есть ли причина использовать WCF при создании веб-службы RESTful, которая будет вызываться только через HTTP-запросы GET? WCF вводит много накладных расходов и ограничений, в то время как подход Global.asax, который я описал выше, гораздо проще реализовать, настроить и развернуть.

Примечание. Конечные точки JSON также можно реализовать без WCF с помощью JavaScriptSerializer.

Также - запросы HTTP POST могут обрабатываться Global.asax аналогичным образом.

Так, в конце концов, что было бы причиной использовать WCF в таком случае? Есть ли лучшая масштабируемость или производительность?

Ответы [ 2 ]

4 голосов
/ 24 июля 2010

Вы также можете использовать Asp.Net MVC для реализации REST довольно просто.

При таком подходе вы не получаете бесплатно:

  • не HTTP-привязок.
  • поддержка нескольких форматов сообщений.
  • хостинг без IIS.
  • контроль над процессом активации.
  • контроль над созданием экземпляра.
  • пул объектов.
  • очередь сообщений.
  • сделки.
  • масштабируемость и надежность.
  • дополнительные технологии, созданные на основе WCF, такие как поддержка OData.

Если ничего из этого не применимо к вашему сценарию - вам не нужен WCF.

0 голосов
/ 28 июля 2010

Ответ - два разных конвейера, но конвейер WCF был создан специально для сервисов, а ASP.Net создан для рендеринга контента через HTTP.У обоих есть свои плюсы и минусы.

Если вам комфортно со стеком ASP.net, и вам не нужно беспокоиться о таких вещах, как стандарты, тогда ASP.Net в порядке.

Ноесли вы хотите получить лучшее из обоих миров, попробуйте WCF Data Services, все классные встроенные функции WCF, без каких-либо проблем.В настоящее время у MVC нет движка представления для генерации OData.

...