Подтвердить что ты не робот

Какова цель Библиотеки услуг WCF?

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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

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

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

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

Ответ 3

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

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

Марк