Какова цель сервисной библиотеки WCF? - PullRequest
27 голосов
/ 14 сентября 2009

Какова цель сервисной библиотеки WCF? Я понимаю, что если вы создаете службу, размещенную на IIS, вы создаете веб-проект, а если вы размещаете самостоятельно, создайте .exe.

Что такое реальный сценарий использования WCF в качестве DLL?

Ответы [ 3 ]

37 голосов
/ 09 сентября 2012

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

Подавляющее большинство служб WCF размещаются в виде веб-служб и никогда не будут развернуты другим способом.

Вот три преимущества использования приложения-службы WCF по сравнению с библиотекой классов WCF:

  1. Если вы создадите свой веб-сервис как библиотеку классов, файлы конфигурации будут файлами app.config, а не файлами web.config. Файлы App.config изначально не поддерживают несколько файлов конфигурации, а config преобразует, как это делают файлы web.config. Если вы хотите, чтобы config преобразовывал файлы app.config, вы должны использовать стороннее решение, такое как Slow Cheetah.

  2. Когда пришло время опубликовать свой сайт, если вы используете приложение-службу WCF, вы можете в полной мере воспользоваться Web Deploy (http://www.iis.net/downloads/microsoft/web-deploy), который является мощным и гибким способом публикации вашего решения в IIS.

  3. Если вы решите автоматизировать сборку и развертывание для непрерывной интеграции с TFS, придет время, когда вы захотите автоматизировать публикацию своей службы. Если вы используете службу WCF, вы можете настроить TFS для запуска Web Deploy, который объединит ваши файлы web.config в соответствии с целевой конфигурацией сборки, выполнит добавочную публикацию, разрешит публикацию без прав администратора на сервере и другие преимущества. Если вы используете библиотеку классов WCF, то вам придется написать собственное решение рабочего процесса для объединения файлов app.config, использования xCopy для развертывания и, как правило, более сложного процесса автоматизации развертывания.

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

20 голосов
/ 14 сентября 2009

Я бы всегда создал бы библиотеку WCF как библиотеку классов - это намного проще в использовании. У вас есть полная гибкость для того, чтобы либо разместить службу WCF внутри IIS (предоставив виртуальный каталог и файл .svc внутри него), либо написать собственный EXE-файл и ссылаться на него в службе классов в библиотеке классов.

Помещение службы WCF непосредственно в веб-проект кажется очень плохой идеей и может быть полезно только для очень простых учебных целей - просто чтобы показать, как начать работу. Я бы никогда не сделал это для «живой» системы.

Марк

10 голосов
/ 14 сентября 2009

«Приложение-служба WCF» само по себе является прямое использование веб-сервиса по технологии WCF (которая похожа на разработка веб-службы ASP.NET). "Сервисная библиотека WCF" с другой Рука - это скомпилированный компонент, который может быть развернут в качестве веб-службы или Служба Windows или даже как часть индивидуальное хостинг-приложение.

- Разработка библиотеки служб WCF и размещение ее в качестве веб-службы WCF

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