2015-ii- wfc

43
Windows Communication Fundation PUBLICACIÓN DE SERVICIO WEB WCF CREACIÓN 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 Aplicación de servicios WCF. Como nombre poner WcfService. Ing. Javier Alberto Manrique Quiñonez 1

Upload: angelo-max-macarlupu-chavez

Post on 04-Dec-2015

223 views

Category:

Documents


0 download

DESCRIPTION

servicio web

TRANSCRIPT

Page 1: 2015-II- Wfc

Windows Communication Fundation

PUBLICACIÓN DE SERVICIO WEB WCF

CREACIÓN 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 Aplicación de servicios WCF. Como nombre poner WcfService.

Ing. Javier Alberto Manrique Quiñonez 1

Page 2: 2015-II- Wfc

Windows Communication Fundation

3. Verificar que el IDE del VS 2013 se presente como el en siguiente gráfico.

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

Ing. Javier Alberto Manrique Quiñonez 2

Page 3: 2015-II- Wfc

Windows Communication Fundation

5. Cambiar el nombre por el de Service.

6. Verifique la obtención 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.

Ing. Javier Alberto Manrique Quiñonez 3

Page 4: 2015-II- Wfc

Windows Communication Fundation

8. Cambiar el nombre por el de IService.

9. Verifique la obtención de la vista previa del cambio de nombre.

10.Verificar que el proyecto se presente como en el siguiente gráfico.

Ing. Javier Alberto Manrique Quiñonez 4

Page 5: 2015-II- Wfc

Windows Communication Fundation

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

Ing. Javier Alberto Manrique Quiñonez 5

Page 6: 2015-II- Wfc

Windows Communication Fundation

13. Hacer clic derecho en el nombre de la Clase Service1.svc (implementación de la interface) y seleccionar Cambiar nombre.

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

Ing. Javier Alberto Manrique Quiñonez 6

Page 7: 2015-II- Wfc

Windows Communication Fundation

15.Agregar una clase.

16.Asignar AdministradorDeConexión.cs como nombre de clase.

Ing. Javier Alberto Manrique Quiñonez 7

Page 8: 2015-II- Wfc

Windows Communication Fundation

17.Agregar a la clase AdministradorDeConexión.cs el siguiente código.using System.Configuration;using System.Data.SqlClient;namespace WcfService

{ public class AdministradorDeConexión{ 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 códigousing 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; } }}

Ing. Javier Alberto Manrique Quiñonez 8

Page 9: 2015-II- Wfc

Windows Communication Fundation

19. Hacer doble click en el archivo Web.config para agregar el código que se presenta a continuación del gráfico.

<connectionStrings><add name=”DbEventoConnectionString”

connectionString=” Data Source=JAVIER-PC\MSSQLSERVER2012;Initial Catalog=DbEvento; Persist Security Info=True;User ID=sa; Password=12345”

providerName=”System.Data.SqlClient”/></connectionStrings>

Ing. Javier Alberto Manrique Quiñonez 9

Page 10: 2015-II- Wfc

Windows Communication Fundation

20. Verificar que el archivo Web.config se presente como en el siguiente gráfico.

21. Hacer clic en la Interface Iservice.cs para modificar el código por defecto (sentencias y comentarios) e ingresar el siguiente código.

Ing. Javier Alberto Manrique Quiñonez 10

Page 11: 2015-II- Wfc

Windows Communication Fundation

22. Hacer clic en la clase Service.svc (Implementación de la Interface) para modificar el código por defecto (sentencias y comentarios) e ingresar el siguiente código.

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

Ing. Javier Alberto Manrique Quiñonez 11

Page 12: 2015-II- Wfc

Windows Communication Fundation

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

Ing. Javier Alberto Manrique Quiñonez 12

Page 13: 2015-II- Wfc

Windows Communication Fundation

PUBLICACIÓN DEL SERVICIO WEB WCF

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

26. Correr el Internet Information Service

Ing. Javier Alberto Manrique Quiñonez 13

Page 14: 2015-II- Wfc

Windows Communication Fundation

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 SitioWebWcfService.

Ing. Javier Alberto Manrique Quiñonez 14

Page 15: 2015-II- Wfc

Windows Communication Fundation

29. Haga clic en el el botón de comando seleccionar. En Seleccionar Grupo de aplicaciones, escoger ASP.NET v4.0 y luego aceptar los cambios.

30. Haga clic en en botón de comando (…) y el Buscar carpeta seleccione la carpeta SitioWebWcfService.

Ing. Javier Alberto Manrique Quiñonez 15

Page 16: 2015-II- Wfc

Windows Communication Fundation

31. En conectar como, seleccionar Usuario de la aplicación (Autenticación de paso a través).

32. En Puerto coloque el número de puerto de conexión. Para nuestro caso escribamos 85.

Ing. Javier Alberto Manrique Quiñonez 16

Page 17: 2015-II- Wfc

Windows Communication Fundation

33. Verifique que la configuración de la publicación de sitio web se presente como en la siguiente.

34. Haga clic en configuración avanzada.

Ing. Javier Alberto Manrique Quiñonez 17

Page 18: 2015-II- Wfc

Windows Communication Fundation

35. Verifique que la configuración se presente como en el siguiente cuadro de diálogo.

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

Dirección URL solicitada http://localhost:85/

Ing. Javier Alberto Manrique Quiñonez 18

Page 19: 2015-II- Wfc

Windows Communication Fundation

37. En el Visual Studio hacer clic derecho en el Proyecto WebApplicationServicioWeb y seleccione Publicar.

38. En Publicación Web, seleccione Personalizado.

Ing. Javier Alberto Manrique Quiñonez 19

Page 20: 2015-II- Wfc

Windows Communication Fundation

39. En Perfil personalizado nuevo escriba PerfilServicioWebWcf.

40. Haga clic en la pestaña Conexión y configúrelo como se presenta en la siguiente figura.

Ing. Javier Alberto Manrique Quiñonez 20

Page 21: 2015-II- Wfc

Windows Communication Fundation

41. En configuración seleccione Release luego haga clic en el botón de comando siguiente.

42. En Vista previa haga clic en Comenzar previsualización.

43. Verifique que se presente la siguiente ventana.

Ing. Javier Alberto Manrique Quiñonez 21

Page 22: 2015-II- Wfc

Windows Communication Fundation

44. Haga clic en el botón de comando Publicar y verifique que se presente la siguiente ventana.

Ing. Javier Alberto Manrique Quiñonez 22

Page 23: 2015-II- Wfc

Windows Communication Fundation

CREACIÓN 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 clic en Archivo/Nuevo y seleccionar Proyecto

Ing. Javier Alberto Manrique Quiñonez 23

Page 24: 2015-II- Wfc

Windows Communication Fundation

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 Aplicación web ASP.NET Visual C#. Poner como nombre ConsumoDeServicioWebWcf.

Ing. Javier Alberto Manrique Quiñonez 24

Page 25: 2015-II- Wfc

Windows Communication Fundation

49. Seleccionar la plantilla Empty (Vacía).

50. Verifique que el Explorador de Soluciones se presente como en el siguiente gráfico.

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

Ing. Javier Alberto Manrique Quiñonez 25

Page 26: 2015-II- Wfc

Windows Communication Fundation

52. En dirección poner la dirección (la dirección de la publicación del servicio web WCF).

53. Cambiar el nombre de la referencia en Espacio de Nombre y hacer clic en el botón de comando Ir y verificar que se presente el siguiente gráfico.

54. Verificar que el Explorador de Soluciones se presente como en el siguiente gráfico.

Ing. Javier Alberto Manrique Quiñonez 26

Page 27: 2015-II- Wfc

Windows Communication Fundation

55. Agregar un Formulario Web Forms.

56. Asignar el nombre WebFormConsumoServicioWebWcf.

Ing. Javier Alberto Manrique Quiñonez 27

Page 28: 2015-II- Wfc

Windows Communication Fundation

57. Modificar el código del Formulario Web Form con lo que se presenta a continuación. Agregue un TexoBox, GridView y un Botón de Comando.

58. Presentar el Formulario Web form en el modo Diseño.

Ing. Javier Alberto Manrique Quiñonez 28

Page 29: 2015-II- Wfc

Windows Communication Fundation

59. Haga soble clic en el botón de comando Rellenar gridView.

60. Modificar el código por defecto y que se presente como en el siguiente gráfico.

Ing. Javier Alberto Manrique Quiñonez 29

Page 30: 2015-II- Wfc

Windows Communication Fundation

61. Ejecutar la aplicación web y que se presente como en el siguiente gráfico.

62. Publicar la aplicación web recien creada y hacerla correr en red.

Ing. Javier Alberto Manrique Quiñonez 30

Page 31: 2015-II- Wfc

Windows Communication Fundation

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 WCFWCF 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.

El servidor de aplicaciones características de hospedaje de Windows Server AppFabric se ha diseñado específicamente para implementar y administrar aplicaciones que utilizan WCF para las comunicaciones. características de hospedaje incluye sofisticadas opciones de configuración y herramientas diseñadas específicamente para las aplicaciones habilitadas para WCF.

Los servicios son autónomos 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 según el protocolo SOAP. Veamos un mensaje SOAP:

Ing. Javier Alberto Manrique Quiñonez 31

Page 32: 2015-II- Wfc

Windows Communication Fundation

?<?xml version =”1.0”><soap:Envelope xmlns:soap=”http://www.w3.org/...”

soap:encodingStyle=”http://www.w3.org/...”><soap:Header>

... aquí iría información específica de la aplicación como puede ser la autenticación ...</soap:Header><soap:Body>

... mensaje al punto final de la comunicación ...<soap:Fault>

... para indicar mensajes de error ...</soap:Fault>

</soap:Body></soap>

Modelo de programación de WCFEl cliente WCF es el que inicia la comunicación y el servicio WCF es el que está esperando que un cliente se comunique con él. Una única aplicación puede actuar como cliente y como servicio. Este modelo de programación orientado a servicios está definido por las clases agrupadas bajo el namespace System.ServiceModel.

Implementar un servicio WCF

Un servicio es una aplicación que expone uno o más extremos, donde cada uno de ellos expone una o más operaciones de servicio. El extremo o punto final proporciona la única manera de comunicación con el servicio. Está compuesto por: Dirección: define la ubicación del servicio (por ejemplo una URL, una dirección FTP o una ruta de acceso local o

de red). Enlace: define la manera de establecer la comunicación con el servicio (BasicHttpBonding,

PollingDuplexHttpBinding o WsHttpBinding). Los enlaces WCF permiten especificar con facilidad un protocolo (HTTP o FTP), un mecanismo de seguridad (autenticación Windows o nombres de usuario y contraseña).

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 método de la clase del servicio marcado con el atributo OperationContract. Los métodos que no estén marcados con este atributo no serán presentados a los clientes.?[ServiceContract]public interface IconvertirGrados

{ // Operaciones ofrecidas por el servicio [OperationContract] double ConvCentAFahr(double gCent);

Ing. Javier Alberto Manrique Quiñonez 32

Page 33: 2015-II- Wfc

Windows Communication Fundation

[OperationContract] double ConvFahrACent(double gFahr); }

ServiceContract se corresponde con la clase ServiceContractAttribute. OperationContract se corresponde con la clase OperationContractAttribute. De esta forma indicamos que un

método como ConvCentAFahr o ConvFahrAcent definen una operación 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 aplicación

para poder establecer comunicación con un servicio WCF y un extremo. para los servicios que exponen varios extremos , el cliente selecciona el que más se ajusta a sus necesidades; por ejemplo uno que permita establecer una comunicación a través de HTTP y sin autenticación.

Un proxy se genera a partir de los metadatos obtenidos del servicio WCF e incluye información sobre los tipos y métodos 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 Quiñonez 33