RESTful сервис в .net - какой лучше выбрать WCF или ASP.NET MVC? - PullRequest
2 голосов
/ 23 января 2012

Я планирую написать веб-приложение, которое будет работать в основном на стороне клиента (AJAX) и RESTful общаться с сервером, используя JSON, и иметь другой клиент, который будет использовать XML (или, в конечном итоге, тоже JSON).Это приложение будет иметь аутентификацию клиента, но довольно простое и маленькое.

Какой лучший выбор для этого веб-сервиса RESTfully: WCF или ASP.NET MVC?

Ответы [ 2 ]

5 голосов
/ 23 января 2012

На этом этапе, если вы начинаете проект сейчас, я бы пошел по маршруту WCF WebAPI . MVC предоставляет базовую инфраструктуру для создания REST API, но не имеет встроенной поддержки таких вещей, как согласование типов контента.

WebAPI предназначен для обеспечения первоклассной поддержки сервисов в стиле REST для .NET Framework

Тем не менее, веб-API еще не был выпущен (хотя я уверен, что это будет в этом году), поэтому вы будете разрабатывать бета-код - о, и он также доступен на Nuget

Кстати - в файле CHM есть несколько полезных вещей, с которых можно начать

3 голосов
/ 23 января 2012

Вероятно, правильный ответ: это зависит.

Если вы уже знакомы с одной из технологий, то, возможно, вам следует использовать ее, но я бы предпочел использовать ASP.NET MVC.

Теперь я упомяну две статьи Омара Аль Забира

Если вы хотите пойти по маршруту ASP.NET MVC, прочитайте это: http://www.codeproject.com/Articles/233572/Build-truly-RESTful-API-and-website-using-same-ASP

Если вы собираетесь использовать WCF, прочитайте об улучшении масштабируемости: http://www.codeproject.com/Articles/234085/Fixing-WCF-to-build-highly-scalable-async-REST-API

Крутая вещь в использовании MVC заключается в том, что вы можете написать приложение RESTful и exposeRESTful API все с одинаковым кодом.

РЕДАКТИРОВАТЬ: просто чтобы уточнить, проект MVC RESTful поддерживает GET, PUT, POST, DELETE, поэтому он действительно действительно RESTful. См. Документацию здесь: http://code.msdn.microsoft.com/Build-truly-RESTful-API-194a6253

конкретно этот бит:

Все эти URL поддерживают GET, POST, PUT, DELETE.Пользователи могут просматривать эти URL-адреса и получать HTML-страницы.Клиентские приложения могут выполнять вызовы AJAX по этим URL-адресам для выполнения CRUD.Таким образом, создавая действительно RESTful API и веб-сайт.

...