Недавно я обнаружил способ реализации сервисов 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 в таком случае? Есть ли лучшая масштабируемость или производительность?