Подтвердить что ты не робот

Является ли Starter Kit WCF REST мертвым в воде?

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

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

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

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

Изменить

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Проведя огромное количество времени, играя с различными сетями отдыха .net, я пришел к выводу. Использование asp.net mvc на сегодняшний день является самым простым и прозрачным способом обработки обслуживаемых служб.

Asp.net MVC

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

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

Проекты WCF Rest


WCF Rest Contrib - wcfrestcontrib.codeplex.com

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

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

Стартовый комплект для отдыха WCF - code.msdn.microsoft.com/wcfrestlabs/

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

Инструменты документации


WCF Rest AutoDocs - autodocs.codeplex.com

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

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

WCF Doc - wcfdoc.codeplex.com

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

Ответ 3

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

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

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

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

До сих пор мы предполагаем, что для этого нужно использовать стартовый набор WCF REST. Однако это все еще находится в Preview 2 и не обновляется с марта 2009 года.

Вы можете создавать приложения REST с помощью WCF без пакета Starter Kit. WCF, поставляемый в .NET 3.5, включает в себя хорошие возможности и инструменты REST. Он включает в себя отображение шаблона URI, атрибут WebGet и т.д.

Стартовый комплект - это пример кода, дополнительные классы утилиты, видео и другие надстройки, которые помогают проиллюстрировать, как делать REST в WCF. Вам не нужен стартовый комплект для выполнения REST в WCF.

Вам не нужно ждать, когда стартовый комплект будет "завершен", чтобы сделать REST в WCF. Если есть такие вещи, которые вам нравятся, например, построитель запросов Http, используйте его. Это открытый исходный код, который вы можете использовать в своем проекте. Если вам это не нравится, не используйте его.

Ответ 8

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

http://wcfrestcontrib.codeplex.com/

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

Ответ 9

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

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

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

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

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

Ответ 10

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

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

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

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