18
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACIÓN CICLO: 02 GUIA DE LABORATORIO #11 Nombre de la Práctica: Aplicaciones con Web Service ASP Lugar de Ejecución: Centro de cómputo Tiempo Estimado: 2 horas con 30 minutos MATERIA: Desarrollo de aplicaciones con software propietario I. OBJETIVOS Que el estudiante: Conozca los fundamentos teóricos sobre la creación de web service. Cree y consuma un web service en una aplicación web II. INTRODUCCIÓN TEÓRICA Web Service con C# Un Servicio Web (Web Service) puede definirse como un componente de una aplicación, que se ejecuta de forma remota. Esto permite la creación e implementación de aplicaciones web, con igual complejidad y efectividad que una aplicación de escritorio, pero añadiendo libertad de tener la estructura de Cliente- Servidor bien diferenciada. Las principales opciones que tenemos dentro de la tecnología .NET para este tipo de soluciones son: ASP.NET Web Services Windows Communication Foundation Services (WCF) El primer tipo es el que más se encuentra en aplicaciones hoy en día. La transferencia de datos se hace vía XML (utilizando XMLSerializer). Si además de tipos de datos básicos se transfieren Clases, sólo se pueden serializar las propiedades públicas de la misma. Los servicios del tipo WCF son más flexibles. Se puede mandar prácticamente cualquier clase, estructura o propiedad, sean públicas o privadas, que son serializadas usando DataContract. Esto también incluye los tipos de datos involucrados, declarados de forma explícita. En ambos casos el servicio se puede alojar en un servidor corriendo Internet Information Services (IIS). Interoperabilidad Cross-Platform Como el formato en el que se mandan los datos es XML, las aplicaciones que "consumen" el servicio pueden desarrollarse en cualquier lenguaje de programación, y ejecutarse en cualquier sistema operativo.

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS

COORDINACION DE COMPUTACIÓN

CICLO: 02

GUIA DE LABORATORIO #11

Nombre de la Práctica: Aplicaciones con Web Service ASP Lugar de Ejecución: Centro de cómputo Tiempo Estimado: 2 horas con 30 minutos MATERIA: Desarrollo de aplicaciones con software propietario

I. OBJETIVOS

Que el estudiante:

Conozca los fundamentos teóricos sobre la creación de web service.

Cree y consuma un web service en una aplicación web

II. INTRODUCCIÓN TEÓRICA

Web Service con C#

Un Servicio Web (Web Service) puede definirse como un componente de una aplicación, que se ejecuta de forma remota. Esto permite la creación e implementación de aplicaciones web, con igual complejidad y efectividad que una aplicación de escritorio, pero añadiendo libertad de tener la estructura de Cliente-Servidor bien diferenciada.

Las principales opciones que tenemos dentro de la tecnología .NET para este tipo de soluciones son:

ASP.NET Web Services

Windows Communication Foundation Services (WCF)

El primer tipo es el que más se encuentra en aplicaciones hoy en día. La transferencia de datos se hace vía XML (utilizando XMLSerializer). Si además de tipos de datos básicos se transfieren Clases, sólo se pueden serializar las propiedades públicas de la misma.

Los servicios del tipo WCF son más flexibles. Se puede mandar prácticamente cualquier clase, estructura o propiedad, sean públicas o privadas, que son serializadas usando DataContract. Esto también incluye los tipos de datos involucrados, declarados de forma explícita.

En ambos casos el servicio se puede alojar en un servidor corriendo Internet Information Services (IIS).

Interoperabilidad Cross-Platform

Como el formato en el que se mandan los datos es XML, las aplicaciones que "consumen" el servicio pueden desarrollarse en cualquier lenguaje de programación, y ejecutarse en cualquier sistema operativo.

Page 2: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

Por ejemplo, si se desarrolla una aplicación multiplataforma que informe al usuario su horóscopo diario, se puede separar la funcionalidad que elige el mensaje en un Web Service, y desarrollar un programa cliente para cada dispositivo que tenga que abarcar.

Se podría tener un cliente hecho en WinForms, una aplicación Web y una app de Android, todas ofreciendo la misma funcionalidad, ya que se estaría llamando al mismo servicio web en todos los casos.

Al desarrollar la lógica como servicio, se optimiza la reutilización de código, ya que no hay que volver a escribir lo mismo en distintos clientes. Tareas como traducción de texto, acceso a bases de dato, reportes, etc., suelen ser distribuídas en métodos que quedan centralizados en un solo servicio, accedido por uno o más clientes.

Servicios Web ASP.NET

Desarrollar un servicio web ASP.NET usando Visual Studio es bastante simple. La mayoría de las cuestiones más complejas ya vienen resueltas. Por ejemplo, el XML sigue el protocolo SOAP (Simple Object Access Protocol) como standard por default.

Si se desarrollan aplicaciones cliente con el mismo IDE, al agregar una referencia al servicio se arman automáticamente clases intermediarias que contienen métodos para dar formato muy fácilmente a los requests (pedidos) y los responses (respuestas).

De esta manera no debe ser preocupación dar formato al XML, ni armar estándares entre aplicaciones. Sólo basta con instanciar el objeto que representa al servicio, y llamar al método deseado pasándole parámetros normalmente.

Si por razones de compatibilidad o en una migración se necesita usar HTTP POST y HTTP GET, también se cuenta con herramientas para hacerlo (Estos últimos 2 protocolos están deshabilitados por default).

Tipos de datos soportados

Si se utiliza el protocolo SOAP, se podrá enviar y recibir usando los siguientes tipos de datos:

Tipos de datos primitivos: Byte, Byte[], Boolean, SByte, Double, DateTime, Decimal, Single, Int16,

Int32, Int64, XmlQualifiedName, String, UInt16, UInt32 y UInt64.

Clases y arrays de Clases: Deben tener al menos un constructor que no acepte parámetros, y serán

serializadas sus propiedades públicas. DataSets ADO.NET, XMLNodes.

Si en cambio se usa HTTP POST y HTTP GET, sólo se tendrá acceso a estos tipos de datos:

Tipos de datos primitivos: Boolean, Currency, DateTime, Decimal, Double, Int16, Int32, Int64, Single,

String, UInt16, Uint32 y UInt64. También arrays de cada tipo. Tipos Enumerables.

Tecnología Web Services

Los Web Services están construidos con varias tecnologías que trabajan conjuntamente con los estándares que están emergiendo para asegurar la seguridad y operatibilidad, de modo de hacer realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los proveen, este garantizado. A continuación se describen brevemente los estándares que están ocupando los Web Services.

Page 3: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

XML

Abreviación de Extensible Markup Language. El XML es una especificación desarrollada por W3C. Permite a los desarrolladores crear sus propios tags, que les posibilita habilitar definiciones, transmisiones, validaciones, e interpretación de los datos entre aplicaciones y entre organizaciones.

SOAP

Abreviación de Simple Object Access Protocol , es un protocolo de mensajería construido en XML que se usa para codificar información de los requerimientos de los Web Services y para responder los mensajes antes de enviarlos por la red. Los mensajes SOAP son independientes de los sistemas operativos y pueden ser transportados por los protocolos que funcionan en la Internet, como: SMTP, MIME y HTTP.

SOAP incluye un tipo de mensaje especial, denominado SOAP fault, que sirve para comunicar distintos tipos de error que se pueden producir en el paso de mensajes.

WSDL

Abreviación de Web Services Description Language, es un lenguaje especificado en XML que se ocupa para definir los Web Service como colecciones de punto de comunicación capaces de intercambiar mensajes. El WSDL es parte integral de UDDI y parte del registro global de XML, en otras palabras es un estándar de uso público (no se requiere pagar licencias ni royalties para usarlo).

UDDI

Abreviación de Universal Description, Discovery and Integration. Es un directorio distribuido que opera en la Web que permite a las empresas publicar sus Web Services, para que otras empresas conozcan y utilicen los Web Services que publican, opera de manera análoga a las páginas amarillas.

Componente de los servicios web

Servicio

La aplicación es ofrecida para ser utilizada por solicitantes que cumplen los requisitos especificados

por el proveedor de servicios. La implementación se realiza sobre una plataforma accesible en la red.

Page 4: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

El servicio se describe a través de un lenguaje de descripción de servicio. Tanto la descripción como

las políticas de uso han sido publicadas de antemano en un registro.

Proveedor de Servicio

Desde el punto de vista comercial, es quien presta el servicio. Desde el punto de vista de arquitectura,

es la plataforma que provee el servicio.

Registro de Servicios

. Es un depósito de descripciones de servicios que puede ser consultado, donde los proveedores

publican sus servicios y los solicitantes encuentran los servicios y los detalles para utilizarlos.

Solicitante de servicios

Desde el punto de vista comercial, la empresa que requiere cierto servicio. Desde el punto de vista de

la arquitectura, la aplicación o cliente que busca e invoca un servicio.

La siguiente figura muestra las relaciones operacionales entre los componentes:

Arquitectura de un Servicio Web

¿Cómo se estructuran los servicios Web? Para el mundo exterior, un Servicio Web es una aplicación

que acepta peticiones de servicio, realiza algún proceso, y devuelve una respuesta.

La siguiente figura muestra la arquitectura interna de un servicio Web

Page 5: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

Un Servicio Web contiene un Auditor (Listener) que está a la espera de peticiones. Cuando se recibe una petición, el auditor la reenvía a un componente que implementa la lógica de negocio requerida para la respuesta. El componente se puede diseñar para operar específicamente como un servicio Web o puede ser cualquier otro componente u objeto COM que el servicio quiera exponer al exterior. En este último caso, un desarrollador escribirá algún tipo de lógica que actuará como frente del servicio Web y enviará la petición al objeto COM mismo.

El objeto COM u otra lógica de negocio puede utilizar una base de datos u otro mecanismo de almacenamiento, al que se tiene acceso mediante una capa de acceso a Datos (Data Access layer). La capa de acceso a datos se utiliza para leer información de una base de datos. Sin embargo, no hay nada que impida al servicio Web obtener sus datos de otro servicio Web - ya sea un servicio Web genérico de tipo componente, o uno de uso específico.

Publicación y consumo de servicios Web

Un proveedor parte de un desarrollo heredado o de un nuevo producto.

El proveedor desarrolla y publica una interfase basada en un

Servicio Web. Ésto incluye la publicación automática, en la Web, de un descriptor del servicio,

en un formato estándar XML.

Un consumidor construye automáticamente, a partir del descriptor del servicio, las clases “proxy”

o “stub” que le permitirán acceder al Servicio Web desde sus aplicaciones.

El consumidor desarrolla la parte cliente que consumirá el Servicio Web, usando las clases

“proxy”.

Tecnología .NET

Microsoft .NET es una plataforma para generar, ejecutar y experimentar la próxima generación de aplicaciones distribuidas. Abarca clientes, servidores y herramientas de desarrollo.

Los servicios Web pueden ser específicos a una aplicación en concreto, sin embargo existe un gran número de servicios horizontales que la mayoría de las aplicaciones Web necesitan. Esto puede suministrarse mediante bloques de servicios Web. Un ejemplo es Microsoft Passport que pone a disposición una utilidad individualizada entre múltiples sitios Web.

Page 6: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

El consumidor de un servicio Web puede ser un navegador de Internet, otro dispositivo con conexión a Internet, o una aplicación. Incluso un servicio Web puede en sí mismo ser consumidor de otro servicio Web de la misma forma que un componente COM puede utilizar otro componente como parte de su implementación y funcionamiento.

A continuación se muestra un esquema que representa el funcionamiento de los Servicios Web, como bloques en la plataforma .NET

La tecnología ASP.NET va a permitir crear estos servicios web o utilizarlos directamente llamándolos desde una aplicación. Cuando se crea un servicio web XML se expone la funcionalidad de la aplicación para que pueda ser usada por otros clientes. Hacer esto permite que otros clientes puedan usar el servicio web para acceder, enviar y procesar información contenida en el mismo.

Estos servicios pueden ser usados no sólo por otras aplicaciones web, sino también por aplicaciones de escritorio.

Cuando se implementa un servicio web con ASP.NET se debe colocar la etiqueta [web Method] al principio de cada método para que sean capaces de recibir las solicitudes del servicio web y devuelvan el resultado. La comunicación entre el cliente y el servicio web al que llama se produce , como se ha mencionado anteriormente, mediante el protocolo SOAP, se define como va a producirse el intercambio de información XML.

Por un lado el cliente enviará una petición SOAP y el servicio web le devolverá la respuesta SOAP, estando serializados todos los mensajes en XML para que pueda producirse la comunicación. En Visual Studio, crear servicios web (que tendrán extensión .asmx) es bastante sencillo. Todos ellos deberán tener la directiva:

Esta directiva indicará el lenguaje en el que estará escrito el archivo de respaldo en la propiedad Language . Las propiedades Codebehind y Class indican el nombre del archivo de respaldo y la clase a la que pertenece el servicio web respectivamente.

En el archivo de respaldo se podrá tener todos los métodos que se crean necesarios, pero como se dijo antes, todos deben llevar la etiqueta [webMethod] si se quiere que sean accesibles desde la web. También se debe especificar el espacio de nombres XML donde debería encontrarse nuestro servicio web, ya que los métodos que se implemente deben estar localizados en un espacio de nombres único para que puedan ser distinguidos de otros métodos que pertenezcan a otro servicio. Por defecto, el espacio de nombres usado es htt p://tempuri.org, aunque sería más correcto usar alguno propio, como el nombre de nuestra compañía u organización

Page 7: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

La siguiente figura muestra la creación de un servicio web XML de ejemplo en el IDE Visual Studio.

Ventajas y desventajas de los Servicios Web

Ventajas Desventajas

Aporta interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.

Los servicios web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento.

Al apoyarse en HTTP, los servicios web pueden aprovecharse de los sistemas de seguridad sin necesidad de cambiar las reglas de filtrado.

Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados.

Para realizar transacciones no pueden compararse en su grado de desarrollo con los estándares abiertos de computación distribuida como CORBA.

Su rendimiento es bajo si se compara con otros modelos de computación distribuida, tales como RMI, CORBA, o DCOM. Es uno de los inconvenientes derivados de adoptar un formato basado en texto. Y es que entre los objetivos de XML no se encuentra la concisión ni la eficacia de procesamiento.

Existe poca información de servicios web para algunos lenguajes de programación

Page 8: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

III. MATERIALES Y EQUIPO Para la realización de la guía de práctica se requerirá lo siguiente:

No. Requerimiento Cantidad

1 Guía de práctica #11: Aplicaciones con web service ASP 1

2 Computadora con Visual Studio 2012 instalado y una instancia de SQL Server con Management Studio Express

1

3 Memoria USB o disco flexible 1

IV. PROCEDIMIENTO Parte I: Creando REST

1. Proceda a descargar los recursos complementarios de esta práctica. 2. Inicie la herramienta de Microsoft SQL Server Management Studio instalado en su computadora

Ubique a la base de datos “Agenda”. Si esta base de datos ya existe, proceda a eliminarla. 3. Entre los recursos proporcionado para esta guía, ubique el script ( bd13.sql ) y de doble clic

sobre este archivo. Luego, presione el botón “! Execute” y espere hasta que en el inferior muestre la confirmación de consulta ejecutada exitosamente. De clic secundario sobre la carpeta Databases del Explorer del Gestor SQL, seleccione opción Refresh y confirme que se ha creado la base de datos “Agenda”.

4. Abra el Visual Studio y acceda al menú “File” para crear un nuevo proyecto “ASP.NET MVC 4 Web Application” con nombre wsAgenda. Clic en OK

5. Ahora escoja cual es la plantilla que quiere utilizar, la cual es la de Web Api.

6. Clic en OK, ahora ya tenemos listo nuestro proyecto Web Api.

Page 9: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

7. Ahora procederemos a crear una conexión a la base de datos Agenda. Para ello en el Explorador

de soluciones, haga clic con el botón secundario del mouse en el nombre del sitio Web actual y, a continuación, haga clic en Agregar nuevo elemento.

8. En Data , ubique y de clic en “ADO.NET Entity Data Model” , a continuación, en el cuadro Nombre, escriba “BDAgenda”

9. A continuación clic en Agregar (Add).

Page 10: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

10. Ahora empieza el asistente de creación de modelo y su contexto, pidiendo lo primero la forma en que voy a trabajar. Si con un modelo vacío desde el que luego se construirá la base de datos o al revés. En este caso seleccione “Generar desde la base de datos”.

11. Clic en next. 12. Lo siguiente que me pide Visual Studio es la conexión que quiero utilizar, la cual la creo nueva

con el formulario estándar en Windows para definirlas.

13. Ahora que ya he definido la conexión, y comprobado que se conecta correctamente a la base de datos, sigo rellenando el formulario indicando –ojo es un agujero de seguridad- que almacene las credenciales de conexión en el propio web.config de la aplicación.Y le indico también el

Page 11: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

nombre con que quiero que inserte el valor de la cadena de conexión en el fichero de configuración.

14. El asistente me indica que objeto puedo insertar en el formulario esquema de entidades, y he seleccionado las tablas, ya que es lo único que tengo. Seleccionar “Pluralizer o singularize generate object names”, es muy comodo para que las tablas se escriban en plural, pero las entidades que contiene se escriban en singular. Es decir, la tabla Contactos contiene entidades del tipo Contacto.

Page 12: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

15. Después de pulsar el botón Finalizar (Finish), en el Explorador de soluciones deberá aparece

una nueva referencia y un fichero Model.edmx.

16. Deberemos Recompilar el proyecto para poder crear los CRUD. Para ello en el Explorador de Soluciones, nos posicionamos en el nombre de nuestro proyecto (wsAgenda), damos clic derecho y seleccionamos la opción Build.

17. Ahora ya podemos crearemos los CRUD REST, para ello en el Explorador de soluciones, nos posicionamos en la carpeta Controllers, haga clic en agregar y seleccione Controller….

18. Lo siguiente que se debe hacer es seleccionar cual es la entidad que vamos a utilizar en el controlador para transmitir/recibir la información.

Page 13: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

19. Clic en el botón agregar. Con esto ya creamos el CRUD de nuestra tabla Login. 20. Ahora prodemos a cambiar la configuración de la API para que solo funcione con respuestas en

formato JSON. Para eso, Vamos a modificar el archivo WebApiConfig.cs de la carpeta App_Start.

21. En ese archivo, adicionamos las siguientes líneas de código resaltadas para remover el soporte

a respuesta tipo XML. Estas líneas deben ir dentro del método Register. var json = config.Formatters.JsonFormatter; json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;

config.Formatters.Remove(config.Formatters.XmlFormatter);

22. Proceda a probar el REST, presionando F5, deberá aparecer las siguientes pantallas:

Page 14: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

23. De clic en la opción API para poder ver todos nuestros métodos e información de los métodos

que hemos creado en nuestro REST.

24. Para probar nuestra REST, lo haremos probando el método GET api/Login, el cual nos mostrara la información de todos los datos de todos nuestros Login ingresados. Para ello deberemos ingresar en nuestro navegador la dirección local de nuestro REST más el nombre del método a utilizar.

25. Para poder consumir el REST desde una aplicación externa deberemos configurar el CORS, esto lo haremos en nuestro web.config agregando las siguientes líneas dentro de las etiquetas <system.webServer>.

Page 15: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

<httpProtocol> <customHeaders> <add name = "Access-Control-Allow-Origin" value= "*" /> </customHeaders> </httpProtocol>

26. Realizar el controlador de la tabla Contacto, tal como se realizamos para Login, en el paso 17 al 19.

Parte II: Consumiendo REST

27. En los recursos se encuentra nuestra aplicación cliente es el proyecto llamado webService.

28. En la clase de Login.aspx.cs, debera crear el evento clic para el botón BtnEntrar y luego copiar dentro de él lo siguiente.

try { //Variable que guardar UL string sURL; sURL = "http://localhost:54910/api/Login"; //variable para acceso a datos a traves de HTTP WebRequest wrGETURL; wrGETURL = WebRequest.Create(sURL); //Variable para almacenar los valores de lectura del REST Stream objStream; objStream = wrGETURL.GetResponse().GetResponseStream(); //Objeto para realizar lectura de los datos obtenidos StreamReader objReader = new StreamReader(objStream); //Variable para almacenar la respuesta string jsonText = ""; int i = 0;//contador int errordatos = 0;//bandera de error //almacenamiento de datos JSON jsonText = objReader.ReadLine(); if (jsonText != null) { //parseo de String a objeto json var jss = new JavaScriptSerializer(); dynamic result = jss.DeserializeObject(jsonText); for (i = 0; i < result.Length; i++) { //verificacion de crendenciales if (result[i]["Usuario"] == TxtUsuario.Text && result[i]["contrasenia"] == TxtPassword.Text) { int cant; //busca el id del ultimo registro de contactos del usuario cant = result[i]["Contactoes"].Length; dynamic ultimoc = result[i]["Contactoes"][cant - 1]["Id_Contacto"]; //si usuario y contraseña son correctos permitir ingreso Session.Add("usuario", TxtUsuario.Text); Session.Add("cant", ultimoc);

Page 16: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

Response.Redirect("Index.aspx"); errordatos = 0; break; } else { errordatos++; } } if (errordatos > 0) { LblError.Text = "Usuario o Contraseña incorrecta, verifique sus datos"; } } else { LblError.Text = "La respuesta del Servidor de Datos ya tardo mucho, Lamentamos el inconveniente"; } } catch(Exception ex){ LblError.Text = "Error con Servicio de Datos, Lamentamos el inconveniente"; }

29. En la clase de AgregarContacto.aspx.cs, deberá crear las siguiente variables globales: string usu, ultimo; int cant;

string nombre;

30. Siempre en la clase AgregarContacto.aspx.cs, buscar el evento page_load y copiar lo siguiente

en ella: if (Session["usuario"] == null) { Response.Redirect("Login.aspx"); } Label2.Text = "AGENDA " + (string)Session["usuario"]; usu = (string)Session["usuario"]; ultimo = (string)Session["cant"]; cant = int.Parse(ultimo.Substring(1));

nombre = usu.Substring(0,1) ;

31. Siempre en la clase AgregarContacto.aspx.cs, deberá crear el evento clic para el botón

BtnGuardary luego copiar dentro de él lo siguiente: try { var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:54910/api/Contacto"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; int nuevo = cant + 1; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = new JavaScriptSerializer().Serialize(new { Id_Contacto = nombre + nuevo, Nombre = inputNombre.Text,

Page 17: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

Apellido1 = inputApellido.Text, Correo = inputCorreo.Text, Telefono = inputTel.Text, Direcion = inputDireccion.Text, Usuario = usu }); streamWriter.Write(json); } var response = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(response.GetResponseStream())) { var result = streamReader.ReadToEnd(); inputNombre.Text = ""; inputApellido.Text = ""; inputCorreo.Text = ""; inputDireccion.Text = ""; inputTel.Text = ""; } } catch(Exception ex){

}

32. Ahora en el formulario web VerContacto.aspx, deberá agregar las siguientes líneas dentro del

html. <script> $(window).ready(function () { var usu = document.getElementById('Label2').innerHTML; $.ajax({ type: "GET", url: "http://localhost:54910/api/Login/" + usu, dataType: "json", success: function (responseString) { for (i = 0; i < responseString.Contactoes.length; i++) { var table = document.getElementById("tblContactos"); { var row = table.insertRow(i + 1); var cell1 = row.insertCell(0); var cell2 = row.insertCell(1); var cell3 = row.insertCell(2); var cell4 = row.insertCell(3); var cell5 = row.insertCell(4); cell1.innerHTML = responseString.Contactoes[i].Nombre; cell2.innerHTML = responseString.Contactoes[i].Apellido1; cell3.innerHTML = responseString.Contactoes[i].Correo; cell4.innerHTML = responseString.Contactoes[i].Telefono; cell5.innerHTML = responseString.Contactoes[i].Direcion; } } }, error: function (xhr, errorType, exception) { var errorMessage = exception || xhr.statusText;

Page 18: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS … · realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los ... principio de cada método para

alert(errorMessage); } }) document.getElementById('Label2').innerHTML = 'AGENDA ' + usu; }); </script>

33. Proceda a ejecutar la aplicación y realizar las pruebas necesarias para verificar el funcionamiento tanto del cliente como de nuestro servicio web.

V. BIBLIOGRAFÍA

1. Thierry GROUSSARD. (2013). C# 5: Los fundamentos del lenguaje – Desarrollar con Visual Studio 2012 . Barcelona: ENI.

2. http://dsc.itmorelia.edu.mx/~jcolivares/documents/manual_webservices.pdf

3. http://www.nebaris.com/post/40/web-services-en-c-sharp