¿Cuál es la diferencia entre una aplicación de servicio WCF y una biblioteca de servicio WCF?

118

Estoy desarrollando un servicio web WCF y utilicé la plantilla de aplicación de servicio WCF para hacerlo.

¿La creación de una "Aplicación de servicio WCF" cumple con este requisito? ¿Cuáles son las ventajas de crear una biblioteca de servicios WCF sobre una aplicación de servicio WCF?

Ashish Ashu
fuente

Respuestas:

148

Una aplicación de servicio incluye un servidor de sitio web ya configurado para usted. Una biblioteca de servicios es una biblioteca de servicios a la que un host puede hacer referencia e iniciar.

Si comienza con una biblioteca de servicios (recomendada), puede elegir cualquier host que desee (un servicio de Windows, IIS / ASP.NET o incluso una aplicación de consola) y simplemente hará referencia a su biblioteca desde su nuevo host. La elección de una aplicación de servicio limita su host a solo IIS / ASP.NET (aunque esto podría estar bien para sus propósitos, pero limitará los protocolos que puede usar).

Editar : Los cambios en IIS desde que escribí esto permiten una variedad más amplia de protocolos en los servicios activados de ASP.NET, por lo que elegir una aplicación de servicio es mucho menos limitante que antes.

Anderson Imes
fuente
1
¿Alguien tiene información sobre los nuevos protocolos / enlaces disponibles cuando se aloja en IIS?
Allen Rice
@AndersonImes Sé que esta es una publicación antigua, pero espero que puedas ayudar. He estado buscando en todas partes y no puedo encontrar si el servicio WCF está destinado a reemplazar el servicio web en .NET 3.5 y, por lo tanto, ¿por qué se eliminó la plantilla en .NET 4? Gracias. :)
Chiramisu
2
@Chiramisu WCF ofrece muchas más ventajas y flexibilidad ... Las encontré muy útiles: ejemplo de Codeproject , pregunta de
Stackoverflow
@Sam Gracias Sam, muy útil. Entonces, ¿básicamente WCF puede hacer todo lo que puede hacer un servicio web y más? Cualquier limitación me pregunto ... :)
Chiramisu
1
@Chiramisu encantado de ayudar! Siempre hay limitaciones, pero WCF tiene muchas menos limitaciones que un servicio web típico, me imagino.
StoriKnow
10

Si todo lo que tienes es un proyecto, solo veo una complejidad adicional si te separas por el gusto de hacerlo. Usé una biblioteca cuando tuve algunos casos de uso particulares en los que tuve que alojar tanto en un servicio de Windows como en IIS.

Para IIS, puede mover las clases y las interfaces a una biblioteca, pero mantener sus archivos .SVC en el proyecto web. Debe editar los archivos .SVC para que apunten a las clases debidamente calificadas.

Gary
fuente