Что плохого в добавлении ссылки на службу при использовании WCF в Silverlight? - PullRequest
4 голосов
/ 02 июня 2009

В этой статье говорится о потреблении служб WCF в Silverlight, но утверждается:

Не будет никаких прокси, сгенерированного кода, сторонних утилит и отвратительного использования "Добавить ссылку на службу".

Что плохого в том, что я добавил сервисную ссылку в свой проект Silverlight? Есть ли скрытые накладные расходы? Или это случай Fear Of Auto Magic со стороны автора?

Ответы [ 2 ]

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

Обоснование этого утверждения автора выглядит так:

Для начала позвольте мне напомнить всем, что вам никогда не следует использовать «Добавить ссылку на службу» в Visual Studio для создания волшебного клиента службы. Код невероятно многословен, труден для управления, изменения склонны к перезаписи, и он почти всегда используется в качестве предлога, чтобы фактически не изучать WCF. Есть несколько вещей хуже, чем иметь дело с людьми, которые знают, что они знают продукт просто потому, что они знают, как пользоваться мышью.

Как человек, который полагался на «Добавление справочника услуг» исключительно в Silverlight, я думаю, что это немного перебор. Я согласен, что автоматически сгенерированный код является многословным, и его не следует редактировать, потому что он будет перезаписан. Однако с точки зрения управляемости это не становится проще, в ответ на изменение моего сервиса требуется один клик, чтобы восстановить синхронизацию сервиса.

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

«Добавление справочника услуг» было хорошо для меня в течение 1,5 лет, и, конечно, есть полезные знания о внутренностях WCF, но нет ничего плохого в том, чтобы иметь быстрый и простой способ и щелкнуть способом, с которого можно начать в Visual Studio.

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

У "Добавление ссылки на службу" в Silverlight есть некоторые проблемы прямо сейчас ... файл конфигурации обновляется при каждом обновлении службы.

Это идет немного дальше, чем "авто-магия", которую люди считают проблемой. Во-первых, со ссылкой на сервис вы «связаны» с сервисом и его методами, которые он предоставляет. Если вы заново сгенерируете сервис, клиент должен сделать то же самое. Создание сервиса динамически облегчает эту проблему. Кроме того, с помощью абстракции / отражения / внедрения зависимостей вы теперь отсоединили сервисные ссылки.

Я не думаю, что ссылки на сервисы плохие, однако концепции WCF и веб от этого отходят. Например, в стандартах WCF REST нет «ссылки на службу», которую вы потребляете ... это просто таблицы маршрутизации URL. Все больше и больше людей рекомендуют это как стандарт, например, Джувал Лоуи (idesign.net и автор нескольких книг WCF) также рекомендует не использовать ссылки на сервисы.

...