Mentre è vero che la creazione di un servizio WCF come libreria di classi offre una maggiore flessibilità, che la flessibilità ha un costo, ed è un errore ritenere che la soluzione più flessibile è sempre la soluzione preferita, o che la soluzione meno flessibile è infantile o adatta solo a "semplici scopi didattici".
La stragrande maggioranza dei servizi WCF è ospitata come servizi Web e non verrà mai utilizzata in altro modo.
Qui sono tre vantaggi di utilizzare un'applicazione di servizio WCF in contrapposizione a una libreria di classi WCF:
Se si crea il servizio web come libreria di classi i file di configurazione saranno file App.config, piuttosto che file web.config. I file App.config non supportano in modo nativo più file di configurazione e config trasforma il modo in cui i file web.config fanno. Se vuoi trasformare le trasformazioni sui tuoi file app.config devi usare una soluzione di terze parti come Slow Cheetah.
Quando è il momento di pubblicare il sito, se si utilizza un'applicazione di servizio WCF è possibile sfruttare appieno Web Deploy (http://www.iis.net/downloads/microsoft/web-deploy) che è un modo potente e flessibile per pubblicare la tua soluzione su IIS.
Se si decide di automatizzare la generazione e l'implementazione per un'integrazione continua con TFS, arriverà il momento in cui si vorrà automatizzare la pubblicazione del proprio servizio. Se si utilizza un servizio WCF, è possibile configurare TFS per eseguire Web Deploy, che unirà i file web.config in base alla configurazione di build di destinazione, eseguirà la pubblicazione incrementale, abilita la pubblicazione senza diritti di amministratore sul server e altri vantaggi. Se si utilizza una libreria di classi WCF, sarà necessario scrivere una soluzione di flusso di lavoro personalizzata per unire l'app.i file di configurazione, utilizzare xCopy per la distribuzione e, in genere, avere un tempo più rigido per automatizzare la distribuzione.
In sintesi, la soluzione più flessibile, come spesso accade, ha il costo di perdere il supporto di uno strumento specifico. Se, come la maggior parte delle soluzioni di servizio WCF, la tua applicazione sarà sempre ospitata in IIS, potresti prendere in considerazione l'opportunità di sfruttare questo supporto utilizzando un'applicazione di servizio WCF anziché una libreria di classi WCF.
fonte
2012-09-09 14:13:45
Ok, se la libreria di servizi WCF può essere distribuita su IIS (grazie per il collegamento) perché dovrei mai creare un WCF come progetto web? Sembra che la biblioteca di servizi sia una scelta migliore. Quando useresti ciascuno? – Vitalik