2015-II- Wfc

Embed Size (px)

DESCRIPTION

Práctica para crear un servicio web wcf con Visual Studio 2013. Incluye publicación del servicio y consumo del mismo.

Citation preview

Windows Communication Fundation

PUBLICACIN DE SERVICIO WEB WCF

CREACIN DEL SERVICIO WEB WCF

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

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

3.Verificar que el IDE del VS 2013 se presente como el en siguiente grfico. Hacer doble clic en la clase Service1.

4.Hacer clic derecho en el nombre de la clase Service1 y seleccione Refactorizar-CambiarNombre.

5.Cambiar el nombre por el de Service.

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

7.Hacer clic derecho en el nombre de la Interface IService1 (clase base) y seleccione 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 clic derecho en el nombre de la Interface Iservice y seleccionar Cambiar nombre.

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

13.Hacer clic 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 string

fechaDelEvento

{ 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.fechaDelEvento

= fechaDelEvento;

}

public override string ToString()

{ return nombreDelEvento;

}

}

}19.Hacer doble clic 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 clic en la Interface Iservice.cs para modificar el cdigo por defecto (sentencias y comentarios) e ingresar el siguiente cdigo.using System.Data;

using System.ServiceModel;

namespace WcfService

{[ServiceContract]

public interface IService

{[OperationContract]

string HelloWorld();

[OperationContract]

DataSet getDataSet();

}

}

22.Verificar que el cdigo de la Interfaz IService.cs se muestre como en el siguiente grfico.

23.Hacer clic en la clase Service.svc (Implementacin de la Interface-) para modificar el cdigo por defecto (sentencias y comentarios) e ingresar el siguiente cdigo.using System.Data;

using System.Data.SqlClient;

namespace WcfService

{public class Service : IService

{public DataSet getDataSet()

{SqlConnection oSqlConnection = AdministradorDeConexin.getConexion();

oSqlConnection.Open();

SqlDataAdapter oSqlDataAdapter = new SqlDataAdapter("select * from Evento", oSqlConnection);

DataSet oDataSet = new DataSet();

oSqlDataAdapter.Fill(oDataSet);

return oDataSet;

}

public string HelloWorld()

{return "Hola WCF y Tambin Sam";

}

}

}24.Verificar que el cdigo de la clase Service.cs se muestre como en el siguiente grfico.

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

26.Verificar el despliegue del Servicio Web WCF en el Navegador Web y verificar que se ha creado el Servicio Web WCF.

PUBLICACIN DEL SERVICIO WEB WCF

27.Acceder a la carpeta inetpub del disco local (C:) y crear una nueva carpeta denominada SitioWebWcfService.

28.Correr el Internet Information Service

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

30.En nombre de sitio de Agregar sitio web colocar SitioWebWcfService.

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

32.Haga clic en en botn de comando () y el Buscar carpeta seleccione la carpeta SitioWebWcfService.

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

34.En Puerto coloque el nmero de puerto de conexin. Para nuestro caso escribamos 85.

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

36.Haga clic en configuracin avanzada.

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

38.En el Exporador Web escriba: http://localhost:85 y verificar que se presente la siguiente ventana.

Direccin URL solicitada http://localhost:85/39.En el Visual Studio hacer clic derecho en el Proyecto WcfService y seleccione Publicar.

40.En Publicacin Web, seleccione Personalizado.

41.En Perfil personalizado nuevo escriba PerfilServicioWebWcf.

42.Haga clic en la pestaa Conexin y configrelo como se presenta en la siguiente figura.

43.En configuracin seleccione Release luego haga clic en el botn de comando siguiente.

44.En Vista previa haga clic en Comenzar previsualizacin.

45.Verifique que se presente la siguiente ventana.

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

CREACIN DEL CONSUMIDOR DEL SERVICIO WEB WCF

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

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

49.Seleccionar la plantilla Empty (Vaca).

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

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

52.En direccin poner la direccin http://localhost:85/Service.svc (la direccin de la publicacin del servicio web WCF).

53.Cambiar el nombre de la referencia de servicio en Espacio de Nombre y hacer clic 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 WebFormConsumoServicioWebWcf.

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 clic en el botn de comando Rellenar gridView.

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

namespace ConsumoDeServicioWebWcf

{public partial class WebFormConsumoServicioWebWcf : System.Web.UI.Page

{protected void Page_Load(object sender, EventArgs e)

{

}

protected void ButtonRellenarGridView_Click(object sender, EventArgs e)

{ServiceReference.ServiceClient proxy = new ServiceReference.ServiceClient();

TextBoxMensaje.Text = proxy.HelloWorld();

GridViewEvento.DataSource = proxy.getDataSet();

GridViewEvento.DataBind();

}

}

}61.Verificar que el cdigo se presente como en el siguiente grfico.

62.Ejecutar la aplicacin web y que se presente como en el siguiente grfico.

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

SERVICIO WEB WFC: WINDOWS COMMUNICATION FOUNDATIONWindows 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:

Ing. Javier Alberto Manrique Quionez 20