Quelle est la différence entre une application de service WCF et une bibliothèque de service WCF?

118

Je développe un service Web WCF et j'ai utilisé le modèle d'application de service WCF pour ce faire.

La création d'une «application de service WCF» répond-elle à cette exigence? Quel est l'avantage de créer une bibliothèque de services WCF sur une application de service WCF?

Ashish Ashu
la source

Réponses:

148

Une application de service comprend un hébergeur de site Web déjà configuré pour vous. Une bibliothèque de services est une bibliothèque de services qu'un hôte peut référencer et démarrer.

Si vous commencez avec une bibliothèque de services (recommandé), vous pouvez ensuite choisir n'importe quel hôte de votre choix (un service Windows, IIS / ASP.NET ou même une application console) et vous ne feriez que référencer votre bibliothèque à partir de votre nouvel hôte. Le choix d'une application de service limite votre hôte à IIS / ASP.NET uniquement (bien que cela puisse convenir à vos besoins, mais limitera les protocoles que vous pouvez utiliser).

Edit : Les changements dans IIS depuis que j'ai écrit ceci permettent une plus grande variété de protocoles sur les services activés par ASP.NET, donc le choix d'une application de service est beaucoup moins limitatif qu'avant.

Anderson Imes
la source
1
Quelqu'un a-t-il des informations sur les nouveaux protocoles / liaisons disponibles lors de l'hébergement sur IIS?
Allen Rice
@AndersonImes Je sais que c'est un ancien post, mais j'espère que vous pourrez aider. J'ai cherché partout et je ne peux pas trouver si le service WCF est destiné à remplacer le service Web dans .NET 3.5 et donc pourquoi le modèle a été supprimé dans .NET 4? Merci. :)
Chiramisu
2
@Chiramisu WCF offre beaucoup plus d'avantages et de flexibilité ... J'ai trouvé ceux-ci très utiles: exemple Codeproject , question Stackoverflow
StoriKnow
@Sam Merci Sam, très utile. Donc, fondamentalement, WCF peut faire tout ce qu'un service Web peut et plus? Toutes les limitations que je me demande ... :)
Chiramisu
1
@Chiramisu heureux de vous aider! Il y a toujours des limitations, mais WCF a beaucoup moins de limitations qu'un service Web typique, j'imagine.
StoriKnow
10

Si tout ce que vous avez est le seul projet, je ne vois que la complexité supplémentaire si vous vous séparez pour le diable. J'ai utilisé une bibliothèque lorsque j'avais des cas d'utilisation particuliers où je devais héberger à la fois dans un service Windows et dans IIS.

Pour IIS, vous pouvez déplacer les classes et les interfaces vers une bibliothèque mais conserver vos fichiers .SVC dans le projet Web. Vous devez modifier les fichiers .SVC pour pointer vers les classes correctement qualifiées.

Gary
la source