PublicaciónDeServicioWebWCF

36
SERVICIO WEB WFC: WINDOWS COMMUNICATION FOUNDATION. Windows Communication Foundation (WCF) es un marco de trabajo para la creación de aplicaciones orientadas a servicios. Con WCF, es posible enviar datos como mensajes asincrónicos de un extremo de servicio a otro. Un extremo de servicio puede formar parte de un servicio disponible continuamente hospedado por IIS, o puede ser un servicio hospedado en una aplicación. Un extremo puede ser un cliente de un servicio que solicita datos de un extremo de servicio. Los mensajes pueden ser tan simples como un caracter o una palabra que se envía como XML, o tan complejos como una secuencia de datos binarios. A continuación se indican unos cuantos escenarios de ejemplo: Un servicio seguro para procesar transacciones comerciales. Un servicio que proporciona datos actualizados a otras personas, como un informe sobre tráfico u otro servicio de supervisión. Una aplicación de panel que sondea los datos de uno o varios servicios y los muestra en una presentación lógica. Exponer un flujo de trabajo implementado utilizando Windows Workflow Foundation como un servicio WCF. Una aplicación de Silverlight para sondear un servicio en busca de las fuentes de datos más recientes. Si bien era posible crear tales aplicaciones antes de que existiera WCF, con WCF el desarrollo de extremos resulta más sencillo que nunca. En resumen, WCF se ha diseñado para ofrecer un enfoque manejable para la creación de servicios web y clientes de servicios web. Características de WCF WCF incluye el siguiente conjunto de características: Para obtener más información, veaDetalles de las características de WCF . Orientación a servicios Interoperabilidad Varios modelos de mensajes Metadatos de servicios Contratos de datos Seguridad Varios transportes y codificaciones Mensajes confiables y en cola Mensajes duraderos Transacciones Compatibilidad con AJAX y REST Extensibilidad Integración de WCF con otras tecnologías de Microsoft Microsoft .NET Services es una iniciativa de computación en nube (cloud computing) que utiliza WCF para la creación de aplicaciones habilitadas para Internet. Utilice .NET Services para crear servicios WCF que funcionan a través de límites de confianza. 1

description

Creación, publicación y consumo de un servicio web

Transcript of PublicaciónDeServicioWebWCF

SERVICIO WEB WFC: WINDOWS COMMUNICATION FOUNDATION.

Windows Communication Foundation (WCF) es un marco de trabajo para la creacin de aplicaciones orientadas a servicios.Con WCF, es posible enviar datos como mensajes asincrnicos de un extremo de servicio a otro.Un extremo de servicio puede formar parte de un servicio disponible continuamente hospedado por IIS, o puede ser un servicio hospedado en una aplicacin.Un extremo puede ser un cliente de un servicio que solicita datos de un extremo de servicio.Los mensajes pueden ser tan simples como un caracter o una palabra que se enva como XML, o tan complejos como una secuencia de datos binarios.A continuacin se indican unos cuantos escenarios de ejemplo:

Un servicio seguro para procesar transacciones comerciales.

Un servicio que proporciona datos actualizados a otras personas, como un informe sobre trfico u otro servicio de supervisin.

Una aplicacin de panel que sondea los datos de uno o varios servicios y los muestra en una presentacin lgica.

Exponer un flujo de trabajo implementado utilizando Windows Workflow Foundation como un servicio WCF.

Una aplicacin de Silverlight para sondear un servicio en busca de las fuentes de datos ms recientes.

Si bien era posible crear tales aplicaciones antes de que existiera WCF, con WCF el desarrollo de extremos resulta ms sencillo que nunca.En resumen, WCF se ha diseado para ofrecer un enfoque manejable para la creacin de servicios web y clientes de servicios web.

Caractersticas de WCFWCF incluye el siguiente conjunto de caractersticas:Para obtener ms informacin, veaDetalles de las caractersticas de WCF.

Orientacin a servicios

Interoperabilidad

Varios modelos de mensajes

Metadatos de servicios

Contratos de datos

Seguridad

Varios transportes y codificaciones

Mensajes confiables y en cola

Mensajes duraderos

Transacciones

Compatibilidad con AJAX y REST Extensibilidad

Integracin de WCF con otras tecnologas de MicrosoftMicrosoft .NET Services es una iniciativa de computacin en nube (cloud computing) que utiliza WCF para la creacin de aplicaciones habilitadas para Internet.Utilice .NET Services para crear servicios WCF que funcionan a travs de lmites de confianza.

El servidor de aplicaciones caractersticas de hospedaje de Windows Server AppFabric se ha diseado especficamente para implementar y administrar aplicaciones que utilizan WCF para las comunicaciones.caractersticas de hospedaje incluye sofisticadas opciones de configuracin y herramientas diseadas especficamente para las aplicaciones habilitadas para WCF.

Los servicios son autnomos y comparten esquemas (datos) y contratos (funcionalidad), no tienen que asumir nada de lo que hay al otro lado del extremo. Los clientes consumen servicios y los servicios ofrecen soluciones. Un servicio puede a su vez ser cliente de otro servicio.

En WPF los mensajes tienen un envoltorio, una cabecera y un cuerpo y son definidos en XML segn el protocolo SOAP. Veamos un mensaje SOAP:?

... aqu ira informacin especfica de la aplicacin como puede ser la autenticacin ...

... mensaje al punto final de la comunicacin ...

... para indicar mensajes de error ...

Modelo de programacin de WCF

El cliente WCF es el que inicia la comunicacin y el servicio WCF es el que est esperando que un cliente se comunique con l. Una nica aplicacin puede actuar como cliente y como servicio. Este modelo de programacin orientado a servicios est definido por las clases agrupadas bajo el namespaceSystem.ServiceModel.

Implementar un servicio WCF

Un servicio es una aplicacin que expone uno o ms extremos, donde cada uno de ellos expone una o ms operaciones de servicio. Elextremoo punto final proporciona la nica manera de comunicacin con el servicio. Est compuesto por:

Direccin: define la ubicacin del servicio (por ejemplo una URL, una direccin FTP o una ruta de acceso local o de red).

Enlace: define la manera de establecer la comunicacin con el servicio (BasicHttpBonding, PollingDuplexHttpBinding o WsHttpBinding). Los enlaces WCF permiten especificar con facilidad un protocolo (HTTP o FTP), un mecanismo de seguridad (autenticacin Windows o nombres de usuario y contrasea).

Contrato: incluye las operaciones expuestas por la clase del servicio WCF.

Definir un contratoEl contrato se corresponde con una interfaz, marcada con el atributo ServiceContract, que especifica las operaciones que ofrece el servicio. Cada una de estas operaciones ser proporcionada por un mtodo de la clase del servicio marcado con el atributo OperationContract. Los mtodos que no estn marcados con este atributo no sern presentados a los clientes.

?[ServiceContract]

public interface IconvertirGrados

{// Operaciones ofrecidas por el servicio

[OperationContract]

double ConvCentAFahr(double gCent);

[OperationContract]

double ConvFahrACent(double gFahr); } ServiceContractse corresponde con la claseServiceContractAttribute.

OperationContractse corresponde con la claseOperationContractAttribute. De esta forma indicamos que un mtodo como ConvCentAFahr o ConvFahrAcent definen una operacin que forma parte de un contrato.

Ahora toca consumir el servicio

Es decir implementar un cliente WCF. Un cliente est compuesto de un proxy que habilita a una aplicacin para poder establecer comunicacin con un servicio WCF y un extremo. para los servicios que exponen varios extremos , el cliente selecciona el que ms se ajusta a sus necesidades; por ejemplo uno que permita establecer una comunicacin a travs de HTTP y sin autenticacin.

Un proxy se genera a partir de los metadatos obtenidos del servicio WCF e incluye informacin sobre los tipos y mtodos expuestos por el servicio. Siguiendo con el ejemplo del servicio de la temperatura vamos a crear una interfaz parecida a esta:

PUBLICACIN DE SERVICIO WEB WCFCREACIN DEL SERVICIO WEB WCF

1.En el men principal hacer click en Archivo/Nuevo y seleccionar Proyecto

2.Seleccionar Visual C# - Web - WCF y luego dentro de las platillas seleccionar Aplicacin de servicios WCF.

3.Verificar que el IDE del VS 2013 se presente como el en siguiente grfico.

4.Hacer click derecho en el nombre de la clase Service1 y selecciones Refactorizar-CambierNombre.

5.Cambiar el nombre por el de Service.

6.Verifique la obtencin de la vista previa del cambio de nombre.

7.Hacer click derecho en el nombre de la Interface IService1 (clase base) y selecciones Refactorizar-CambiarNombre.

8.Cambiar el nombre por el de IService.

9.Verifique la obtencin de la vista previa del cambio de nombre.

10.Verificar que el proyecto se presente como en el siguiente grfico.

11.Hacer click derecho en el nombre de la Interface Iservice y seleccionar Cambier nombre.

12.Verificar el cambio de nombre de la Interface IService1.cs por el de Iservice.cs

13.Hacer click derecho en el nombre de la Clase Service1.svc (implementacin de la interface) y seleccionar Cambiar nombre.

14.Verificar el cambio de nombre de la Clase Service1.svc por el de Service.svc.cs

15.Agregar una clase.

16.Asignar AdministradorDeConexin.cs como nombre de clase.

17.Agregar a la clase AdministradorDeConexin.cs el siguiente cdigo.

using System.Configuration;

using System.Data.SqlClient;

namespace WcfService

{ public class AdministradorDeConexin

{ public static SqlConnection getConexion()

{ SqlConnection conexion =

new SqlConnection(ConfigurationManager.ConnectionStrings[DbEventoConnectionString].ConnectionString);try

{ return conexion;

}

catch (SqlException e)

{ return null;

}

}

}

}

18.Agregar una clase y denominarla Evento.cs y agregar el siguiente cdigo

using System.Runtime.Serialization;

namespace WcfServiceEvento

{ [DataContract]

public class Evento

{ [DataMember] public int

idEvento

{get;set;}

[DataMember]public string

nombreDelEvento{get;set;}

[DataMember]public int

idTipoDeEvento{get;set;}

[DataMember]public string

fechaDelEvento{get;set;}

[DataMember]public int

idLugar

{get;set;}

public Evento()

{

} public Evento(int idEvento)

{ this.idEvento=idEvento;

} public Evento( int idEvento,

string nombreDelEvento,

int idTipoDeEvento,

string fechaDelEvento,

int idLugar

)

{ this.idEvento = idEvento;

this.nombreDelEvento = nombreDelEvento;

this.idTipoDeEvento = idTipoDeEvento;

this.fechaDelEvento = fechaDelEvento;

this.idLugar = idLugar;

} public override string ToString()

{ return nombreDelEvento;

}

}

}19.Hacer doble click en el archivo Web.config para agregar el cdigo que se presenta a continuacin del grfico.

20.Verificar que el archivo Web.config se presente como en el siguiente grfico.

21.Hacer click en la Interface Iservice.cs para modificar el cdigo por defecto (sentencias y comentarios) e ingresar el siguiente cdigo.

22.Hacer click en la clase Service.svc (Implementacin de la Interface) para modificar el cdigo por defecto (sentencias y comentarios) e ingresar el siguiente cdigo.

23.Hacer click derecho sobre la clase Service.svc y seleccionar Ver en explorador (Google Chrome).

24.Verificar el despliegue del Servicio Web WCF en el Navegador Web y verificar que bse ha creado el Servicio Web WCF.

PUBLICACIN DEL SERVICIO WEB WCF: Preparacin del IIS25.Acceder a la carpeta inetpub del disco local (C:) y crear una nueva carpeta denominada SitioWwebServicioWeb.

26.Correr el Internet Information Service

27.Seleccionar Agregar sitio web en Sitios del Grupo del aplicaciones de Conexiones del Administrador de Intenet Information service (IIS).

28.En nombre de sitio de Agregar sitio web colocar SitioWebServicioWeb.

29.Haga click en el el botn de comando seleccionar. En Seleccionar Grupo de aplicaciones, escoger ASP.NET v4.0 y luego aceptar los cambios.

30.Haga click en en botn de comando () y el Buscar carpeta seleccione la carpeta SitioWebPServicioWeb

31.En conectar como, seleccionar Usuario de la aplicacin (Autenticacin de paso a travs).

32.En Puerto de Agregar sitio web coloque el nmero de puerto de conexin. Para nuestro caso escribamos 85.

33.Verifique que la configuracin de la publicacin de sitio web se presente como en la siguiente.

34.Haga click en configuracin avanzada.

35.Verifique que la configuracin se presente como en el siguiente cuadro de dilogo.

36.En el Exporador Web escriba: http://localhost:85 y verificar que se presente la siguiente ventana.Direccin URL solicitada http://localhost:85/

PUBLICACIN DEL SERVICIO WEB WCF: Publicacin en el VS 201337.En el Visual Studio hacer click derecho en el Proyecto WebApplicationServicioWeb y seleccione publicar.

38.En Publicacin Web, seleccione Personalizado.

39.En Perfil personalizado nuevo escriba PerfilServicioWebWcf.

40.Haga click en la pestaa Conexin y configrelo como se presenta en la siguiente figura.

41.En configuracin seleccione Release luego haga click en el botn de comando siguiente.

42.En Vista previa haga click en Comenzar previsualizacin.

43.Verifique que se presente la siguiente ventana.

44.Haga click en el botn de comando Publicar y verifique que se presente la siguiente ventana.

CREACIN DEL CONSUMIDOR DEL SERVICIO WEB WCF

45.En el men principal hacer click en Archivo/Nuevo y seleccionar Proyecto

46.En el men principal hacer click en Archivo/Nuevo y seleccionar Proyecto

47.En el men principal hacer click en Archivo/Nuevo y seleccionar Proyecto

48.Seleccionar Visual C# - Web y luego dentro de las plantillas seleccionar Aplicacin web ASP.NET Visual C#.

49.Seleccionar la plantilla Empty (Vaca).

50.Verifique que el Explorador de Soluciones se presente como en el siguiente grfico.

51.Hacer click derecho en References y seleccionar Agregar referencia.

52.En direccin poner la direccin (la direccin de la publicacin del servicio web WCF).

53.Cambiar el nombre de la referencia en Espacio de Nombre y hacer click en el botn de comando Ir y verificar que se presente el siguiente grfico.

54.Verificar que el Explorador de Soluciones se presente como en el siguiente grfico.

55.Agregar un Formulario Web Forms.

56.Asignar el nombre WebFormConsumoServicioWeb.

57.Modificar el cdigo del Formulario Web Form con lo que se presenta a continuacin. Agregue un TexoBox, GridView y un Botn de Comando.

58.Presentar el Formulario Web form en el modo Diseo.

59.Haga soble click en el botn de comando Rellenar gridView.

60.Modificar el cdigo por defecto y que se presente como en el siguiente grfico.

61.Ejecutar la aplicacin web y que se presente como en el siguiente grficio.

62.Publicar la aplicacin web recien creada y hacerla correr en red.

2