Tutorial: Definición de un contrato de servicio de Windows Communication Foundation

En este tutorial se describe la primera de las cinco tareas necesarias para crear una aplicación Windows Communication Foundation (WCF) básica. Para obtener información general sobre los tutoriales, consulte Tutorial: Introducción a las aplicaciones Windows Communication Foundation.

Al crear un servicio WCF, su primera tarea consiste en definir un contrato de servicio. El contrato de servicio especifica qué operaciones admite este. Una operación se puede considerar un método de servicio Web. Para crear contratos de servicio, defina una interfaz de C# o Visual Basic. Una interfaz tiene las siguientes características:

En este tutorial, aprenderá a:

  • Cree un proyecto de biblioteca de servicios WCF.
  • Defina una interfaz del contrato de servicio.

Crear un proyecto de biblioteca de servicios WCF y definir una interfaz de contrato de servicio

  1. Abra Visual Studio como administrador. Para ello, seleccione el programa de Visual Studio en el menú Inicio y, a continuación, seleccione Más>Ejecutar como administrador en el menú contextual.

  2. Cree un proyecto de biblioteca de servicios WCF.

    1. En el menú Archivo, seleccione Nuevo>Proyecto.

    2. En el cuadro de diálogo Nuevo proyecto, en el lado izquierdo, expanda Visual C# o Visual Basic y, a continuación, seleccione la categoría WCF. Visual Studio muestra una lista de plantillas de proyecto en la sección central de la ventana. Seleccione Biblioteca de servicios WCF.

      Nota

      Si no ve la categoría de plantilla de proyecto de WCF, es posible que tenga que instalar el componente Windows Communication Foundation de Visual Studio. En el cuadro de diálogo Nuevo proyecto, seleccione el vínculo Abrir el Instalador de Visual Studio situado en el lado izquierdo. Seleccione la pestaña Componentes individuales y, a continuación, busque y seleccione Windows Communication Foundation en la categoría Actividades de desarrollo. Elija Modificar para empezar a instalar el componente.

    3. En la sección inferior de la ventana, escriba GettingStartedLib como Nombre y GettingStarted como Nombre de la solución.

    4. Seleccione Aceptar.

      Visual Studio crea el proyecto, que tiene tres archivos: IService1.cs (o IService1.vb para un proyecto de Visual Basic), Service1.cs (o Service1.vb para un proyecto de Visual Basic) y App.config. Visual Studio define estos archivos de la siguiente manera:

      • El archivo IService1 contiene la definición predeterminada del contrato de servicio.
      • El archivo Service1 contiene la implementación predeterminada del contrato de servicio.
      • El archivo App.config contiene la información de configuración necesaria para cargar el servicio predeterminado con la herramienta Host de servicios WCF de Visual Studio. Para obtener más información sobre la herramienta Host de servicios WCF, consulte Host de servicios WCF (WcfSvcHost.exe).

      Nota

      Si ha instalado Visual Studio con la configuración del entorno del desarrollador de Visual Basic, es posible que la solución esté oculta. Si este es el caso, seleccione Opciones en el menú Herramientas y, a continuación, seleccione Proyectos y soluciones>General en la ventana Opciones. Seleccione Mostrar solución siempre. Además, compruebe que Guardar nuevos proyectos al crearlos está seleccionado.

  3. En el Explorador de soluciones, abra el archivo IService1.cs o IService1.vb y reemplace su código por el código siguiente:

    using System;
    using System.ServiceModel;
    
    namespace GettingStartedLib
    {
            [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
            public interface ICalculator
            {
                [OperationContract]
                double Add(double n1, double n2);
                [OperationContract]
                double Subtract(double n1, double n2);
                [OperationContract]
                double Multiply(double n1, double n2);
                [OperationContract]
                double Divide(double n1, double n2);
            }
    }
    
    Imports System.ServiceModel
    
    Namespace GettingStartedLib
    
        <ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
        Public Interface ICalculator
    
            <OperationContract()> _
            Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
        End Interface
    End Namespace
    

    Este contrato define una calculadora en línea. Observe que la interfaz ICalculator se marca con el atributo ServiceContractAttribute (se simplifica como ServiceContract). Este atributo define un espacio de nombres para eliminar la ambigüedad del nombre del contrato. El código marca cada operación de calculadora con el atributo OperationContractAttribute (se simplifica como OperationContract).

Pasos siguientes

En este tutorial, ha aprendido a:

  • Cree un proyecto de biblioteca de servicios WCF.
  • Defina una interfaz del contrato de servicio.

Siga con el siguiente tutorial para aprender a implementar el contrato de servicio de WCF.