Упакуйте клиент WCF в сборку для потребителей - PullRequest
1 голос
/ 26 мая 2011

Я размещаю службу WCF в организации, и я надеялся встроить клиент в сборку DLL для упаковки и передачи всем, кто хочет использовать службу.

Я мог бы создать библиотеку классов и просто добавить ссылку на службу, создать ее и распространить. Какие-нибудь рекомендации по альтернативному подходу?

Ответы [ 4 ]

1 голос
/ 26 мая 2011

Я делал нечто подобное в моей предыдущей организации. У меня также было дополнительное требование, чтобы библиотека была видимой для COM, чтобы устаревшее приложение C ++ могло использовать API.

Я дошел до того, что не запрашивал у клиента какую-либо конфигурацию WCF, кроме передачи множества параметров через API (URL службы, тайм-ауты и т. Д.) WCF был настроен программно. Я был в очень строго контролируемой среде, где я точно знал клиентов библиотеки и мог влиять на их дизайн. Этот подход работал для меня, но, как говорится, ваш пробег может отличаться.

0 голосов
/ 27 мая 2011

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

Знают ли ваши пользователи, как использовать WCF?Если нет, включите прокси-класс, который создает экземпляр канала и вызывает службу.

Я не вижу смысла в предоставлении сборки, которая просто включает код, сгенерированный svcutil.Почему бы просто не дать вашим пользователям WSDL, и тогда они сами смогут сгенерировать этот код?Распределение шаблонов не кажется хорошей идеей.

0 голосов
/ 26 мая 2011

На моей предыдущей работе мы всегда так делали. У нас был бы библиотечный проект, который не содержал ничего, кроме генерации прокси SVCUTIL и файла конфигурации для него.

Таким образом, другие наши проекты могут использовать эту библиотеку, и у нас будет только одно поколение прокси. Отлично подходит для модели SOA.

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

0 голосов
/ 26 мая 2011

Каким будет сервисный хост?Если это будет HTTP-приложение, его использование в приложении ASP.NET имеет большой смысл.В противном случае, да, запустите библиотеку классов.

ОБНОВЛЕНИЕ на основе комментария

Упаковка клиента действительно зависит от того, что получатель сделает с ним.Если вы нацелены на разработчиков или на существующие собственные приложения, то библиотека - отличный вариант (хотя я бы, вероятно, обернул ее в .msi, чтобы опыт был знаком пользователям).Если вам нужен пользовательский интерфейс, то, очевидно, вы захотите подумать о подходящей структуре пользовательского интерфейса (WPF, Silverlight, WinForms и т. Д.)

...