Зачем использовать 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 отстанет от вас из-за прекращения работы, намного меньше.