Любопытно: Каков в настоящее время рекомендуемый способ кодирования веб-сервисов REST в C #? - PullRequest
4 голосов
/ 18 февраля 2010

Итак, что рекомендуют эксперты?WCF Rest Toolkit?ADO.NET (теперь WCF) Службы данных АКА Астория?Рука катится с помощью ASP.NET MVC?Другое?

Требования довольно ванильны: HTTP GET / POST для небольшого числа типов ресурсов, вывод XML и JSON должен находиться в одном домене приложения с веб-службой SOAP ASMX.

Мои критерии:

A) производительность

B) сложность разработки (включая кривую обучения)

C) удобство сопровождения

Спасибо!

Ответы [ 3 ]

5 голосов
/ 18 февраля 2010

Лучшая среда для служб REST, которую я видел, - это OpenRasta, которая создана с нуля, чтобы просто включить REST. http://trac.caffeine -it.com / openrasta

Создание RESTful-сервисов с OpenRasta намного проще, чем с WCF по моему опыту. Это также отражается на простоте обслуживания. Я не тестировал производительность, но никогда не замечал, что она страдает в этой области, и из-за чистой архитектуры я не удивлюсь, если она будет быстрее.

Некоторые другие ссылки для вас:

http://codebetter.com/blogs/kyle.baley/archive/2009/04/19/openrasta-or-how-to-speak-rest.aspx http://blog.huddle.net/we-love-openrasta http://www.vimeo.com/3385419

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

2 голосов
/ 18 февраля 2010

Если у вас уже есть данные в структурированной форме в базе данных, такой как SQL Server, и вы хотите предоставить эти биты данных (например, ваши клиенты, их заказы и т. Д.), То службы данных WCF, вероятно, являются одним изНаиболее эффективные и продуктивные способы раскрытия ваших данных.Он обрабатывает большую часть лежащего в основе слизи для вас и позволяет вам сконцентрироваться на том, что вы хотите раскрыть, а что скрыть.И он даже поддерживает такие вещи, как запросы в строках запроса, а также довольно просто вставляет и обновляет.

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

Так что, думаю, на вашей позиции я бы проверил данные WCFСначала сервисы и используйте их, если это соответствует требованиям - а если нет, выберите между WCF REST Starter Kit (который также работает с классическими веб-формами ASP.NET, или winforms, или консольными приложениями, или WPF, или Silverlight) - или посмотритеASP.NET MVC, если вы идете по этому пути уже в вашем проекте.

0 голосов
/ 24 февраля 2010

Если вы используете .NET 4 Framework, REST гораздо лучше поддерживает использование RouteHandlers. Если вы хотите реализовать более ранние версии, я бы просто реализовал ваш собственный обработчик HTTP и использовал маршрутизацию с подстановочными знаками IIS6 (aspnet_isapi.dll) для обработки ваших запросов.

С помощью стартового комплекта REST вы можете иметь только файл .svc, но если вы реализуете свой собственный обработчик, вы можете анализировать запросы вручную и иметь гораздо более детальный контроль над остальным сервисом. Существует некоторая дополнительная сложность, но в основном она связана с развертыванием.

...