Quel est le but de la bibliothèque de services WCF?

Quel est le but de la bibliothèque de services WCF? Je comprends que si vous construisez un service hébergé IIS, vous créez un projet web, si auto-hébergé-créer un .EXE.

Qu'est-ce qu'un scénario réel pour utiliser WCF comme DLL?

26
demandé sur Luke Girvin 2009-09-14 22:08:31

3 réponses

" Application de Service WCF " elle-même est un application de service web direct comptant sur la technologie WCF (qui est similaire à le ASP.NET développement de services web). "Bibliothèque de services WCF" de l'autre la main est un composant compilé qui peut être déployé en tant que service web ou Service Windows ou même dans le cadre d'un personnalisée d'hébergement d'applications.

- développer une bibliothèque de services WCF et L'héberger en tant que service Web WCF

9
répondu Justin Niessner 2009-09-14 18:12:32

S'il est vrai que la création d'un service WCF en tant que Bibliothèque de classes vous donne plus de flexibilité, cette flexibilité a un coût, et c'est une erreur de supposer que la solution plus flexible est toujours la solution préférée, ou que la solution moins flexible est enfantine ou ne convient qu'à des "fins pédagogiques simples".

La grande majorité des services WCF sont hébergés en tant que services web et ne seront jamais déployés autrement.

Voici trois avantages de l'utilisation D'un WCF application de service par opposition à une bibliothèque de classes WCF:

  1. Si vous créez votre service web en tant que Bibliothèque de classes, les fichiers de configuration seront app.fichiers de configuration plutôt que web.les fichiers de configuration. App.les fichiers de configuration ne prennent pas en charge nativement plusieurs fichiers de configuration et config transforme le web.les fichiers de configuration font. Si vous voulez des transformations de configuration sur votre application.fichiers de configuration vous devez utiliser une solution tierce telle que Slow Cheetah.

  2. Quand il est temps de publier votre site, si vous utilisez une application de service WCF, vous pouvez profiter pleinement de Web Deploy (http://www.iis.net/downloads/microsoft/web-deploy) qui est un moyen puissant et flexible de publier votre solution sur IIS.

  3. Si vous décidez d'automatiser votre build et de déployer pour une intégration continue avec TFS, il viendra un moment où vous voudrez automatiser la publication de votre service. Si vous utilisez un service WCF, vous pouvez configurer TFS pour exécuter Web Deploy, qui fusionnera votre site web.config fichiers selon la configuration de génération cible, effectuer une publication incrémentielle, activer la publication sans droits d'administrateur sur le serveur et d'autres avantages. Si vous utilisez une bibliothèque de classes WCF, vous devrez écrire une solution de workflow personnalisée pour fusionner l'application.les fichiers de configuration, utilisent xCopy pour le déploiement et ont généralement plus de mal à automatiser le déploiement.

En résumé, la solution plus flexible, comme c'est souvent le cas, se fait au prix de perdre un outil spécifique soutien. Si, comme la plupart des solutions de service WCF, votre application sera toujours hébergée dans IIS, vous pouvez envisager de profiter de cette prise en charge en utilisant une application de service WCF par opposition à une bibliothèque de classes WCF.

36
répondu Nigel Shaw 2012-09-09 14:13:45

Je voudrais Toujours Créer une bibliothèque WCF en tant que Bibliothèque de classe - c'est beaucoup plus facile à utiliser. Vous avez une flexibilité totale pour héberger votre service WCF dans IIS (en fournissant un répertoire virtuel et un .fichier svc à l'intérieur), ou vous pouvez écrire votre propre EXE auto-hébergeur et référencer le service WCF dans la bibliothèque de classes à partir de celui-ci.

Mettre un service WCF directement dans un projet web semble être une très mauvaise idée et pourrait seulement être utile à des fins pédagogiques très simples - juste pour montrer comment commencer. Je ne ferais jamais cela pour un système "en direct".

Marc

19
répondu marc_s 2009-09-14 19:01:51