2010-03-12 10 views
23

¿Qué hace una biblioteca de servicio WCF que no hace una biblioteca de clases normal?WCF Service Library contra Class Library tipos de proyecto

Editar: He publicado mi propia respuesta. ¿Me estoy perdiendo algo? ¿Son fundamentalmente ambas bibliotecas de clase con algunas clases de plantilla agregadas?

+2

@qntmfred: "¿Son fundamentalmente ambas bibliotecas de clase con algunas clases de plantilla agregadas?", Todo es más o menos un proyecto de biblioteca de clase con clases de plantilla y o la configuración adicional agregada. –

Respuesta

25

Creé ambos y los comparé. Esto es lo que encontré.

Biblioteca Servicio WCF

  • añade referencias a System.Runtime.Serialization y System.ServiceModel. no contiene una referencia al System.Data.DataSetExtensions como lo hace la Biblioteca de clases.
  • contiene las clases de servicio de muestra IService1, CompositeType y Service1
  • añade App.config con un wsHttpBinding y un extremo de servicio mexHttpBinding
  • añade /client:"WcfTestClient.exe" como una opción de línea de comandos de depuración en las propiedades del proyecto
  • añade una pestaña en WCF Options las propiedades del proyecto. Esta pestaña contiene una opción para iniciar un host de servicio WCF al depurar otro proyecto en la misma solución
  • habilita una opción Sign the ClickOnce manifests en la pestaña Firma de las propiedades del proyecto. esta opción está deshabilitada en la Biblioteca de clases
+0

que muy bien resume lo que hace la Biblioteca de Servicios WCF, de hecho! –

5

También ejecuta la utilidad Host del servicio WCF en F5. El conmutador /client que notó se pasa al host del servicio WCF para indicarle qué cliente debe iniciar. En este caso, se le indica que inicie WCF Test Client.

Esto le da una muy buena F5 experiencia. Establezca puntos de interrupción en su servicio, marque F5, use Test Client para invocar su operación de servicio, y se golpearán sus puntos de interrupción.

+1

@Marc: Tenía demasiada prisa. Verifique la edición para ver a qué me refería (que el conmutador/client se pasa al host de prueba para que pueda iniciar el cliente) –

+0

Ícono del botón Cool. – Benny

+0

@Benny: eso es solo 'F5'. Para uso ocasional solamente. –

2

He probado en el proyecto VS 2010, utilizando la biblioteca de clases como tipo de alojamiento WCF, pero no genera clases wsdl o proxy.

proyecto WCF es diferente a la biblioteca de clases normal, ya que añade muchas dlls en solución referencias/proyecto y también se añade (Service1.svc) plantilla, que necesita para desplegar en el servidor IIS y 2 para crear archivos de salida usando svcutil.exe.

0

Como se describe here:

En el primer elemento PropertyGroup hacer lo siguiente:

Busque el elemento ProductVersion.Actualizar la versión del producto para que coincida con lo siguiente:

<ProductVersion>8.0.50727</ProductVersion> 

A continuación el elemento AssemblyName, añadir los siguientes elementos:

<ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

<StartArguments>/client:"WcfTestClient.exe"</StartArguments> 

Vaya al final del archivo, y por debajo del elemento de importación añadir la siguiente extensión :

<ProjectExtensions> 
    <VisualStudio> 
     <FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}"> 
     <WcfProjectProperties> 
      <AutoStart>True</AutoStart> 
     </WcfProjectProperties> 
     </FlavorProperties> 
    </VisualStudio> 
    </ProjectExtensions>