Какой подход / технология / инструмент .NET REST мне следует использовать?

16

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

Мы начали использовать REST Starter Kit с .NET 3.5, но при обновлении до .NET 4.0 перешли на новый веб-API WCF. Вся их документация указывает на то, что WCF Web API является заменой RSK. Тем не менее, веб-интерфейс API только в Preview 4 и не включает поддержку клиентов Silverlight или Windows Phone 7 (пока).

WCF Web API выглядит как обертка поверх предоставляемых в System.ServiceModel.Webбиблиотеке WCF WebHttp Services, что наводит меня на мысль, что, может быть, было бы проще просто использовать встроенные функции, но Web API действительно предлагает некоторые приятные функции.

Я специально связан, пытаясь определить лучший курс для клиентской стороны. Моё главное требование - чтобы я быстро и легко поддерживал десериализацию в объекты на стороне клиента. Web API предлагает хорошую клиентскую библиотеку, но не имеет версии Silverlight.

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

  1. REST Starter Kit действительно устарел?

  2. Кто-нибудь имел успех в реализации инструментария WCF Web API?

  3. Есть ли смысл использовать любой из этих встроенных функций WCF WebHttp Services System.ServiceModel.Web?

  4. Есть ли единственное решение, которое работает для любого клиента (веб, Silverlight и т. Д.)?

Какие у вас есть предложения?

SonOfPirate
источник
Я очень рекомендую использовать
servicetack

Ответы:

6

Для того, чтобы продолжить и завершить публикацию, с помощью Preview 5 веб-API WCF сделал огромный шаг вперед, сделав невероятно простым создание REST API. И хотя текущая кодовая база Codeplex не включает клиента Silverlight, существует набор инструментов, и я смог легко вырезать части Async-CTP из открытого исходного кода и создать версию SL.

Я настоятельно рекомендую всем, кто заинтересован в получении REST с WCF, заглянуть в фреймворк: http://wcf.codeplex.com .

К вашему сведению - это будет интегрированная часть .NET 4.5, и в настоящее время она переписывается для работы на той же базовой платформе, что и ASP.NET MVC (хотя мне сказали, что она по-прежнему будет поддерживать автономный хостинг).

SonOfPirate
источник
1

Я не использовал REST Starter Kit, но поскольку я сейчас пишу .NET 4.0 WCF REST API, я уверен, что он все еще существует :)

Я бы порекомендовал вам взглянуть на одату. Это удивительно быстро и просто для кодирования и прекрасно работает с Silverlight.

Том Сквайрс
источник
Одной из функций, предлагаемых инструментарием веб-API WCF, является поддержка OData, которая прекрасно работает. Но отсутствие версии Silverlight мне не помогает. Как вы справляетесь с десериализацией на стороне клиента?
SonOfPirate
Я сделал это только с WP7 silverlight. Это я просто добавил ссылку на сервис и назвал это. Вы можете просто использовать веб-клиента и десериализовать ответ самостоятельно, если это будет работать лучше для вас. Это не сложно
Том Сквайр
Я не думал, что использование webHttpBinding для включения REST с WCF поддерживает конечную точку mex. Как вы добавляете ссылку на сервис? Это было бы моим предпочтением по сравнению с общей библиотекой, содержащей мои контракты с данными.
SonOfPirate
Да, я только что добавил ссылку на сервис. Возможно, вам потребуется определить конечную точку в файле конфигурации.
Том Сквайр
Я только что узнал (трудный путь), что Silverlight не поддерживает привязку WebHttpBinding. Таким образом, даже несмотря на то, что мне удалось открыть конечную точку mex и добавить ссылку на службу, служба не выполняла вызов, потому что не могла разрешить конечную точку.
SonOfPirate
1

Веб-API WCF не предоставляет никакой информации метаданных, которую вы использовали бы для создания прокси-сервера службы, и, таким образом, сможете добавить ссылку на службу. Он предназначен для простого создания служб REST под эгидой WCF, так же, как вы делаете это с платформой ASP.NET MVC 4 Web API.

Поэтому нет поддержки WP7 или Silverlight, но он почти идеально подходит для остальной части сети.

Однако WCF Data Services выглядит как подходящий кандидат, он позволяет вам создавать RESTful-сервисы и легко использовать их с Silverlight.

Нед Смайич
источник
Мы уже почти год используем Web API с нашим клиентом Silverlight без проблем.
SonOfPirate