HolaMundoWeb El objetivo de este primer ejercicio es hacer una aplicación web que acceda al servicio web HolaMundoWS desarrollado en la sesión 4 del curso. El interfaz de la aplicación es el que se muestra en la figura 1.
Figura 1
Los pasos a seguir son: 1) Comprobar que el servicio web funciona correctamente desde Internet Explorer 2) Añ Añadir el dire irector torio virtu irtua al “HolaM laMundoWeb” al IIS IIS 3) Crear un solución “sesion 7” y añadir un nuevo proyecto web asp.net llamado “HolaMundoWeb” 4) Ag Agregar un web form formcon el aspecto de la fig figura 1
Libre Configuración Curricular.
2/8
Programación Orientada a Objetos con Herramientas Visuales
5) Crear una hoja de estilos corporativa y añadirla al web form 6) Crear una referencia al servicio web y almacenarla en una variable de sesión. El código para hacer esto es: protected localhost.HolaMundoWS ws { get { localhost.HolaMundoWS result; if (Session["ws"] != null) result = (localhost.HolaMundoWS)Session["ws"]; else { result = new localhost.HolaMundoWS(); result.CookieContainer = new System.Net.CookieContainer(); result.Credentials = System.Net.CredentialCache.DefaultCredentials; Session["ws"] = result; } return result; } } 7) Añadir código al evento de los botones: private void holaBtn_Click(object sender, System.EventArgs e) { holaLbl.Text = ws.HelloWorld(); } private void adiosBtn_Click(object sender, System.EventArgs e) { adiosLbl.Text = ws.ByeWorld(); } 8) Probar la misma aplicación con los servicios web del ordenador del profesor y de un compañero
Libre Configuración Curricular.
3/8
Programación Orientada a Objetos con Herramientas Visuales
CalculadoraWeb El objetivo de este ejercicio es afianzar los conocimientos adquiridos en el ejercico anterior y aprender a manejar excepciones (cuando los números introducidos son demasiado grandes y cuando se intenta dividir por cero) El interfaz de la aplicación es el que se muestra en la figura 2.
Figura 2 Los pasos a seguir son: 1) Comprobar el servicio web, crear el nuevo directorio virtual “CalculadoraWeb” y agregar un nuevo proyecto asp.net a la solución actual llamado “CalculadoraWeb” 2) Agregar un formulario y darle el aspecto de la figura 2 3) Añadir la referencia y crear una propiedad que almacene el servicio web en el estado de la sesion. 4) Añadir código a los eventos 5) Probar la misma aplicación con los servicios web del ordenador del profesor y de un compañero ¿Cómo maneja las excepciones antes indicadas? La respuesta en el laboratorio.
Libre Configuración Curricular.
4/8
Programación Orientada a Objetos con Herramientas Visuales
ElTiempoWeb El objetivo de este ejercicio es hacer una aplicación web que se conecte a un servicio web desarrollado por terceras personas. En esta práctica se aprenderá a deserializar archivos XML. El interfaz de la aplicación es el que se muestra en la figura 3:
Figura 3 Los pasos a seguir son: 1) Crear el directorio virtual y añadir un nuevo proyecto “ElTiempoWeb”
Libre Configuración Curricular.
5/8
Programación Orientada a Objetos con Herramientas Visuales
2) Crear un formulario con el aspecto de la figura 3 3) Agregar las referencia web y almacenarla en el estado de la sesión 4) Crear una clase para almacenar los valores devueltos por el servicio web: [ Ser i al i z abl e( ) ] publ i c c l as s Cur r ent Weat her { publ i c Curr ent Weat her ( ) {} publ i c s t r i ng Locat i on; publ i c s t r i ng Ti me; publ i c s t r i ng Wi nd; publ i c s t r i ng Vi si bi l i t y; publ i c s t r i ng Temper at ur e; publ i c s t r i ng DewPoi nt; publ i c s t r i ng Rel ati veHumi di t y; publ i c s t r i ng Pr essur e; publ i c s t r i ng St at us; }
5) Crear una propiedad “currentWeather” para almacenar en el estado de sesión el valor devuelto por el servico web. 6) Añadir código a los eventos. Para deserializar la cadena XML devuelta por el servicio web escriba el siguiente código: pr i vat e voi d crear Bt n_Cl i ck( obj ect sender, Syst em. Event Ar gs e) { s t r i ng f i l ename = @" F : \ us r \ . . . ” / / r u t a del di r e ct o r i o v i r t ual Str eamWr i t er swFr omFi l e = new Str eamWr i t er( f i l ename, f al s e, Syst em. Text. Encodi ng. Uni code); swFromFi l e. Wr i t e( resul t Txt . Text) ; swFromFi l e. Fl ush( ) ; swFromFi l e. Cl ose( ) ; Xml Ser i al i z er s er i al i z er = new Xml Ser i al i zer ( t ypeof ( Cur r ent Weat her) ) ; Fi l eSt r eam f s = new Fi l eSt r eam( f i l ename, Fi l eMode. Open) ; curr ent Weather = ( Curr ent Weat her) seri al i zer. Deseri al i ze( f s) ; f s . Cl os e( ) ; r e l l enaTabl a( ) ; }
¿Qué espacios de nombres tiene que añadir a su proyecto?
Libre Configuración Curricular.
6/8
Programación Orientada a Objetos con Herramientas Visuales
UsuariosDiaryWeb El objetivo de este ejercicio es desarrollar una aplicación web para poder ver y añadir usuarios a la base de datos DiaryDB vista en el sesión 6. Asimismo, se hace una introducción al control datagrid para formularios web. El interfaz de la aplicación es el que se muestra en la figura 4:
Figura 4 Los pasos a seguir son los siguientes: 1) Añada al servicio web “DiaryWS” hecho en la sesión 6 las operaciones getUsers para obtener el dataset de todos los usuarios y changeUsers para guardar los cambios realizados en dicho dataset. (Recuerde cómo lo ha hecho para retrieveNotes y changeNotes) 2) Pruebe getUsers desde Internet Explorer 3) Cree el directorio virtual y añada el proyecto “UsuariosDiaryWeb” 4) Cree un formulario con el aspecto de la figura 4 5) ree propiedades para almacenar en el estado de sesión tanto la referencia al servicio web “DiaryWS” (ws) como el valor devuelto por getUsers (usersDataSet)
Libre Configuración Curricular. Programación Orientada a Objetos con Herramientas Visuales
6) Añada código a los eventos 7) Para rellenar el datagrid con el resultado de getUsers escriba: pr i vat e voi d usuari osBt n_Cl i ck( obj ect sender, Syst em. Event Ar gs e) { usuar i osDt g. DataSour ce = user sDataSet ; usuari osDt g. Dat aMember = "User s" ; usuari osDt g. DataBi nd( ) ; }
8) Para añadir un nuevo usuario el código sería: pr i vat e voi d añadi r Bt n_Cl i ck( obj ect sender, Syst em. Event Ar gs e) { try { i f ( nuevoPass1Txt . Val ue == nuevoPass2Txt. Val ue) { l ocal host. usersDt s. UsersRow r ; r = users DataSet . Users. NewUsersRow( ) ; r . Begi nEdi t ( ) ; r. l ogi n = nuevoLogTxt. Text; r . password = nuevoPass1Txt . Val ue; r . name = nuevoNomTxt . Text; r . EndEdi t ( ) ; usersDataSet . Users. AddUsersRow( r ) ; ws. changeUser s( user sDat aSet) ; } el se { throw new Except i on ( "Las cont r aseñas no coi nci den") ; } } cat ch ( System. Data. Const r ai nt Except i on) { throw new Except i on( "Cl aves de usuari o repeti das") ; } }
9) Ejecute la aplicación web utilizando los servicios web del profesor y de un compañero
7/8
Libre Configuración Curricular.
8/8
Programación Orientada a Objetos con Herramientas Visuales
EjerciciosWeb El objetivo de este ejercicio es hacer una aplicación web con frames para centralizar todos los ejercicios hecho durante esta sesión. El interfaz de esta aplicación es el que se muestra en la figura 5
Figura 5 Los pasos a seguir son: 1) Crear el directorio virtual para albergar la aplicación “EjerciciosWeb” 2) Establecer como formulario de inicio una página html que defina los marcos de nuestra aplicación. Para esto puede utilizar el asistente que proporciona visual studio. (Agregar -> nuevo elemento -> conjunto de marcos) 3) Cree la página aspx con los botones del menú 4) Para redireccinar una página web a un marco puede utilizar la siguiente función publ i c voi d r edi r e ct ( s t r i ng page, s t r i ng f r ame) { Response. Wri t e( "wi ndow. open( \ "" + page + "\ ", \ "" + f rame + "\ ") ; scri pt >") ; }
5) Para los eventos de los botones del menú el código queda de la siguiente forma: pr i vat e voi d hol aMundoBt n_Cl i ck( obj ect sender, Syst em. Event Ar gs e) {r edi r ect( "htt p: / / l ocal host/ Hol aMundoWeb", "mai n") ; }