Стартовый комплект WCF REST мертв в воде? - PullRequest
21 голосов
/ 17 июня 2009

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

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

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

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

Редактировать

Похоже, сейчас стартовый комплект WCF REST действительно мертв . ASP.NET Web API является рекомендуемой альтернативой.

Ответы [ 10 ]

15 голосов
/ 25 апреля 2010

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

Asp.net MVC

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

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

Проекты отдыха WCF


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 (функция справки).

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


WCF Rest AutoDocs - autodocs.codeplex.com

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

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

WCF Doc - wcfdoc.codeplex.com

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

10 голосов
/ 20 июня 2009

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

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

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

3 голосов
/ 23 февраля 2010

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

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

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

3 голосов
/ 20 июня 2009

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

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

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

2 голосов
/ 17 июня 2009

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

2 голосов
/ 17 июня 2009

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

1 голос
/ 20 февраля 2015

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

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

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

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

1 голос
/ 02 ноября 2010

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

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

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

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

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

1 голос
/ 01 июля 2009

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

http://wcfrestcontrib.codeplex.com/

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

1 голос
/ 17 июня 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...