2009-03-26 3 views
4

В наши дни я большую часть своей работы с технологиями Microsoft, поэтому, естественно, я проверяю, что может предложить WCF. Он кажется очень гибким и отличным дополнением к удалению .Net, но он, похоже, очень привязан к сообщениям SOAP и довольно неуклюжим для приложения агностической веб-службы платформы. Я не специалист по этой технологии, но я полагаю, что вся эта гибкость, которую они рекламируют, означает, что вы можете оторваться от сообщений SOAP и вернуть любые структуры и формат данных. Это правда или ложь?WCF как веб-сервис с наименьшей возможной полезной нагрузкой

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

Итак, если вы используете пример api для Twitter, он был невероятно успешным, потому что вы можете запросить данные как JSON без каких-либо причудливых конвертов SOAP, взвешивающих данные и получающих наименьшее количество байтов для представления данных, которые вы хотите , Таким образом, мобильное приложение, работающее на устройстве с плохим подключением, которое использует данные Twitter, может использовать минимальную пропускную способность. Кроме того, шаблон Twitter, Facebook или любой из более успешных публичных api - это настраиваемая структура данных в JSON и/или XML и не завернутая в SOAP-конверт (хотя я мог ошибаться ... это всего лишь мое впечатление).

Как вы это сделаете в WCF? Вам нужно перепрыгнуть через обручи, чтобы сообщить WCF, что «просто верните этот текст ... не беспокойтесь о конверте SOAP», или это простой вариант конфигурации?

ответ

2

Есть несколько вариантов конфигурации, которые можно установить, чтобы удалить SOAP из WCF. Самое простое - использовать WebServiceHost, а не обычный класс ServiceHost для размещения ваших сервисов. Он устанавливает большинство параметров, которые вы хотите. У Джастина Смита есть good post that contrasts WebServiceHost and ServiceHost.

Хотя кажется, что вы больше обеспокоены отправкой полезной нагрузки POX (простой старый XML), что некоторые из принципов REST (сопоставление URL-адресов и методы HTTP), вы можете найти полезную книгу Jon Flander RESTful .NET. Вот overview of Chapter 1.

Также ознакомьтесь с REST Starter Kit от Microsoft, в котором есть множество примеров того, как выполнять общие веб-ориентированные задачи с помощью WCF.

И чтобы ответить на другую часть вашего вопроса, я обнаружил, что использование JSON приводит к гораздо меньшей нагрузке, чем XML, но при этом имеет достойную поддержку в WCF.

+0

Спасибо ... Я, вероятно, возьму копию книги, которую вы связали. – Rich

Смежные вопросы