Насколько важен .NET 3.5 SP1 для WCF / REST? - PullRequest
2 голосов
/ 21 января 2009

Я только что прочитал книгу на WCF и был удивлен, что в ней вообще не упоминается REST.

Был ли REST запоздалой мыслью для WCF, которая была добавлена ​​в .NET 3.5 SP1 и, следовательно, плохо выпекалась или хорошо интегрирована?

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

Ответы [ 7 ]

19 голосов
/ 24 января 2009

Многие ограничения, применимые к системе REST, будет трудно, если не невозможно, реализовать с помощью WCF REST. Модель программирования имеет неплотные абстракции (разные методы для json / xml), не поддерживает несколько типов мультимедиа (только xml и json), слишком сильно зависит от параметров uri для выбора метода и т. Д. И не интегрируется с asp. net, в любом случае, иначе есть разница между службой / клиентом, которой занимается WCF, и / клиентом, который должен вернуть html.

Не то чтобы вы не могли реализовать все это сами, но вскоре вы получите что-то, что заменит почти все, что WCF Rest имеет из коробки.

5 голосов
/ 22 января 2009

Что касается REST на WCF, я думаю, Тим Эвальд сказал, что лучше

"... Я не уверен, что хочу создать слой, предназначенный для добавления HTTP поверх слоя, который был разработан для его разделения".

3 голосов
/ 21 января 2009

Джон Папа выступил в нашей локальной группе пользователей .Net. Он продемонстрировал Silverlight -> спокойный сервисный звонок. Вы можете получить его книгу и / или скачать его код.

Найдите ссылку «Исходный код для служб, управляемых данными, с Silverlight 2» по приведенной выше ссылке. Я не связываю его напрямую, потому что URL может измениться (он обновляет файл).

1 голос
/ 21 января 2009

Это личное мнение, но я не вижу поддержки RESTful в 3.5 SP 1 как запоздалая мысль. Создание и использование возможно с WCF, в то время как такие службы, как ADO.NET Data Services, используют его в качестве ключевой функции.

Silverlight и XBAP могут без проблем использовать WCF. Самая большая проблема с ними -

  • Security. На них возложена значительно более высокая безопасность, что может вызвать проблемы, невидимые в полностью доверенных приложениях. Это предназначено для защиты пользователя, поэтому я не вижу в этом ничего плохого, просто нужно работать с ним.
  • Silverlight является ТОЛЬКО асинхронным.

Мой личный опыт состоит в том, что Silverlight легче работать с WCF, чем с XBAP, поскольку модель безопасности лучше определена, чем глупость запуска XBAP (почему бы не использовать один раз щелчок + WPF, и вы получите то же самое, что XBAP без головной боли - Я сейчас сойду с мыла)

0 голосов
/ 25 марта 2010

Для полноты, Эффективные службы REST через .NET: Для .NET Framework 3.5 Кенн Скрибнер и Скотт Сили существует. DNR, HC или DFB поговорили со Скоттом, и я купил его для общего покрытия WCF. Я еще не прочитал его (или даже пролистал его) и сообщу, если / когда я это сделаю (хотя я не удивлюсь, если я этого не сделаю до запуска OpenRasta).

0 голосов
/ 01 июня 2009

Выполнение REST с WCF до 3.5 в основном означает, что не делает много вещей, которые были запечены в WCF. Но реализация службы REST очень хорошо выполнима с WCF до 3.5, она просто включает в себя больше кода. Вы должны игнорировать SOAPy и создавать свой собственный стек каналов. (Для этого вам нужно создать пользовательские привязки и указать TextMessageEncoder не использовать SOAP (с помощью MessageVersion = None)) В 3.5 вы получаете то, что все компоненты REST реализованы «из коробки», и у вас есть возможность указать интерфейс REST с помощью WebHttpBinding. Так что, на мой взгляд, реализация REST хорошо вписывается в существующий стек WCF и не является дополнением к нему. Но они упростили использование упрощенной, а не SOAPy-версии для REST из коробки в 3.5.

0 голосов
/ 21 января 2009

Все, что связано с дистрибуцией, будет включено в WCF, но WCF будет использоваться в качестве фреймворка. Это означает, что он будет существовать, когда его основная концепция достаточно сильна. Эта основная концепция - вот что предоставляет WCF: платформа для реализации новых протоколов распределенной связи. Эти активы могут быть разделены между проектами. WCF - это среда выполнения, в которой могут жить эти активы. Каждый программист WCF немедленно узнает, как интегрировать новые ресурсы WCF. Например: Компонент ServiceBus в Azure поставляется как новый ресурс для WCF. Проект, который уже включен WCF, может немедленно переключиться на новый ServiceBus. REST - это не WCF, но WCF был расширен с помощью REST, не нарушая его основной концепции. Помимо этого, у WCF есть множество других протоколов: Streamed, Bidirection, WS - *, .... Silverlight не имеет интеграции WCF. Он поддерживает HTTP и TCP / Socket связь. Почему существует тесная связь между Silverlight и WCF? Silverlight находится в фазе, где он быстро расширяется. Это тоже коммуникационный стек. Каждый новый способ общения в Silverlight также поддерживается WCF. Это развивается в синергии. Кстати, у Linq также есть основная концепция эволюции.

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