Tutorial: Crear y obtener acceso a los servicios WCF
Este tutorial muestra cómo crear un servicio sencillo de Windows Communication Foundation (WCF), cómo probarlo y, a continuación, cómo obtener acceso a él desde una aplicación de formularios Windows Forms.
Nota
Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.
Crear el servicio web
Para crear un servicio web
En el menú Archivo, elija Nuevo y haga clic en Proyecto.
En el cuadro de diálogo Nuevo proyecto, expanda el nodo Visual Basic o Visual C# y haga clic en WCF, seguido de Biblioteca de servicios WCF. Haga clic en Aceptar para abrir el proyecto.
Nota
Esto crea un servicio activo que se puede probar y al que se puede obtener acceso. En los dos pasos siguientes se muestra cómo se puede modificar el método predeterminado para utilizar un tipo de datos diferente. En una aplicación real, agregaría también sus propias funciones al servicio.
En el Explorador de soluciones, haga doble clic en IService1.vb o IService1.cs y localice la siguiente línea:
<OperationContract()> Function GetData(ByVal value As Integer) As String
[OperationContract] string GetData(int value);
Cambie el tipo del parámetro value a String:
<OperationContract()> Function GetData(ByVal value As String) As String
[OperationContract] string GetData(string value);
En el código anterior, tenga en cuenta los atributos <OperationContract()> o [OperationContract]. Estos atributos son obligatorios para cualquier método expuesto por el servicio.
En el Explorador de soluciones, haga doble clic en Service1.vb o Service1.cs y localice la siguiente línea:
Public Function GetData(ByVal value As Integer) As String Implements IService1.GetData Return String.Format("You entered: {0}", value) End Function
public string GetData(int value) { return string.Format("You entered: {0}", value); }
Cambie el tipo del parámetro de valor a String:
Public Function GetData(ByVal value As String) As String Implements IService1.GetData Return String.Format("You entered: {0}", value) End Function
public string GetData(string value) { return string.Format("You entered: {0}", value); }
Probar el servicio
Para probar un servicio WCF
Presione F5 para ejecutar el servicio. Se mostrará un formulario Cliente de prueba WCF y cargará el servicio.
En el formulario Cliente de prueba WCF, haga doble clic en el método GetData() en IService1. Se mostrará la ficha GetData.
En el cuadro Solicitar, seleccione el campo Valor y escriba Hello.
Haga clic en el botón Invocar. Si se muestra un cuadro de diálogo Advertencia de seguridad, haga clic en Aceptar. El resultado se mostrará en el cuadro Respuesta.
En el menú Archivo, haga clic en Salir para cerrar la ventana de prueba.
Obtener acceso al servicio
Para hacer referencia al servicio WCF
En el menú Archivo, elija Agregar y, después, haga clic en Nuevo proyecto.
En el cuadro de diálogo Nuevo proyecto, expanda el nodo Visual Basic o Visual C #, seleccione Windows y, a continuación, seleccione Aplicación de Windows Forms. Haga clic en Aceptar para abrir el proyecto.
Haga clic con el botón secundario en WindowsApplication1 y haga clic en Agregar referencia de servicio. Aparecerá el cuadro de diálogo Agregar referencia de servicio.
En el cuadro de diálogo Agregar referencia de servicio, haga clic en Detectar.
Service1 se mostrará en el panel Servicios.
Haga clic en Aceptar para agregar la referencia de servicio.
Para generar una aplicación cliente
En el Explorador de soluciones, haga doble clic en Form1.vb o Form1.cs para abrir el Diseñador de Windows Forms, si no está abierto.
En el Cuadro de herramientas, arrastre un control TextBox, un control Label y un control Button al formulario.
Haga doble clic en el Button y agregue el código siguiente en el controlador de evento Click:
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; }
En el Explorador de soluciones, haga clic con el botón secundario en WindowsApplication1 y haga clic en Establecer como proyecto de inicio.
Presione F5 para ejecutar el proyecto. Escriba texto y haga clic en el botón. La etiqueta se mostrará "Escribió:" y el texto que escribió.