Servicios de Windows Communication Foundation y servicios de datos WCF en Visual Studio

Visual Studio 2008 proporciona las herramientas necesarias para trabajar con Windows Communication Foundation (WCF) y Servicios de datos de WCF, tecnologías de Microsoft para crear aplicaciones distribuidas. En este tema se proporciona una introducción a los servicios 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.

Qué son los Servicios de datos de WCF

Servicios de datos de WCF son servicios que interactúan directamente con una base de datos, permitiendo devolver datos mediante el uso de verbos HTTP estándar como GET, POST, PUT o DELETE. En general, Servicios de datos de WCF es una buena opción para las aplicaciones que se utilizan para crear, actualizar o eliminar registros en una base de datos. Para obtener más información, vea ADO.NET Data Services Framework.

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
[ServiceContract]
public interface IService1
<OperationContract()>
Function GetData(ByVal value As String) As String
[OperationContract]
string GetData(string value);

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:

  Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
      Dim client As New ServiceReference1.Service1Client
      Dim returnString As String

      returnString = client.GetData(TextBox1.Text)
      Label1.Text = returnString
  End Sub
private void button1_Click(System.Object sender, System.EventArgs e)
{
    ServiceReference1.Service1Client client = new
        ServiceReference1.Service1Client();
    string returnString;

    returnString = client.GetData(textBox1.Text);
    label1.Text = 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 WCF Visual Studio Templates..

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 WCF Service Host (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 WCF Test Client (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. En la mayoría de los casos, lo único que debe hacer es crear una instancia del servicio para utilizarlo.

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.

Temas relacionados

Título

Descripción

Tutorial: Crear y obtener acceso a los servicios WCF

Se proporciona una demostración paso a paso sobre cómo crear y utilizar servicios de WCF en Visual Studio.

Tutorial: Crear y obtener acceso a un servicio de datos de WCF en Visual Studio

Proporciona una demostración paso a paso de cómo crear y utilizar Servicios de datos de WCF en Visual Studio.

Using the WCF Development Tools

Se explica cómo crear y probar servicios de WCF en Visual Studio.

Cómo: Agregar, actualizar o quitar una referencia de servicio

Describe cómo agregar, actualizar o quitar los servicios WCF de un proyecto.

Cómo: Agregar, actualizar o quitar una referencia de servicio de datos de WCF

Describe cómo se puede hacer referencia a, y utilizar, Servicios de datos de WCF en Visual Studio.

Cómo: Agregar una referencia a un servicio web XML

Describe cómo agregar a un proyecto una referencia a un servicio Web XML (ASMX).

Cómo: Seleccionar un extremo de servicios

Describe cómo seleccionar un punto final para un servicio WCF que expone varios puntos finales.

Cómo: Llamar a un método de servicio de forma asincrónica

Describe cómo llamar a un servicio WCF de forma asincrónica.

Cómo: Enlazar datos devueltos por un servicio

Describe cómo permitir el enlace de datos a un servicio WCF.

Cómo: Configurar un servicio para volver a utilizar tipos existentes

Describe cómo habilitar o deshabilitar el uso compartido de tipo para un servicio WCF.

Solucionar problemas de referencias de servicio

Presenta algunos de los errores más frecuentes que pueden ocurrir durante referencias a servicios e indica cómo evitarlos.

Depurar servicios WCF

Describe técnicas y problemas de depuración comunes que pueden aparecer en la depuración de servicios de WCF.

Información general sobre el servicio de autenticación de Windows Communication Foundation

Describe cómo utilizar WCF para proporcionar un servicio de función a un sitio web.

Messaging in the .NET Compact Framework

Describe la compatibilidad para la capa de mensajería de WCF en .NET Compact Framework.

Tutorial: Crear una aplicación de datos con n niveles

Proporciona instrucciones paso a paso para crear un conjunto de datos con tipo y separar la TableAdapter y el código del conjunto de datos en varios proyectos.

Agregar referencia de servicio (Cuadro de diálogo)

Describe los elementos de la interfaz de usuario del cuadro de diálogo Agregar referencia de servicio.

Configurar referencia de servicio (Cuadro de diálogo)

Describe los elementos de la interfaz de usuario del cuadro de diálogo Configurar referencia de servicio.

Referencia

System.ServiceModel

System.Data.Services