WCF El contrato

Despues de intertar explicar que es el ABC en WCF, vamos a meternos en harina.


Lo primero que debemos hacer es establecer el contrato, esto es, que metodos va a exponer nuestro servicio. Miguel Jimenez me dio una comparación muy buena. «Imaginate que tu servicio es una tintoreria, el contrato en ese caso seria Limpiar un traje, Planchar… todo lo que nos ofrece la tintoreria es un contrato».


Para establecer el contrato en WCF debemos escribir una Interface que es la manera de representar los contratos.


Si recordamos una interfaz en .NET se escribia


public interface IDerivativesCalculator



{

     decimal CalculateDerivative(

                                 string[] symbols,

                                 decimal[] parameters,

                                 string[] functions);

     void DoNothing();

}


En la que indicamos que operaciones debe tener una clase que implemente esta Interfaz. Para convertir esta interfaz en un contrato de WCF solo tenemos que incluir la libreria System.ServiceModel y utilizar atributos.


El primer atributo a utilizar es [ServiceContract], este atributo indica que el interfaz es un contrato de WCF. Ahora debemos de indicar que operaciones soporta este contrato, para ello utilizamos el atributo [OperationContract] en cada uno de los metodos que queremos que el servicio exponga.


El codigo anterior lo transformariamos en


 


[ServiceContract]


public interface IDerivativesCalculator



{

   [OperationContract

    decimal CalculateDerivative(

                                 string[] symbols,

                                 decimal[] parameters,

                                 string[] functions);

     void DoNothing();

}


Como podemos ver hemos definido el contrato IDerivativesCalculator que expone el metodo CalculateDerivative y debemos señalar que el metodo DoNothing no se expondria porque no tiene el atributo [OperationContract].

 


Technorati tags:

2 comentarios sobre “WCF El contrato”

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *