Introducción a los servicios de Windows Communication Foundation en Visual Studio

Actualización: noviembre 2007

Visual Studio 2008 proporciona las herramientas necesarias para trabajar con Windows Communication Foundation (WCF), la tecnología de Microsoft para crear aplicaciones distribuidas. En este tema se proporciona una introducción a WCF desde una perspectiva de Visual Studio.

¿Qué es WCF?

Windows Communication Foundation (WCF) es un marco de trabajo unificado para crear aplicaciones distribuidas seguras, confiables, interoperables y por transacción. En versiones anteriores de Visual Studio, era posible la comunicación entre aplicaciones gracias a la existencia de varias tecnologías.

Para compartir información de tal forma que se pudiera tener acceso a ella desde cualquier plataforma, se usaría un servicio web (también conocido como servicio web ASMX). Para mover simplemente datos entre un cliente y servidor que se ejecutaban en el sistema operativo Windows, se usaría .NET Remoting. Para realizar comunicaciones por transacción, se usaría Enterprise Services (DCOM) o para un modelo en cola, se usaría Message Queue Server (también conocido como MSMQ).

WCF reúne la funcionalidad de todas esas tecnologías bajo un modelo de programación unificado. Así se simplifica la experiencia de desarrollar aplicaciones distribuidas.

Modelo de programación de WCF

El modelo de programación de WCF está basado en la comunicación entre dos entidades: un servicio WCF y un cliente WCF. El modelo de programación se encapsula en el espacio de nombres System.ServiceModel de .NET Framework.

WCF Service

Un servicio WCF está basado en una interfaz que define un contrato entre el servicio y el cliente. Está marcado con un atributo ServiceContractAttribute, como se muestra en el siguiente código:

<ServiceContract()> _
Public Interface IService1
    <OperationContract()> _
    Function GetData(ByVal Value As String) As String
End Interface

Defina las funciones o métodos expuestos por un servicio WCF y márquelos con un atributo OperationContractAttribute. Además, puede exponer los datos serializados marcando un tipo compuesto con un atributo DataContractAttribute. Esto habilita el enlace de datos en un cliente.

Después de definir una interfaz y sus métodos, se encapsulan en una clase que implementa la interfaz. Una clase de servicio WCF única puede implementar varios contratos de servicio.

Un servicio WCF se expone para el consumo a través de lo que se conoce como punto final. El punto final proporciona la única manera de comunicación con el servicio; no puede tener acceso al servicio a través de una referencia directa como lo haría con otras clases.

Un punto final está compuesto de una dirección, un enlace y un contrato. La dirección define la ubicación del servicio; ésta podría ser una dirección URL, una dirección FTP o una ruta de acceso local o de red. Un enlace define la manera de establecer comunicación con el servicio. Los enlaces de WCF proporcionan un modelo versátil para especificar un protocolo como HTTP o FTP, un mecanismo de seguridad como autenticación de Windows o nombres de usuario y contraseñas, y mucho más. Un contrato incluye las operaciones expuestas por la clase de servicio WCF.

Se pueden exponer varios puntos finales para un servicio WCF único. Esto permite a distintos clientes establecer comunicación con el mismo servicio de varias maneras. Por ejemplo, un servicio bancario podría proporcionar un punto final para empleados y otro para los clientes, cada uno mediante una dirección, enlace y/o contrato diferentes.

Cliente WCF

Un cliente WCF está compuesto de un proxy que habilita a una aplicación para poder establecer comunicación con un servicio WCF y un punto final que coincide con un punto final definido para el servicio. El proxy se genera en el cliente en el archivo app.config e incluye información sobre los tipos y métodos expuestos por el servicio. Para los servicios que exponen varios puntos finales, el cliente puede seleccionar el que mejor se ajuste a sus necesidades, por ejemplo, para establecer una comunicación a través de HTTP y usar la autenticación de Windows.

Una vez creado un cliente WCF, haga referencia al servicio en el código tal y como lo haría con cualquier otro objeto. Por ejemplo, para llamar al método GetData mostrado anteriormente, debería escribir un código similar al siguiente:

Dim client As New ServiceReference.Service1Client
Dim returnString As String

returnString = client.GetData("Hello")
MsgBox(returnString)

Herramientas WCF en Visual Studio

Visual Studio 2008 proporciona las herramientas de ayuda necesarias para crear tanto servicios WCF como clientes WCF. Para obtener un tutorial donde se muestran las herramientas, vea Tutorial: Crear y obtener acceso a los servicios WCF.

Crear y probar servicios WCF

Puede usar las plantillas WCF de Visual Studio como un fundamento para crear su propio servicio rápidamente. A continuación, puede usar el Host de servicio WCF y el Cliente de prueba WCF para depurar y probar el servicio. Estas herramientas juntas proporcionan tanto una depuración como un ciclo de prueba rápido y conveniente, además de eliminar el requisito de confirmación de un modelo de hospedaje en una fase temprana.

Plantillas WCF

Las plantillas WCF de Visual Studio proporcionan una estructura de clase básica para el desarrollo del servicio. Hay varias plantillas WCF disponibles en el cuadro de diálogo Agregar nuevo proyecto. Éstas incluyen proyectos de biblioteca de servicios WCF, sitios web de servicios WCF y plantillas de elemento de servicios WCF.

Al seleccionar una plantilla, se agregan los archivos para un contrato de servicios, una implementación del servicio y una configuración de servicio. Ya se han agregado los atributos necesarios y se ha creado un tipo de servicio sencillo "Hello World", y no tiene que escribir ningún código. Por supuesto, quizá desee agregar código que proporcione funciones y métodos a su servicio en un escenario real, pero las plantillas proporcionan el fundamento básico.

Para obtener más información sobre las plantillas WCF, vea Plantillas de Visual Studio para WCF..

Host de servicio WCF

Al iniciar el depurador de Visual Studio (presionando F5) para un proyecto del servicio WCF, se inicia automáticamente la herramienta Host de servicio WCF para hospedar el servicio de forma local. El Host de servicio WCF enumera los servicios en un proyecto del servicio WCF, carga la configuración del proyecto y crea instancias de un host para cada servicio que encuentra.

Mediante el Host de servicio WCF, puede probar un servicio WCF sin tener que escribir código adicional o confirmar a un host concreto durante el desarrollo.

Para obtener más información sobre el Host de servicio WCF, vea Host de servicio WCF (WcfSvcHost.exe).

Cliente de prueba WCF

La herramienta Cliente de prueba WCF le permite incluir parámetros de pruebas, enviar esos parámetros a un servicio WCF y ver la respuesta que devuelve el servicio. Proporciona una experiencia de pruebas de servicios adecuada al combinarla con el Host de servicio WCF.

Al presionar F5 para depurar un proyecto de servicio WCF, se abre el Cliente de prueba WCF y muestra una lista de los puntos finales de servicios definidos en el archivo de configuración. Puede probar los parámetros e iniciar el servicio, y repetir este proceso para probar y validar continuamente su servicio.

Para obtener más información sobre el Cliente de prueba WCF, vea Cliente de prueba de WCF (WcfTestClient.exe).

Obtener acceso a los servicios WCF en Visual Studio

Visual Studio 2008 simplifica la tarea de crear clientes WCF, ya que genera automáticamente un proxy y un punto final para los servicios que se agregan mediante el cuadro de diálogo Agregar referencia de servicio. Toda la información de configuración necesaria se agrega al archivo app.config. La mayor parte del tiempo, todo lo que tendrá que hacer es crear instancias del servicio para usarlo.

El cuadro de diálogo Agregar referencia de servicio le permite escribir la dirección de un servicio o buscar un servicio definido en la solución. El cuadro de diálogo devuelve una lista de los servicios y las operaciones proporcionadas por esos servicios. También le permite definir el espacio de nombres por el que se referirá a los servicios en el código.

El cuadro de diálogo Configurar referencia de servicio le permite personalizar la configuración para un servicio. Puede cambiar la dirección de un servicio, especificar el nivel de acceso, el comportamiento asincrónico y los tipos de contrato de mensaje, y volver a usar el tipo de configuración.

Para obtener más información sobre cómo usar los servicios WCF, vea Usar servicios de WCF en Visual Studio.

Vea también

Tareas

Tutorial: Crear y obtener acceso a los servicios WCF

Otros recursos

Usar servicios de WCF en Visual Studio

Utilización de las herramientas de desarrollo de WCF

Servicios de Windows Communication Foundation y servicios de datos de ADO.NET