Каков наилучший способ реализации веб-служб на основе REST в .NET? - PullRequest
3 голосов
/ 12 мая 2009

Пока что я могу выбрать службы данных ADO.Net, начальный комплект WCF REST (не уверен, смогу ли я его использовать, поскольку их EULA трудно понять и запутать), ASP.NET MVC.

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

Сценарий, который я хочу использовать, предназначен для сохранения и получения некоторых данных из базы данных SQL Server. Я ищу что-то, что уже имело встроенную инфраструктуру. Я прочитал другие вопросы, но я не получил никакого конкретного опыта, который люди имели с вышеупомянутыми вариантами, поэтому задаюсь вопросом, изменились ли вещи со временем.

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

Разъяснение № 1: в настоящее время я ограничиваю свои возможности MS Stack

Ответы [ 5 ]

4 голосов
/ 12 мая 2009

На самом деле я думаю, что ADO.NET для Data Services (ранее называвшийся Astoria) - это то, что вам нужно.

http://msdn.microsoft.com/en-us/data/bb931106.aspx

2 голосов
/ 21 мая 2009

WCF - это далеко не то, что касается v1. Это мешает вам реализовать многие ограничения архитектур ReST.

Если вы хотите выполнить ReST через http, почему бы не взглянуть на OpenRasta, которая была разработана с нуля для поддержки сценариев REST:

http://trac.caffeine -it.com / openrasta

Себ

0 голосов
/ 12 мая 2009

Если вы используете службы .asmx wed, вы можете пометить класс с помощью ScriptService и затем запросить Json в вызове AJAX, чтобы вернуть Json.

0 голосов
/ 12 мая 2009

Если на вашем веб-сайте уже работает MVC, и просто проще добавить дополнительный вид и вывести дамп xml / json вместо содержимого HTML. (Stack Overflow делает это для своих RSS-каналов)

Если вы хотите добавить пользовательские заголовки, такие как Basic Http Authentication, X-HTTP-Method-Override для поддержки put / delete (так как конвейер браузеров поддерживает только get / post), это легко сделать в Rest Starter Kit , и в настоящее время практически невозможно сделать в WCF 3.5 (возможно с модулями asp.net с установленными атрибутами, позволяющими httpcontext )

Rest Starter Kit заполняет все пробелы, которые не были учтены WCF 3.5!

REST Starter Kit содержит предварительные компоненты ASP.NET, как в «Программное обеспечение лицензируется« как есть ». Вы рискуете использовать его. Возможно, оно никогда не выйдет в качестве стабильного выпуска " Просмотр лицензии

Для начала PluralSight предлагает несколько удивительных видеоуроков о REST и REST Starter Kit.

0 голосов
/ 12 мая 2009

ASP.NET MVC на самом деле не похож на другие вещи. Это модель веб-разработки, альтернатива WebForms.

Что касается реализации веб-службы на основе REST, вероятно, WCF - это путь. Это в значительной степени вопрос установки нескольких дополнительных атрибутов, настройки одного XML-файла и все. Что касается инфраструктуры, то WCF почти такой же полный, как и любой другой вариант, так как он имеет встроенную пропускную способность и параллелизм, и если вы решите переключить транспорты (скажем, именованные каналы или TCP) или захотите переключиться на использование SOAP, это тривиальный переключатель. Кроме того, встроена трассировка, которая может пригодиться, если что-то пойдет не так.

Последний вариант - веб-методы. Если вы просто пытаетесь включить Ajax для веб-сайта, веб-методы, вероятно, помогут.

Что касается того, что вам не хватает каких-либо фреймворков ... если вы имеете дело со стеком MS dev, то нет, вот и все, кроме, возможно, классических веб-сервисов, которые все еще поддерживаются.

Если вы говорите не на языках MS, существует полсотни различных стандартов веб-сервисов для всех языков (Java, Python, Ruby и т. Д.). Если вы не ограничены технологиями MS, вы должны прояснить это, поскольку это открывает широкие возможности.

РЕДАКТИРОВАТЬ: Это не означает, что вы не можете сделать основанные на REST интерфейсы без просмотра с ASP.NET MVC. Если это просто означает, что у вас нулевая встроенная инфраструктура, и в основном вы будете работать самостоятельно. Таким образом, нет обработки нагрузки, нет защиты DDOS, нет отказоустойчивости и т. Д ...

...