Стартовый комплект WCF REST мертв в воде?

Мы смотрим на переход от использования WCF для нашего уровня обслуживания в приложениях к REST.

Пока мы предполагаем, что способ сделать это состоит в том, чтобы использоватьWCF REST Starter Kit, Однако это все еще в предварительном просмотре 2 и не обновлялось с марта 2009 года.

Этот проект мертв в воде?

Если да, какие у нас есть альтернативы для создания REST-сервисов на основе .NET? (Некоторыепредлагая использовать ASP.NET MVCкоторый мы уже используем для нашего уровня пользовательского интерфейса)

Edit

Это выглядит кактеперь стартовый комплект WCF REST действительно мертв,ASP.NET Web API это рекомендуемая альтернатива.

 Darrel Miller17 июн. 2009 г., 15:13
Вы смотрели на OpenRasta? Если вы новичок в REST, это гораздо лучшее место для начала.
 quillbreaker17 июн. 2009 г., 14:05
Было бы очень стыдно, если бы это было. SOAP превращает сеть в лабиринт пользовательских интерфейсов, каждый из которых должен быть закодирован, в то время как REST обобщает способ обработки CRUD и предлагает гораздо больше возможностей для общей интерактивности.
 Colin Jack23 янв. 2010 г., 14:19
Да, я бы посмотрел на OpenRasta или MVC, WCF - это большой грязный зверь, и он действительно мало что добавляет.
 Richard Everett25 янв. 2010 г., 09:59
@Colin, @Darren: В итоге мы пошли с WCF, используяWebGet а такжеWebInvoke атрибуты на методы обслуживания. Делали работу относительно безболезненно.
 Richard Everett17 июн. 2009 г., 14:27
@quillbreaker - REST все еще возможен в стеке .NET с использованием ASP.NET MVC (как указано в моем вопросе)

Ответы на вопрос(10)

Потратив огромное количество времени, играя с разными остальными средами .net, я пришел к выводу.Using asp.net mvc is by far the easiest and most transparent way to handle restful services. There is a whole lot less confusing configuration.

Asp.net MVC

По своей природе asp.net mvc соответствует методологии спокойного обслуживания. Вместо того, чтобы брать сложный управляемый мылом фреймворк и «адаптировать» В соответствии с протоколом успокоения, asp.net mvc охватывает парадигму веб-программирования в своей основе. Это намного большеtransparent и легко отлаживать. Используя инфраструктуру маршрутизации asp.net, запросы iis связаны с классами контроллеров. Возврат любого типа контента является бризом. Начать настройку намного проще из-заConvention over Configuration философии. Это просто работает. 'Нафф сказал.

Вот список проектов, с которыми я играл, пытаясь заставить wcf хорошо работать с отдыхом. Я провел дни, изучая различные подходы. В конце концов, были вещи, которые мне нравились в каждом, но не было ничего, что заботилось бы обо всех наших потребностях. MVC побеждает.

WCF Rest Projects

WCF Rest Contrib - wcfrestcontrib.codeplex.com

Этот проект имеет некоторые действительно полезные функции, такие как нулевая конфигурация, обработка ошибок (для возврата правильных кодов веб-ответа) и веб-аутентификация.

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

WCF Rest Starter Kit - code.msdn.microsoft.com/wcfrestlabs/

Это действительно просто «учебный инструмент» и лаборатория, чтобы показать, как остальные могут быть реализованы в wcf. Это больше не похоже на то, что оно обновляется. Я думаю, что asp.net mvc и wcf 4.0 оторвались от продаж. У него есть несколько хороших классов, которые в итоге были включены в wcf 4.0 (функция справки).

Documentation Tools

WCF Rest AutoDocs - autodocs.codeplex.com

Создает действительно классную, простую в использовании документацию на основе атрибутов и нового класса адаптера поведения конечной точки.

Я ударил большой ловушкой с этим. Когда я добавил его в WCF, внезапно сообщения перестали работать. Я продолжал получать конечную точку не найдена ошибка. В конце концов я сдался и перестал пользоваться библиотекой. Не работает с другими библиотеками.

WCF Doc - wcfdoc.codeplex.com

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

но вы обнаружите, что WCF REST довольно сильно мешает включению определенных сценариев.

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

Существуют и другие фреймворки, которые решают эту проблему более простым способом, я предлагаю вам взглянуть на OpenRasta и Snooze или даже MVC.

Мы использовали WCF для реализации API RESTFUL, где мы могли публиковать и получать данные, используя XML, JSON и ProtoBuf. То же самое с GET.

Однако, как только мы посмотрели на ASP.NET MVC, мы сбросили WCF и теперь используем MVC, чтобы сделать то же самое с гораздо более прозрачным кодом. В Google есть несколько хороших статей о том, как это сделать. Нашей основной задачей было предоставить клиентам возможность сериализовать запрос и получать ответы на XML, JSON или Protobuf.

Я бы сказал, что WCF для нас мертв. Да здравствует MVC

So far we are assuming that the way to do this is to use the WCF REST Starter Kit. However this is still in Preview 2 and hasn't been updated since March 2009.

You can build REST apps with WCF, without the Starter Kit.  WCF, поставляемый в .NET 3.5, включал хорошие возможности REST и инструменты. Он включает в себя отображение шаблона URI, атрибут WebGet и многое другое.

Начальный комплект - это пример кода, дополнительные классы утилит, видео и другие дополнительные компоненты, которые помогают проиллюстрировать, как сделать REST в WCF. Вам не нужен стартовый набор для проведения ОТДЫХА в WCF.

Вам не нужно ждать, пока начальный комплект будет "завершен". чтобыdo ОТДЫХ в WCF. Если там есть что-то, что вам нравится, например, конструктор Http-запросов, используйте его. Это открытый исходный код, который вы можете использовать в своем проекте. Если вам это не нравится, не используйте его.

 22 июн. 2009 г., 23:39
??? что вы имеете в виду "ни одна из функций"? Чего, к примеру, не хватает?
 23 янв. 2010 г., 15:12
Среди прочего, согласование контента, сериализация подключаемых модулей, создание ссылок, управление кодами состояния ... WCF ReST позволяет вам выполнять POD-сервисы, обычные старые данные через http. Это не очень хорошо для правильной работы HTTP. Как говорит Колин, WCF4 движется в правильном направлении, но я все еще не верю, что это достаточно близко.
 20 июн. 2009 г., 15:33
На самом деле, он поставляется с шаблонами uri, атрибутами и поддержкой xml / json. Ничего иного, и ни одна из функций, необходимых для построения полноценной архитектуры REST, не требуя больших усилий.
 23 янв. 2010 г., 14:17
Как указал serialseb, поддержка в лучшем случае является базовой. Связывание было бы очевидной функцией, которая отсутствует, без поддержки HATEOAS это просто не REST. Я и Себ были в разногласиях с командой WCF, и, надеюсь, в WCF4 все будет лучше.

Я не думаю, что это куда-то движется. Переход от предварительного просмотра 1 к предварительному просмотру 2 занял 4 месяца, и с тех пор прошло всего 3 месяца. Далеко не официальный, ноЭта статья называет это основным моментом Framework 4 - Beta 1. БылСеанс PDC на этом также. Слишком много организаций используют REST для своих служб, чтобы не иметь поддержки в WCF.

что мне нужна была поддержка формата x-www-form-urlencoded, отправляемого нам из стороннего приложения для iPad. Кроме того, мне нужна поддержка для пользовательской проверки имени пользователя, которая также не поддерживается сразу после установки служб WCF 4 REST.

К сожалению, недостатком было то, что я потерял способность автоматически генерировать страницы справки, которые, по-видимому, не поддерживаются в библиотеке WCF Rest Contrib.

Потеря страниц справки оказалась реальной PITA, но я не вижу никаких других вариантов, поскольку вышеуказанные требования не подлежат обсуждению.

Я надеюсь, что с ростом количества мобильных устройств, использующих REST, Microsoft будет более серьезно относиться к внедрению версии промышленного уровня в WCF. В нынешнем виде я немного разочаровался в WCF 4 ... Я надеялся на что-то более близкое к WCF Rest Contrib.

(Кстати, библиотека реализации службы ALSO поддерживает развертывание SOAP WS для классических немобильных клиентов, что проще реализовать, когда контракты WSDL могут использоваться для генерации прокси-сервера).

тип контента и возможность де / сериализации на основе заголовков, аутентификацию для каждой операции и т. Д.), Проверьте проект WCF REST Contrib:

http://wcfrestcontrib.codeplex.com/

Он основан на API-интерфейсе WCF 3.5 SP1 и предлагает некоторые функции, которых нет в RSK.

Другая возможность состоит в том, что эта функциональность будет частью .NET 4.0 и Visual Studio 2010. Я предлагаю вам скачать бета-версию и узнать.

Решение Вопроса

WCF обеспечивает поддержку служб в стиле REST с момента выпуска .Net Framework 3.5, и вы можете начать создавать службы REST на WCFtoday.

WCF REST Starter Kit предназначен для команды, чтобы получить обратную связь от сообщества о новых идеях, касающихся REST в WCF. Мы активно работаем над привлечением разработчиков & apos; любимые функции начального набора в .Net Framework - например, вы можете использовать функцию справочной страницы в недавно выпущенном выпуске .Net 4 Beta 1. Поскольку мы получаем отзывы о функциях стартового набора, мы рассматриваем их для включения в среду, которую вы можете использовать в производстве.

Что касается комментариев о том, что стартовый набор "мертв в воде", я могу заверить вас, что это совсем наоборот. Мы стремимся к 4-месячному циклу разработки новых версий стартового набора, как мы указали надомашняя страница стартового комплекта, У нас есть ресурсы, посвященные поддержке стартового комплекта и работе над будущими версиями.

 Richard Everett21 июн. 2009 г., 22:13
@Yavor - означает ли это, что мы можем ожидать превью 3 в ближайшие несколько недель?
 23 янв. 2010 г., 14:19
Мне жаль, что это неточно, так как Seb указывает, что для выполнения чего-либо кроме CRUD над WCF вам нужно написать много фреймворков и бороться с WCF.
 27 сент. 2011 г., 17:19
Теперь, после BUILD 2011, мы узнали, что HttpClient включен в .NET 4.5.
 01 июл. 2011 г., 05:11
А теперь, 2 года назад, что мы узнали?
 07 окт. 2012 г., 04:52
Ничего себе, этот старый ответ все еще получает взгляды. Извините, ребята, что не обновили его! С момента поставки Starter Kit команда продолжала совершенствовать стек REST WCF и интегрировать его с ASP.NET, что было одной из главных задач в сообществе. Результатом является полностью поддерживаемая новая функция ASP.NET:asp.net/web-api.

У нас также было требование для реализации сервисов RESTful, но наша главная цель состояла в том, чтобы повторно использовать / централизовать наши уже существующие сервисы WCF, достигая возможности повторного использования.

Затем мы опробовали веб-API и обнаружили его довольно простым. Это также предоставило нам дополнительный уровень в нашей архитектуре, который мы также могли контролировать.

Сначала у нас были проблемы с производительностью, но пока они были минимальными.

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

Ваш ответ на вопрос