CONTRATO DE DATOS Y CONSUMO MVC   

DEFINICIÓN: Un contrato de datos es un acuerdo formal entre un servicio y un cliente que abstractamente describe los datos que se van a intercambiar para comunicarse, el cliente y el servicio no tienen que compartir los mismos tipos, solo los mismos contratos de datos. Un contrato de datos define con precisión, para cada parámetro o tipo de valor devuelto, qué datos se serializan se convierten en XML para su intercambio.

Puntos Importantes

  • (WCF) están diseñadas para interoperar con el número más amplio posible de aplicaciones cliente tanto en plataformas Microsoft y como en plataformas no Microsoft
  • Marcar los atributos con [ServiceContract], [OperationContract] ,[DataContract] y [DataMember] para crear un contrato de datos, que es la parte del contrato de servicios que describe los datos que intercambian sus operaciones de servicio y no se marca con estos atributos no serán visibles.
    • Service contract: Define las operaciones que el servicio tendrá disponibles para que los clientes puedan invocar mediante una petición request, y a cada uno de sus métodos acompañado del atributo [OperationContract].
      • OperationContract: Aplique OperationContract a un método para indicar que el método implementa una operación de servicio como parte de un contrato de servicio

 

  • Data Contract: Define la estructura de los datos que serán incluidos en el intercambio de los mensajes que van y vienen del servicio al cliente y viceversa.
    • Data Member: permite definir los tipos de datos y su visivilidad.

Desarrollo

Para poder entender mejor el contrato de datos de WCF , realizaremos   una pequeña práctica donde se apreciara el lugar de los atributos  a la hora de declararlos y su  importancia de cada uno de ellos.
Crearemos un Proyecto en visual studio.
1

Elegiremos el siguiente Proyecto dándole un nombre AplicacionWebServicePOO

Una vez  creado el  Proyecto   wcf =AplicacionWebServicePOO   se crearan por defecto   IService1  y  Service1 también los atributos de los cuales hemos hablado  anteriormente y los cuales forman parte del contrato de datos,para realizar  nuestro proyecto de práctica y que se vea los ejemplos  más claros, borraremos ciertas partes y la realizaremos una práctica  con un código básico.

Interfaz: Las interfaces son los puntos de contacto que establecen un contrato que permite el intercambio de información

Quedando  de esta manera :

Empezaremos a  escribir código e IService1 lo dejaremos de esta manera  borrando lo que ha creado por defecto el proyecto  en  este caso vemos Service1 ,IService1  creados por defecto

1

Service1  borraremos lo que se ha creado por defecto y escribiremos el siguiente código donde se esta heredando de IService1 los métodos  que tenemos acceso a ellos en este caso es la lista personas y donde nosotros creamos las siguientes personas con sus respectivos  datos de cada persona.
3

en IService  que es la interfaz  declararemos el contrato con [ServiceContract],[operationContract],[DataContract],[DataMember] .

en esta parte lo que haremos es declarar las principales características del contrato   a las que podremos optar en este caso podremos accceder a la clase persona y sus propiedades como se ve en la imagen.

 

2

 

Para ejecutar  y ver los resultados añadiremos la referencia al proyecto aplicationWebServicePOO

4

Y nos aparecera  la siguiente ventana simulando un cliente le damos al boton discover y nos aparecera los servicios antes declarados     en donde   nos reconocerá los métodos declarados en el contrato  y daremos  OK

5

Y para  ver el resultado y ver que es lo que estamos realizando hasta el momento ponemos como  proyecto principal el wfc y le damos ejecutar y saldrá la siguiente ventana le damos a invoke y veremos que esta transportando datos

 

6

copiaremo la url para utilizarla más adelante

8.1
Estos datos serán visibles siempre y cuando los atributos estén declarados  si no de otra manera  no serán visibles.

Consumir los datos desde mvc   creamos otro proyecto dentro de la misma solución

Al  mvc le daremos un nombre  que se llamara

Webapplication1

7

creando el mvc

8

y posteriormente recuperaremos  los servicios y añadiremos la referencia

 

9

Copiaremos la url del wcf que anteriormente se ejecuto y hacemos click en GO y añadiremos la referencia al Webapplication1

donde podremos ver los servicios y usarlos  de acuerdo a nuestra necesidad y tenemos los métodos declarados  anteriormente y que ahora estamos consumiendo mediante mvc.

10

nos  crearemos  en controller un controlador llamado PersonaControlller donde instanciaremos los servicios y devolveremos a la vista  la Persona

11.1

11.2

11.3

Por otro lado en el PersonaController añadiremos  el siguiente codigo y que basicamente lo que se hace es instanciar los servicios que estamos consumiendo de WCF

12.1

también añadiremos una vista a la Persona  quedando de esta manera

13

elegimos List  para que nos genere automáticamente la vista

14

como podemos ver aqui nos genero autmaticamente  la vista con los datos que recuperamos de wcf

15

para ejecutar y ver el resultado le damos  solución botón derecho y  lo hacemos como principal y

16

también pondremos como principal el proyecto mvc en la vista Index

17

después ejecutar lo cual nos llevara a ver de una manera gráfica la lista que creamos en el wcf  y que es consumida por mvc

18

Descripción:  Contrato de Datos WCF  y Consumo MVC   

Autor: Luis Alejandro Ayllon Herrera

Curso: Microsoft MCSD Web Applications + SharePoint Apps
Centro: Tajamar

Año académico: 2016-2017