Зачем использовать WCF REST, если у вас есть JsonResult в ASP.NET MVC?

Я создаю приложение ASP.NET MVC и до сих пор считаю себя новичком в ASP.NET MVC. Я пришел из опыта REST в WCF, поэтому я изначально настроил несколько сервисов, которые мой клиент на основе jQuery будет вызывать через запросы RESTful AJAX. Когда я узнал больше о ASP.NET MVC, я обнаружил тип ActionsonRessult JsonResult, и я могу просто добавить эти методы в контроллер, и он будет вести себя так же, как мои RESTful-сервисы WCF.

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

Заранее спасибо!

3 ответа

Решение

В вашем случае, я бы пошел с MVC для моей реализации REST, но чтобы ответить на ваш вопрос:

MVC ASP.Net построен только для HTTP. ОТДЫХА нет. Передача репрезентативного состояния, или REST, хотя чаще всего определяется по HTTP, не ограничивается HTTP. WCF позволяет общаться через не HTTP-соединения.

Кроме того, я бы согласился, что проще и надежнее реализовать REST в MVC и особенно в более новом материале веб-API MVC, но, тем не менее, REST имеет свое место и в WCF, потому что WCF может работать самостоятельно без HTTP.

РЕДАКТИРОВАТЬ: Также следует отметить, что WCF может стоять самостоятельно без IIS.

Не все создают приложения ASP.NET MVC.... не все даже создают ASP.NET в любой форме.

WCF REST - это сервисная технология, полностью независимая от ASP.NET или сети - вы можете использовать WCF REST без IIS.

Хотя технически верно, что REST! ​​= HTTP, большинство служб REST используют HTTP. И Microsoft объединяет свой стек WCF HTTP/REST с ASP.Net. Проверьте эту страницу с сайта кодекса WCF:

http://wcf.codeplex.com/wikipage?title=WCF%20HTTP

И эта страница

http://wcf.codeplex.com/discussions/319671

Результатом этого является то, что если вы хотите получить самую последнюю поддержку HTTP REST, вам следует определенно перейти на новый веб-API ASP.Net, который поставляется с ASP.Net MVC 4.

Используя этот подход, ваши службы могут работать в IIS (очевидно), но также могут быть размещены самостоятельно, если хотите.

Кроме того, если у вас есть какие-либо инвестиции в WIF с вашими существующими службами WCF (например, настраиваемые классы диспетчера аутентификации / авторизации, настраиваемые обработчики токенов и т. Д.), Они легко перейдут из WCF в ASP.Net.

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

Другие вопросы по тегам