Ejemplo de wcf

Solo disponible en BuenasTareas
  • Páginas : 7 (1587 palabras )
  • Descarga(s) : 0
  • Publicado : 22 de agosto de 2012
Leer documento completo
Vista previa del texto
Taller: Introducción a Windows Communication Foundation
Autor: Carlos Milán Figueredo Nivel: 100 (Principiante) Pre-requisitos: Visual Studio 2008 Email: cmilanf@dotnetclubs.com Web: http://www.dotnetclubs.com Duración estimada: 60 minutos

Introducción
Windows Communication Foundation (WCF de ahora en adelante) es la parte del Framework .NET dedicada a las comunicaciones. Este subsistema fueincorporado a .NET a partir de su versión 3.0 y está disponible para sistemas basados en Windows XP, Windows 2003 y superiores, así como dispositivos móviles equipados con el Compact Framework 3.5. WCF unifica varios modelos de comunicación disponibles en versiones anteriores de .NET bajo una única especificación SOA (Service Oriented Architecture). Uno de los grandes atractivos de WCF es lafacilidad con la que permite al desarrollador la creación de servicios web interoperables y aplicaciones que hagan uso de los mismos. En este taller vamos a utilizar Visual Studio 2008 para crear, usando WCF, un servicio web que va a ser consumido por otra aplicación cliente.

Descripción del ejemplo: Cartelera de cine
¿Quién no ha ido alguna vez al cine? No importa si con la novia, con amigos, conla familia… Lo más común a la hora de ir al cine es echar un vistazo a su cartelera para evaluar qué película nos va a resultar más interesante y/o más entretenida de ver. Pero… ¿y si en el momento de decidir con los amigos qué película ver no tenemos la cartelera a mano? ¿No sería fantástico disponer de un servicio que nos exponga la cartelera actual en cualquier dispositivo que tengamos en elmomento? (ej: nuestro teléfono móvil) En este taller vamos a construir un sencillo servicio de ejemplo que nos permitirá administrar un listado de estrenos de cine que se encuentran actualmente en cartelera.

Parte 1: Creando el servicio web
¡Crear tu primer servicio web va a ser más sencillo de lo que imaginas! En primer lugar, vamos a preparar Visual Studio 2008 para la tarea que vamos arealizar: 1. Ejecuta Visual Studio 2008. 2. Vamos a crear un nuevo proyecto “Biblioteca de servicios WCF”. Para ello sigue el camino Menú Archivo -> Nuevo -> Proyecto… -> WCF 3. Escribe un nombre para tu proyecto y elige su ubicación. En este ejemplo podemos usar el nombre ServicioEstrenosCine.

4. Va a ser conveniente crear también una solución, que englobe tanto el proyecto de aplicación serviciocomo el cliente. El nombre de la solución podría ser WcfEstrenosCine.

5.

Tras aceptar vemos como se nos crea el proyecto, con código de ejemplo para ayudarnos a construir el servicio. Sin embargo como queremos empezar desde 0, vamos a eliminar este código. En el Explorador de soluciones elimina IService1.cs y Service1.cs.

Implementación del servicio
1. Agregamos una nueva clase a nuestroproyecto, que podemos llamar EstrenoActual.

2. La clase debe estar compuesta por el siguiente código:
using using using using using System; System.Collections.Generic; System.Linq; System.Text; System.Runtime.Serialization;

namespace ServicioEstrenoCine { [DataContract] public class EstrenoActual { [DataMember] public string id; [DataMember] public string titulo; [DataMember] publicstring descripcion; [DataMember] public DateTime fecha; } }

Hay que prestar especial atención a los elementos [DataContract] y [DataMember] así como al using System.Runtime.Serialization. Esta clase va a ser serializada en XML para que cuando expongamos el servicio cualquier cliente, sin importar su arquitectura, pueda entenderla. 3. Creamos una nueva clase, cuyo nombre va a ser IEstrenosCine. Enefecto, se va a tratar de un interfaz. El código será el siguiente:
using using using using using System; System.Collections.Generic; System.Linq; System.Text; System.ServiceModel;

namespace ServicioEstrenoCine { [ServiceContract] public interface IEstrenoCine { [OperationContract] int AgregarPelicula(EstrenoActual pelicula); [OperationContract] List ObtenerCartelera(); [OperationContract] int...
tracking img