Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso
Programacin Web
Programacin Web
Bienvenida
Ahora que ya conoces la programacin orientada a objetos, tienes la capacidad de
desarrollar diversas aplicaciones.
En este mdulo tendrs la oportunidad mostrar que eres una persona exitosa,
capaz de enfrentar retos que requieren iniciativa y creatividad en el desarrollo de
programacin Web y de utilizar nuevas herramientas con las que podrs crear
aplicaciones cliente-servidor.
Agradecimiento y Reconocimiento
Despus de una ardua tarea de investigacin se ha logrado la creacin de una
obra vasta en conocimiento en el desarrollo de las Tecnologas de la Informacin y
Comunicacin.
La presente obra no hubiera sido posible sin la valiosa aportacin de destacados
autores y especialistas en la materia. Es por ello que a manera de reconocimiento
queremos agradecer su participacin:
PROGRAMACIN WEB
Mtro. Pedro Bello Lpez
Benemrita Universidad Autnoma de Puebla
Ing. Yal Galicia Hernndez
Benemrita Universidad Autnoma de Puebla
Introduccin
En el mundo estn sucediendo grandes cambios que hacen que las personas se
adentren ms en la tecnologa. Es por eso que el curso de Programacin Web
est desarrollado para que seas impulsor de este cambio.
Como primer paso veremos los elementos de la arquitectura de Internet, despus
la forma en que se desarrollan los sitios Web, considerando los aspectos de
programacin, as como las aplicaciones en la vida moderna, tomando en cuenta
siempre a las personas que las utilizan.
II
Programacin Web
Este mdulo tiene dos enfoques de desarrollo, De acuerdo a tus intereses y al
finalizar el captulo 2, podrs elegir el enfoque que prefieras para trabajar durante
el curso (cada enfoque abarca 3 captulos). Al finalizar estos, concluiremos con el
captulo 6, en donde podrs aplicar cualquiera de los dos enfoques en
aplicaciones reales.
Esperamos que muestres la iniciativa y responsabilidad que en otros cursos para
que aproveches tus habilidades de la mejor forma posible en este curso.
Recuerda que tu tutor tiene un compromiso de honestidad, responsabilidad y
lealtad contigo, al igual con las personas con las que interactas.
Intenciones Educativas
En este curso se pretende que obtengas las habilidades y los conocimientos
necesarios para proponer soluciones Web originales, basadas en el
autoaprendizaje y la reflexin, asumiendo actitudes de honestidad,
responsabilidad y confidencialidad.
Adems, el curso de programacin Web est encaminado a desarrollar tu
creatividad para obtener productos de software que proporcionen un servicio de
calidad.
Objetivos
GENERALES
Al finalizar el curso sers capaz de aplicar las diferentes herramientas y lenguajes
de programacin en Internet para el desarrollo de aplicaciones Web.
ESPECIFICOS
Conocers la arquitectura de desarrollo en Internet.
Podrs desarrollar aplicaciones Web en la plataforma que elijas
Aplicars las herramientas para crear pginas Web estticas, dinmicas y activas.
Vinculars bases de datos dentro de las aplicaciones Web.
Aplicars los conocimientos adquiridos en el desarrollo de un sitio Web.
III
Programacin Web
Metodologa
En el curso de POO utilizaremos distintas tcnicas de aprendizaje para cubrir los
contenidos. A continuacin encontrars una breve descripcin de dichas tcnicas.
Adicionalmente, en las actividades de aprendizaje podrs encontrar las
indicaciones especficas en relacin con la tcnica utilizada en cada una de ellas.
APRENDIZAJE BASADO EN PROBLEMAS (ABP)
La tcnica de Aprendizaje Basado en Problemas (ABP, del ingls PBL-Problem
Based Learning) es una tcnica didctica constructivista. La cual consta de los
siguientes pasos:
1. El docente formar grupos de alumnos que trabajarn en equipo para resolver
el problema del escenario propuesto. Se nombrar un secretario por equipo, el
cual organizar el funcionamiento del mismo y se encargar de enviar los
resultados de las actividades realizadas al profesor.
2. El docente presentar el material del escenario, asignar roles y unificar
criterios.
3. Los estudiantes elaborarn una serie de preguntas respecto al escenario;
posteriormente, procurarn resumir el problema del escenario plantendolo (de ser
posible) en forma de una sola pregunta. El docente verificar que tal pregunta sea
la apropiada.
4. Una vez establecida la pregunta principal y las preguntas particulare s, los
estudiantes analizarn y seleccionarn en equipo las preguntas ms relevantes a
investigar.
5. Como primer entregable, cada estudiante entregar un reporte individual
correspondiente a una investigacin hecha por l mismo.
6. Posteriormente, ya en equipo, lo integrantes discutirn en equipo los resultados
de su investigacin para establecer en comn las respuestas a las preguntas
planteadas.
3. Finalmente, como segundo y ltimo entregable, cada integrante entregar un
reporte individual, ms sin embargo, este deber reflejar los aspectos puestos
en comn en la discusin en grupo. Adicionalmente, en algunos casos de
programacin, se solicitarn la entrega de programas.
IV
Programacin Web
MTODO DE CASOS
El mtodo de casos es diferente a otros sistemas de enseanza porque a
diferencia de los sistemas tradicionales exige que se tome parte activa en el
anlisis de los problemas y en la determinacin de alternativas o cursos de accin
en situaciones reales muy especficas.
El mtodo de casos te pondr en roles que implican toma de decisiones. Un punto
muy importante del mtodo es el anlisis del caso ya que permite aprender, a
travs de la experiencia de otros casos similares para t toma de decisiones. Entre
ms casos se resuelvan, mayor ser tu habilidad para identificar los problemas y
formular soluciones de la vida real, lo cual es de vital importancia, ya que no son
situaciones inventadas.
En el mtodo de casos, las decisiones que se tomen y el proceso que se siga para
tomar decisiones es la clave, desarrollando habilidades para la toma de
decisiones, y que pueda sustentar mediante un anlisis adecuado, aprendiendo en
el proceso a comunicar tus criterios, a defender los hechos y opiniones en
debates.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
Programacin Web
Los pasos a seguir en el mtodo de casos se muestran en el siguiente diagrama:
COMPROBACIONES DE LECTURA
La tcnica de comprobacin de lectura tiene como finalidad fomentar en el alumno
la habilidad de leer, analizar y comprender. La comprensin que realices, se
reflejar al final de cada leccin, ya que se presenta una evaluacin por medio de
preguntas muy puntuales acerca de la lectura.
Fuentes de Informacin
Aqu podrs encontrar algunas ligas a Internet que te apoyarn en tu aprendizaje
de los diferentes temas que forman este curso
Arquitectura de Internet
Tutorial TCP/IP
http://ditec.um.es/laso/docs/tut-tcpip/3376fm.html
Otro Tutorial sobre TCP/IP
http://www.saulo.net/pub/tcpip/
Algunos conceptos de Cliente -Servidor
http://www4.uji,es/%7Eal019803/tcpip/index.htm
Modelo Cliente-Servidor
http://www.juntadeandalucia.es/averroes/recursos_informaticos/curso_inter
net/curso/interne4.htm
ASP.NET
Universidad .NET
http://www.microsoft.com/spanish/msdn/comunidad/uni.net/
VI
Programacin Web
Tutorial de ASP.NET
http://samples.gotdotnet.com/quickstart/aspplus/doc/default.aspx
VII
Programacin Web
Contenido
BIENVENIDA.....................................................................................................................................................................II
INTRODUCCIN .............................................................................................................................................................II
INTENCIONES EDUCATIVAS .................................................................................................................................III
OBJETIVOS......................................................................................................................................................................III
METODOLOGA ............................................................................................................................................................ IV
FUENTES DE INFORMACIN.................................................................................................................................VI
REGLAS DEL JUEGO Y SISTEMA DE EVALUACIN................................................................................VII
1.
ARQUITECTURA............................................................................................................................................... 1
1.1.
1.2.
2.
DISEO DE PGINAS................................................................................................................................ 12
2.1.
LENGUAJE DE MARCAS..................................................................................................................................12
2.1.1. HTML ........................................................................................................................................................ 12
2.1.2. XML ........................................................................................................................................................... 22
2.2.
ELEMENTOS M ULTIMEDIA ............................................................................................................................29
2.2.1. Imgenes, Video y Sonido..................................................................................................................... 29
2.2.2. Animaciones ............................................................................................................................................. 32
3.
4.
5.
INTRODUCCIN ...............................................................................................................................................37
CONTROLES DE SERVIDOR ............................................................................................................................53
CONTROLES DE USUARIO ..............................................................................................................................78
A CCESO A DATOS ...........................................................................................................................................85
TRABAJO CON OBJETOS..............................................................................................................................149
INTRODUCCIN ............................................................................................................................................158
ESCRITURA DE SERVICIOS WEB ................................................................................................................182
UTILIZACIN DE DATOS EN SERVICIOS WEB...........................................................................................184
6.
VIII
Programacin Web
1. Arquitectura
1.1. ARQUITECTURA (Como funciona el Internet y servicios que
proporciona)
1. Lea detalladamente el siguiente escenario:
Escenario Arquitectura (que es Internet)
Silvia una empresaria de mucho xito en la venta de servicios de recursos
humanos en los aos 80s y principios de los 90s despus de darle de beber leche
a su linda gatita parti a su oficina, en donde tambin labora su hijo Bebo, el cual
tiene mucho inters en que la empresa de su madre continu con el xito que ha
tenido ya que a ltimas fechas la cartera de clientes se ha mantenido y va
disminuyendo la demanda de sus servicios en lugar de aumentar, su madre es
una persona emprendedora pero por su edad no es tan fcil convencerla del uso
de la tecnologa ya que siempre ha pensado que el trato personal en el rea de
recursos humanos es lo que cuenta, por tal motivo Bebo ha decidido que tiene que
convencer a su madre de ofrecer algn servicio innovador dentro del rea de
recursos humanos a fin de poder mantener he incrementar su cartera de clientes
para poder lograrlo, piensa que lo primero que debe hacer es convencer a Silvia
de Cmo funciona el Internet y los servicios que puede proporcionar? por tal
motivo decido tomarse un tiempo de 4 hrs.
En la que mostr las bondades del Internet a Silvia ya que entro a sitios de
Internet donde consulto informacin, compro un producto, contesto su mail, bajo
informacin de productos que quera comprar y cada operacin y/o consulta que
hacia le explicaba ampliamente a Silvia. Al terminar su sesin demostrativa Silvia
continuo con su trabajo cotidiano y camino a casa record lo sucedido con su hijo
y pensaba que ella debera conocer un poco mas del tema y as reconsiderara la
peticin de Bebo de darle la oportunidad de realizar una aplicacin en el rea de
R.H.
Despus de cenar y antes de conciliar el sueo por su mente solo pensaba como
funciona eso de Internet, que se requiere para que funcione y que puedo hacer
con el Internet.
2. Con base en el escenario, y trabajando en equipo, elabora una serie de
preguntas sobre como ayudar a Silvia para que pueda disipar sus dudas. Elijan las
10 que consideren ms relevantes y el secretario del equipo deber colocarlas
tareas Preguntas Arquitectura "metas de aprendizaje". 1.1
Programacin Web
3. Una vez que tengan el visto bueno del profesor sobre sus preguntas, lleva a
cabo una investigacin individual, que debers colocar en tareas: Resumen
individual Arquitectura 1.1 y te ser calificado con la rbrica de Resumen
individual
5. Una vez que tengan la aprobacin del profesor debern elaborar una propuesta
de solucin a la pregunta de su definicin del problema, as como su reporte el
cual colocars en Resumen por equipo Arquitectura 1.1, en donde se incluir
dicha propuesta y una sntesis de las respuestas a sus preguntas relevantes
finales hechas en Preguntas Arquitectura "metas de aprendizaje". 1.1
El contenido del reporte debe cumplir con la siguiente rbrica Resumen equipo
Gua Tutorial, Arquitectura-cliente servidor
1.
2.
3.
4.
6.
Definicin del problema esperada:
Como funciona el Internet?
7.
Programacin Web
Como funciona el Internet?
Que requerimientos de software se necesitan para usar el Internet?
Qu req uerimientos de hardware se necesitan para hacer un sitio de Internet?
Qu servicios proporciona el Internet?
Qu es un servicio?
Qu es el correo electrnico?
Qu es la mensajeria?
Hay seguridad al trabajar en la Web?
Qu tan factible es construir aplicaciones Web?
Cunto cuesta construir esto?
8.
Metas de aprendizaje:
Como funciona el Internet?
Que requerimientos de software se necesitan para usar el Internet?
Qu requerimientos de hardware se necesitan para hacer un sitio de Internet?
Qu servicios proporciona el Internet?
Rbrica para evaluar el reporte de investigacin individual Mximo 9 puntos.
Ver rubrica resumen investigacin personal
Rbrica para evaluar el reporte final de ABP (en equipo) por parte del tutor.
Mximo 9 puntos
Ver rubrica resumen investigacin equipo
1.1 Arquitectura- TCP/IP y SERVICIOS
1. Lea detalladamente el escenario:
Escenario Arquitectura (TCP/IP)
A la semana siguiente Silvia estaba preocupa por la noticia que acaba de recibir
uno de sus exclusivos y principales clientes sin saberlo ella, desde hace tiempo lo
estaba compartiendo con un competidor eso significaba que empezaba a perder
servicios con sus mejores clientes, aunque preocupada, estaba segura de que una
nueva puerta llamada Internet se habra a su paso, as que mando llamar a Bebo y
le pidi que tomara las acciones necesarias en la elaboracin de productos de
recursos humanos apoyados en la tecnologa de Internet, luego record, que por
su preocupacin no haba alimentado a su gata esa maana.
Fue as como Bebo decidi como primer paso hacer la compra de equipo de
computo, la instalacin de la red interna as como hacer una pequea pgina Web
que anunciar su empresa y decidi comprar 20 computadoras actuales, 1 switch
para comunicar los 2 pisos de oficinas que tenia en el edificio (piso 20 con 12
equipos y el piso 15 con 8 equipos y un servidor) se instal el servidor de correo y
coloco algunos documentos que podran bajar los clientes va FTP (segn el
proveedor le haba dicho). Y as pudo estrenar su flamante instalacin y muy
contento de poner a Silvia Consultores RH en la vanguardia de tecnologa, pero a
Programacin Web
pocos das tuvo varios problemas el correo a veces funcionaba y a veces no, los
clientes se quejaban de que no siempre podan bajar bien los documentos y que la
pgina no siempre estaba disponible que reciban un error que empezaba con algo
de http... y 2 mquinas mostraban al iniciarse un mensaje que deca IP duplicada y
ya no podan hacer uso de los servicios de red.
Bebo consulto a varios asesores, pero no entenda bien lo que le decan algunos
comentaron debes tener un servidor DHCP otros decan que bastaba con colocar
una adecuada administracin de direcciones IP otros comentaban que el switch no
funcionaba y que solo con los concentradores bastaba mientras que los dems
decan que le faltaba un dominio de Internet y una direccin fija, eso era
demasiado para Bebo as que no saba en que proveedor confiar el trabajo de los
ajustes y la afinacin del equipo recin adquirido.
As que pens que estaba en esta indecisin por su carencia de conocimientos del
tema.
2. Con base en el escenario, y trabajando en equipo, elaboren una serie de
preguntas que ayuden a Bebo Elijan las 10 que consideren ms relevantes y el
secretario del equipo deber colocarlas tareas Preguntas Arquitectura "metas de
aprendizaje". 1.2
3. Una vez que tengan el visto bueno del profesor sobre sus preguntas, lleva a
cabo una investigacin individual, que debers colocar en tareas: Resumen
individual Arquitectura 1.2
y te ser calificado con la rubrica de Resumen
individual
5. Una vez que tengan la aprobacin del profesor debern elaborar una propuesta
de solucin a la pregunta de su definicin del problema, as como su reporte el
cual colocars en Resumen por equipo Arquitectura 1.2, en donde se incluir
dicha propuesta y una sntesis de las respuestas a sus preguntas relevantes
finales hechas en Preguntas Arquitectura "metas de aprendizaje". 1.2
Programacin Web
El contenido del reporte debe cumplir con la siguiente rbrica Resumen equipo
Rbrica para evaluar el reporte de investigacin individual Mximo 9 puntos.
Contenido del
reporte
Metas de
aprendizaje
Excelente
Bien
Regular
Mal
Las incluye y
coinciden con el
resto del equipo.
No las incluye
Responde con
cierto detalle, pero
no fundamenta
todas sus
respuestas.
Incluye
diagrama(s)
explicativo(s)
No responde
de manera
completa todas
las metas de
aprendizaje
Incluye mas de 3
referencia s
adicionales a las
publicadas
No las incluye
Les da una
Respuestas a las respuesta clara y
metas de
fundamentada en
aprendizaje
la bibliografa
consultada
Referencias
bibliogrficas
Las incluye de
Las incluye de
manera completa,
manera completa y
pero no con el
correcta.
formato solicitado
Total
TOTAL
Programacin Web
Rbrica para evaluar el reporte final de ABP (en equipo) por parte del tutor.
Mximo 9 puntos.
Contenido del reporte
Excelente
Bien
Regular
Mal
Dan una
solucin/explica
cin detallada al
problema, pero
no la
fundamentan de
manera
completa.
Incluye
diagrama(s)
explicativo(s).
El equipo no
proporciona una
solucin/explica
cin al
problema.
Dan una
solucin/explicaci
Solucin o explicacin
n detallada al
al problema
problema y con
fundamentos
slidos.
Sntesis de la
informacin con la cual
fundamentan la
solucin/explicacin
Referencias
bibliogrficas
Sintetizan de
manera lgica y
coherente la
informacin
investigada por
todos.
nicamente
Presentan un
presentan listas
resumen lgico
de datos y/o copia
de la
de lo que cada No la incluyen.
informacin
quien investig,
recopilada por
sin darle
todos.
coherencia.
Las incluye de
manera completa
y correcta.
Las incluy e de
manera
completa, pero
no con el
formato
solicitado
Incluye mas de 3
referencia s
adicionales a las
publicadas
Total
No las incluye
TOTAL
Programacin Web
Entender el como funciona un red y sus principales servicios
4. Escenario:
Escenario Arquitectura (TCP/IP)
A la semana siguiente Silvia estaba preocupa por la noticia que acaba de recibir
uno de sus principales y exclus ivos clientes sin saberlo ella desde hace tiempo lo
estaba compartiendo con un competidor eso significaba que iba a empezar a
perder servicios con algunos de sus clientes importantes, aunque preocupada,
estaba segura de que una nueva puerta llamada Internet se habra a su paso, as
que mando llamar a Bebo y le pidi que tomaras las acciones necesarias en la
elaboracin de productos de recursos humanos apoyados en la tecnologa de
Internet, luego record que por su preocupacin no haba alimentado a su gata
esa maana.
Fue as como Bebo decidi como primer paso hacer la compra de equipo de
hardware y en la instalacin de la red interna as como hacer una pequea pgina
Web que anunciara a su empresa y as decidi comprar 20 computadoras
actuales, 1 switch para comunicar los 2 pisos de oficinas que tenia en el edificio
(piso 20 con 12 equipos y el piso 15 con 8 equipos y un servidor) as como instalar
la red y el servidor de correo y coloco algunos documentos que podran bajar los
clientes va FTP (segn el proveedor le haba dicho). Y as pudo estrenar su
flamante instalacin y muy contento de poner a Silvia Consultores RH en la
vanguardia de tecnologa, pero a pocos das tuvo varios problemas el correo a
veces funcionaba y a veces no, los clientes se quejaba n de que no siempre podan
bajar bien los documentos y que la pgina no siempre estaba disponible que
reciban un error que empezaba con algo de http y 2 mquinas mostraban al
iniciarse un mensaje que deca IP duplicada y ya no podan hacer uso de los
servicios de red.
Bebo consulto a varios asesores pero no entenda bien lo que le decan algunos
comentaron debes tener un servidor DHCP otros decan que bastaba con colocar
una adecuada administracin de direcciones IP otros comentaban que el switch no
funcionaba y que solo con los concentradores bastaba mientras que los dems
decan que le faltaba un dominio de Internet y una direccin fija, eso era
demasiado para Bebo as que no saba a que proveedor decidir para darle el
trabajo de los ajustes y afinacin del equipo acabado de comprar.
As que pens que estaba en esta indecisin por su carencia de conocimientos del
tema.
5. Posibles trminos que deban clarificarse:
6. Definicin del problema esperada:
Programacin Web
Qu es el tcp/ip?
7. Preguntas esperadas en el anlisis del problema:
Qu es el tcp/ip?, Cul es la red en que se basa el Internet? Estas 2 preguntas
son similares
Cmo trasmite informacin el tcp/ip?
Qu es el servicio de eMail?
Qu es el servicio FTP?
Qu otros servicios hay?
Cmo funcionan los servios de Internet FTP, HTTP, SMTP, SHTP?
Qu son los dominios?
Cmo elegir un consultor?
Cunto cuesta los servicios de consultora?
Las amarillas son preguntas que podran surgir pero que no son tratadas como
parte del tema
8. Metas de aprendizaje:
Qu es el tcp/ip?
Cmo funcionan los servios de Internet FTP, HTTP, SMTP, SHTP?
Cmo trasmite informacin el tcp/ip?
Qu son los dominios?
Rbrica para evaluar el reporte de investigacin individual Mximo 12 puntos.
Ver rubrica resumen investigacin personal
Rbrica para evaluar el reporte final de ABP (en equipo) por parte del tutor.
Mximo 9 puntos.
1.2.
Arquitectura cliente-servidor
Introduccin
Cada da se incrementan los sitios Web con aplicaciones que demandan
funcionalidad adicional de algn tipo de procesamiento y/o almacenamiento de
datos por parte del servidor (no basta con de simplemente ver informacin de
pginas estticas), nos es relativamente fcil encontrar sitios Web que permiten
registrar datos y posteriormente nos envan informacin de venta, tambin hay
servicios de bsqueda de empleo sin olvidar los 2 servicios mas conocidos que
son el Messenger y el e-mail, estos sistemas en su gran mayora siguen el
siguiente comportamiento.
Programacin Web
En el servidor se guarda la informacin y es ah donde se realizan las operaciones
de base de datos.
El cliente (usuario) desde su navegador (browser) activa el proceso de dar de alta
sus datos, de hacer modificaciones o de consultar alguna informacin y
posteriormente ver el resultado de cada operacin en su pantalla.
Este Web Quest tiene como finalidad comprender el modelo de programacin que
aplica en el Internet para poder construir aplicaciones que demanden alguna
funcionalidad adicional de proceso en el servidor.
La Tarea
Tu eres miembro de la empresa de consultora que llevar a cabo la asistencia
tcnica a la empresa Silvia Consultores RH, tu contacto principal ser Bebo (el
lder de proyecto por parte de la empresa Silvia Consultores RH) l te ha
solicitado como primer paso que le expliques detalladamente y con ayuda de
algunos diagramas el funcionamiento del modelo de programacin de Internet
Tu trabajo consiste en realizar un informe en Word y lo colocars en el foro que se
encuentra a continuacin.
Debes incluir diagramas y explicaciones concisas de como funciona el modelo de
programacin y los elementos de software y hardware mnimos que se requieren
para su funcionamiento.
El Proceso
Para llevar a cabo la tarea debes utilizar el mismo equipo con el que has venido
trabajando y realizar las siguientes acciones:
Consulta las ligas de "cliente servidor" en la seccin de recursos y determina
cuales son los roles que desempean los clientes y cual el de los servidores.
En base a las ligas de "cliente servidor" indica como se realiza la comunicacin
entre un cliente y un servidor y realiza un diagrama.
En base a las ligas de "cliente servidor" menciona que componentes mnimos de
hardware se requiere para que exista una comunicacin de arquitectura clienteservidor e indique que funcin realiza cada uno de ellos.
En base a las ligas de "cliente servidor" indica que componentes mnimos de
software se requiere para que exista una comunicacin de arquitectura clienteservidor e indique que funcin realiza cada uno de e llos.
Programacin Web
En base a las ligas de "llamado de una pgina Web" realiza un diagrama que
explique el proceso, que sucede cuando un usuario teclea una direccin de
Internet y al cabo de un Tiempo l puede ver la pgina Web que solicit (anexe un
prrafo de al meno s 120 palabras que explique el diagrama)
Recursos
Para cliente servidor, componentes de software y hardware utiliza los siguientes
enlaces:
http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5038/carac.HTM
http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5038/indice.HTM
http://docs.hp.com/es/5990-8174/ch02s01.html#chcbdiac
http://www.monografias.com/trabajos24/arquitectura-cliente -servidor/arquitecturacliente -servidor.shtml
http://www.htmlweb.net/manual/basico/internet_2.html
http://www.geocities.com/aula_web/inter03.html
http://agamenon.uniandes.edu.co/~revista/articulos/cliser.html
Para comprender como se procesa el llamado de una pgina Web consulta los
siguientes enlaces:
http://es.wikipedia.org/wiki/HTTP
http://www.brujula.net/wiki/Capa_de_aplicaci%C3%B3n
http://eia.udg.es/~ramon/ib/t3/tema3.htm#punto32
http://cdec.unican.es/libro/HTTP.htm
10
Programacin Web
Evaluacin
Se evaluar el trabajo en equipo de acuerdo a la siguiente rbrica.
Contenido
Orden y
organizacin
Diagramas
grficos y
tablas
Excelente
3
Bien
2
Medio
1
Incompleto
0
Explicaciones
completas de todos
los puntos y
proporciona
informacin adicional
Explicaciones de
todos los puntos
Explicaciones
incompletas ,faltan
fundamentos
El equipo no
presenta alguna
explicacin del
problema
Trabajo bien
Buen orden y que Problemas con el orden
No existe un
ordenando y
las explicaciones y/o clasificacin de las
orden en las
redacciones precisas concuerden con
explicaciones y
ideas y ests no
que coincidan con
los diagramas
presenta problemas de coinciden con
los diagramas
concordancia con los
los diagramas
diagramas propuestos
Los diagramas y/o
Contiene
dibujos son claros y bastantes grficos
ayudan al
y diagramas
entendimiento de la
arquitectura cliente
servidor
Ausencia de
diagramas o no
se pueden
entender
Conclusin
Al completar esta actividad habrs entendido como funciona el modelo de
programacin de Internet conocido como cliente servidor, cuales son los
componentes genricos de software y hardware que se requieren y el proceso que
sucede desde que escribes una direccin URL en un navegador (browser) y el
servidor te devuelve la pgina html que solicitaste.
11
Programacin Web
2. Diseo de Pginas
TIP:
Copia los ejemplos proporcionados para ver su resultado y despus ve
quitando pequeas partes de cdigo para entender mejor su uso.
Productos esperados / Evaluaciones
Construye una pgina Web que contenga como mnimo los siguientes puntos:
1. Historia de la computacin.
Por generaciones, realizando un cuadro comparativo en el cual especificas
las caractersticas ms importantes dentro de cada una, este lo puedes
realizar mediante el uso de tablas.
12
Programacin Web
2. Precursores de la computacin
Solo coloca su principal aportacin a la computacin e incluye imgenes de
ambos.
3. Tendencias en el desarrollo de la computacin.
Estas deben ser de hardware y software.
4. Dentro de las tendencias que haz encontrado elige la que ms te haya
interesado y desarrllalo.
Tu documento deber elaborarse con frames y tener el siguiente formato:
13
Programacin Web
Material de Apoyo
Consulta el material de apoyo y realiza todas las actividades que se indican.
En la siguiente presentacin podrs conocer las bases para elaborar un
documento HTML.
14
Programacin Web
COMENTARIOS
Con la finalidad de documentar tu pgina puedes insertar algunos comentarios en
los que especificas donde comienza la pgina o bien quien es el autor de la
misma, por ejemplo
<!Este es un comentario-->
Esta parte del cdigo no se vera en el documento.
FUENTES
La etiqueta <FONT> controla casi en su totalidad el estilo del texto a utilizar. Tiene
tres atributos <SIZE> mediante el cual se establece el tamao de la fuente,
<FACE> esta se encarga de establecer la fuente, <COLOR> establece color al
texto.
La etiqueta <FONT> requiere de un delimitador, por ejemplo si utilizas <FONT
SIZE> debers cerrar con </FONT>.
Los tamaos del texto van del 1 al 7, y los colores deben ser especificados en
ingles.
P.e. <FONT COLOR = "blue">
ESTRUCTURA DEL TEXTO
PRRAFOS Y SALTOS DE LNEA
Dentro de un documento HTML cualquier salto de lnea o tabulacin y dems
separadores son ignorados por el navegador de tal manera que si deseas separar
tu texto en prrafos debers colocar la etiqueta <P> y su respectivo delimitador
</P>. Otra etiqueta que se encarga de separar el texto es la del salto de lnea
<BR>, la cual funciona como retorno de carro.
ESTILOS DE TEXTO
A continuacin se presentan los estilos de texto usados frecuentemente:
15
Programacin Web
16
Programacin Web
<TR><TH>Lunes</TH><TH>Martes</TH><TH>Miercoles</TH><TH>Jueves</TH
><TH BGCOLOR=blue>Viernes</TH>
</TR>
<TR>
<TD BGCOLOR=gray>4</TD><TD
BGCOLOR=green>2</TD><TD>6</TD><TD>2</TD><TD>2</TD>
</TR>
<TR>
<TD BGCOLOR= red>6</TD><TD
BGCOLOR=orange>6</TD><TD>4</TD><TD>4</TD><TD>4</TD>
</TR>
</TABLE>
</BODY>
</HTML>
ENLACE
S
ESTRUCTURA DE ENLACE
Un enlace est conformado por la etiqueta <A> seguida por diferentes atributos
que indican el tipo de enlace que se desea hacer.
Existen dos tipos de enlaces:
17
Programacin Web
Debers colocar la siguiente lnea de cdigo dentro del cuerpo de tu documento
html.
<IMG SRC=paraiso.jpg"> donde nombre de imagen como su nombre lo indica es
el nombre de la imagen que deseas incluir en la pgina.
MARQUESINAS
Mediante HTML se pueden crear marquesinas con el uso de la etiqueta
<MARQUEE> y su delimitador </MARQUEE>; dentro de ellas se pone el texto que
se desea, en el formato que se quiere, por ejemplo:
<MARQUEE><br><FONT FACE="COMIC SANS MS" SIZE="5"
COLOR="blue">ESTA ES UNA MARQUESINA</FONT></MARQUEE>
Esta etiqueta tiene varios atributos, te mostramos los ms usados:
LISTAS
En una pgina Web puedes elaborar listas, mediante la etiqueta <OL> y con el
atributo <type>, este ltimo permite establecer el tipo de lista a crear. Por ejemplo
si deseas crear una lista enumerada debers colocar el siguiente cdigo:
<OL TYPE=1><OL>
<li>Presentación.
<li><A HREF="introduccion1.html">Introducción a los sistemas
operativos.</A>
<li>Casos de Estudio.
<OL TYPE=1>
<li><A HREF="http://www.cs.buap.mx/~fulo">Linux.</A>
</ol>
<li><A HREF="Glosario.html">Glosario.</A>
</ol>
Checa que en cada rengln se establece la etiqueta <li>, la cual indica que es
parte de la lista numerada.
18
Programacin Web
SONIDO
Dentro de una pgina Web se pueden incorporar diversos sonidos con la opcin
de poder ser activada por el usuario o bien ser ejecutada de manera automtica al
cargar la pgina.
Para este fin se utiliza la etiqueta <BGSOUND> asociada al atributo SRC (source).
Los archivos a reproducir pueden ser de los siguientes formatos: *.wav, *.au, *.mid
El atributo que acompaa a esta etiqueta es LOOP, el cual se encarga de
especificar cuntas veces se debe ejecutar el archivo de sonido y puede tener un
valor numrico o valor infinite que reproducir el archivo en un ciclo cerrado. Por
ejemplo:
<BGSOUND SRC=musica.wav LOOP=infinite>
FRAMES
Un frame es un marco que divide la pantalla en filas y columnas como lo
deseemos.
El atributo que debemos conocer para la realizacin de los frames es TARGET, el
cual determina la zona de la pantalla en donde se mostraran los elementos.
Ya que el atributo TARGET determina el lugar de destino del contenido, hay que
sealar los valores especiales de este atributo.
1. TARGET = _blank. El enlace se carga en una nueva ventana.
2. TARGET = _self. El enlace se carga en la misma ventana en que se
encuentra.
3. TARGET = _parent. El enlace se carga en el FRAMESET inmediatamente
superior al documento.
4. TARGET = _top. El enlace se carga en la totalidad de la ventana.
Estructura bsica
Debemos resaltar que el cdigo principal de una pgina con frames no presenta
las etiquetas <BODY> y </BODY>, sino que el cdigo deber ser incluido en las
etiquetas <HEAD> y </HEAD>
La etiqueta a utilizar es la de <FRAMESET>, esta ltima se encarga de dividir la
pantalla en ventanas, verticales u horizontales. Y los atributos que determinan el
aspecto de estas ventanas son ROWS y COLS.
El atributo ROWS define el nmero de divisiones verticales, as mismo con COLS
pero la hace de manera horizontal.
19
Programacin Web
Los valores para ambos pue den ser absolutos en pxeles, porcentajes, o
bien valores de escala relativos, y se basan en los siguientes formatos.
SCR = url toma el valor URL del documento que se debe mostrar en la
pantalla, sino la ventana se quedar vaca.
NAME =nombre de la ventana como se indica con este atributo
nombramos a una ventana, de manera que puede ser el destino de
cualquier enlace.
MARGINWIDTH = valor Se emplea para precisar el nmero de pxeles
entre los bordes izquierdo y derecho de la ventana.
MARGINHEIGTH = valor Lo mismo que el anterior pero respecto a los
bordes superior e inferior.
SCROLLING = yes|no|auto Despliega barras de desplazamiento o no.
Yes: muestra las barras, No: nunca muestra las barras; auto: hace que el
navegador decida si son necesarias o no en funcin del contenido de la
misma.
NORESIZE = Indica al navegador que la ventana no puede ser
redimensionada por el usuario.
Veamos un ejemplo:
20
Programacin Web
<HTML>
<HEAD>
<TITLE>Ejemlo de frames combinados</TITLE>
<FRAMESET COLS =100%, ROWS=33%, 33%,*>
<FRAMESET COLS=20%,20%,20%,20%,*>
<FRAME NAME=Frame 1 SRC=ejemplo.html>
<FRAME NAME=Frame 2 SRC=ejemplo.html>
<FRAME NAME=Frame 3 SRC=ejemplo.html>
<FRAME NAME=Frame 4 SRC=ejemplo.html>
</FRAMESET>
<FRAMESET COLS=50%,*>
<FRAME NAME=Frame 5 SRC=ejemplo.html>
<FRAME NAME=Frame 6 SRC=ejemplo.html>
</FRAMESET>
</FRAMESET>
</HEAD>
</HTML>
Ejemplos
Ejemplo de una pgina sencilla.
Tutorial de HTML
TIPS
1. El uso de muchas fuentes dificulta la lectura de la pgina, te recomendamos
no usar ms de tres fuentes.
2. No hagas demasiado extenso el contenido de las pginas, ya que tardara
demasiado en cargarse.
3. No utilices textos intermitentes (la etiqueta blink), ya que adems de hacer
molesta la lectura distrae la atencin del lector.
4. No abuses de los iconos animados, pues hars ms lenta la carga de tu
pgina.
5. Utiliza solo las imgenes necesarias.
6. Utiliza fondos con colores claros para textos con colores obscuros y
viceversa, para no afectar la legibilidad del documento.
7. El titulo de la pgina debe ser lo ms descriptivo posible. Puedes utilizar
marquesinas.
8. Se recomienda hacer enlaces a otras pginas con contenido similar al de la
tuya. Y revisa frecuentemente si se encuentran vigentes de lo contrario
retirarlas.
21
Programacin Web
2.1.2. XML
Objetivos
En este tema identificars los elementos bsicos de un documento XML y su
interpretacin, adems de su diferencia con HTML y la importancia actual de
aplicaciones utilizando XML.
Instrucciones
1. Revisa la presentacin de XML que se encuentra ubicada en la seccin de
materiales de apoyo.
2. Una vez que hayas estudiado este tema, comprobars tus conocimientos
contestando el cuestionario X M L que se encuentra en la entrada principal de
este captulo. Sigue las instrucciones que ah se te dan.
22
Programacin Web
Editores de XML
Los editores son aquellos programas que nos permiten escribir los documentos
XML. Dentro de estos nos podemos encontrar los bsicos como el Notepad, o
algunos ms complejos, que nos permiten saber si el documento XML que
escribimos est bien formado e incluso si es vlido. Es decir, realizan el parseo
automticamente. Estos editores pueden soportar tambin XSL, DTDs,
SCHEMAS, HTML, XHTML, ect.
Un editor que recomendamos es el XML Spy v3.0, soporta xml, html, xsl, dtd, rdf,
schemas W3C,.... Podemos encontrar un nmero considerable de estos editores
en: Editores XML.
Cuales son los mejores Navegadores XML
Son las herramientas mediante las cuales podemos visualizar los documentos
XML.
La ltima versin de los navegadores ms utilizados nos permite visualizar y
trabajar con documentos XML.
Las versiones 5 y 6 del Explorer nos permiten visualizar XML utilizando XSLT y
CSS y manipularlo utilizando DOM y JavaScript.
Las versiones 6.x de Netscape o las versiones ms recientes de Mozilla, permiten
tambin visualizar XML utilizando CSS y DOM.
Pero adems existen mltiples browsers que nos permiten visualizar algunos
vocabularios XML concretos.
El navegador CML JUMBO, que nos permite visualizar documentos CML. Este es
un lenguaje XML mediante el cual se pueden describir frmulas moleculares y
qumicas.
El Amaya Browser, mediante el cual, entre otros, podemos visualizar y crear
documentos Mathml, que es un vocabulario XML para la descripcin de frmulas
matemticas.
Un mvil con tecnologa WAP incorpora un browser capaz de mostrar pginas
WML, que no es ms que un vocabulario XML desarrollado para escribir pginas
para mviles.
CREACIN DE DOCUMENTOS XML
Reglas bsicas
Hay dos tipos de construcciones: el marcado (entre <...> &...;) y los datos de
carcter (todo lo dems).
23
Programacin Web
Todo documento XML se compone de elementos. Cada elemento est delimitado
por una etiqueta de comienzo y otra de fin, a no ser que sea vaco. Los elementos
vacos constan de una nica etiqueta. Los nombres de las etiquetas son arbitrarios
y no pueden contener espacios.
Siempre hay un elemento raz, cuya etiqueta de inicio ha de ser la primera de
todas y la de cierre la ltima de todas.
Cada elemento puede contener datos de carcter, elementos, ambas cosas a la
vez o puede estar vaco.
No se puede mezclar la anidacin de las etiquetas: los elementos deben abrirse y
cerrarse por orden.
Los elementos pueden tener atributos (propiedades) que nos ofrecen informacin
sobre ellos. Los valores de los atributos deben ir entrecomillados. Tanto atributos
como valores son arbitrarios.
Maysculas y minsculas no son intercambiables.
El espacio en blanco es libre, se puede utilizar para leer mejor el documento.
24
Programacin Web
Cumple la regla denominada "document".
Respeta todas las restricciones de buena formacin
Cada una de las entidades analizadas que se referencia directa o indirectamente
en el documento est bien formada.
LA REGLA DOCUMENT
1. Contiene uno o ms elementos.
2. Hay exactamente un elemento, llamado raz, o elemento documento, del cual
ninguna parte aparece en el contenido de ningn otro elemento.
3. Para el resto de elementos, si la etiqueta de comienzo est en el contenido de
algn otro elemento, la etiqueta de fin est en el contenido del mismo elemento.
Es decir, los elementos delimitados por etique tas de principio y final se anidan
adecuadamente mutuamente.
Vlidos: Adems de estar bien formados, siguen una estructura y una semntica
determinada por un DTD: sus elementos y sobre todo la estructura jerrquica que
define el DTD, adems de los atributos, deben ajustarse a lo que el DTD dicte.
Aqu podemos ver un ejemplo muy sencillo:
<?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?>
<ficha>
<nombre> Angel </nombre>
<apellido> Barbero </apellido>
<direccion> c/Ulises, 36 </direccion>
</ficha>
Lo primero que tenemos que observar es la primera lnea. Con ella deben
empezar todos los documentos XML, ya que es la que indica que lo que la sigue
es XML. Aunque es opcional, es recomendable incluirla.
Puede tener varios atributos, algunos obligatorios y otros no:
versin: Indica la versin de XML usada en el documento. Es obligatorio ponerlo, a
no ser que sea un documento externo a otro que ya lo inclua.
encoding: La forma en que se ha codificado el documento. Se puede poner
cualquiera, y depende del parser el entender o no la codificacin. Por defecto es
UTF-8, aunque podran ponerse otras, como UTF -16, US-ASCII, ISO-8859-1, etc.
No es obligatorio salvo que sea un documento externo a otro principal.
25
Programacin Web
standalone: Indica si el documento va acompaado de un DTD ("no"), o no lo
necesita ("yes"); en principio no hay porqu ponerlo, porque luego se indica el
DTD si se necesita.
La "declaracin de tipo de documento" define qu tipo de documento estamos
creando para ser procesado correctamente. Es decir, definimos que declaracin
de tipo de documento (DTD) valida y define los datos que contiene nuestro
documento XML.
En ella se define el tipo de documento, y dnde encontrar la informacin sobre su
Definicin de Tipo de Documento, mediante:
Un identificador pblico (PUBLIC): que hace referencia a dicha DTD.
Identificador universal de recursos (URI): precedido de la palabra SYSTEM.
Ejemplos:
<!DOCTYPE MESAJE SYSTEM "mesaje.dtd">
<!DOCTYPE HTML PUBLIC "-/ /W3C/ /DTD HTML 3.2 Final/ /EN">
<!DOCTYPE LABEL SYSTEM "http://www.ulpgc.es/dtds/label.dtd">
Espacios de nombres
Los espacios de nombres sirven para evitar las colisiones entre elementos del
mismo nombre, y en general, para distinguir los distintos grupos de elementos en
un mismo documento.
Cada espacio de nombres se asocia con una URL, que slo sirve como
identificador nico y no tiene por qu ser vlida.
Terminologa
Cuando un documento cumple con las reglas sintcticas que hemos descrito, se le
denomina documento bien formado.
Un documento vlido, adems de ser bien formado, cumple las restricciones que
le imponen una DTD o un esquema XML.
Cabecera
La cabecera, que es opcional aunque recomendable, da informacin sobre cmo
manejar el documento a los analizadores y otras aplicaciones. Puede contener:
26
Programacin Web
Una declaracin XML para el analizador, con la versin, juego de caracteres
utilizado, y una indicacin de si el documento es o no autnomo (si requiere o no
otros documentos).
Instrucciones de proceso para otras aplicaciones.
Una declaracin DOCTYPE, que referencia a la DTD que restringe el documento.
Que son los XLink y los Xpointer?
Quienes han utilizado la Web alguna vez, saben hasta qu punto es importante el
hiperenlaces. Sin embargo, no todo el mundo sabe que las nociones sobre
hiperenlaces de la Web son bastantes reducidas comparadas con los sistemas de
hipertexto comerciales y acadmicos. XML por si solo no puede corregir esto, pero
existen dos normas asociadas: XLINk y Xpointer que dan un paso de gigante en la
consecucin de un entorno de hipertexto ms avanzado.
En HTML colocamos un enlace utilizando la etiqueta... y podemos enlazar a un
nico documento o al interior de este siempre y cuando este marcado con la
etiqueta: ..
La especificacin XLink
Se especifica como permitir el enlace entre documentos XML.
Todava esta en desarrollo, pero mediante esta especificacin, cuando los
navegadores la implementen, se podr:
La especificacin XPointer
Se define la sintaxis que nos permitir enlazar al interior de un documento XML.
Con esta nueva norma los enlaces ya no slo sern a elementos ya marcados
sino que se permitirn enlaces del tipo:
"Enlaza a la primera aparicin de la palabra Internet".
Taller de ejercicios Resueltos
<?xml version="1.0"?>
<doc xml:base="http://example.org/today/"
xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <title>Virtual Library</title>
</head>
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
27
Programacin Web
<body>
<paragraph>See <link xlink:type="simple" xlink:href="new.xml">what's
new</link>!</paragraph>
<paragraph>Check out the hot picks of the day!</paragraph>
<olist xml:base="/hotpicks/"> <item> <link xlink:type="simple"
xlink:href="pick1.xml">Hot Pick #1</link> </item>
<item> <link xlink:type="simple" xlink:href="pick2.xml">Hot Pick #2</link> </item>
<item> <link xlink:type="simple" xlink:href="pick3.xml">Hot Pick #3</link>
</item>
</olist>
</body>
</doc>
Los URIs en este ejemplo son transformados en URIs completos como se indica:
"what's new" lleva al URI "http://example.org/today/new.xml"
"Hot Pick #1" lleva al URI "http://example.org/hotpicks/pick1.xml"
"Hot Pick #2" lleva al URI "http://e xample.org/hotpicks/pick2.xml"
"Hot Pick #3" lleva al URI http://example.org/hotpicks/pick3.xml
Cuestionario
Elabora el siguiente cuestionario en una presentacin PowerPoint, contstalo y
adjntalo e n tu pgina realizada en el capitulo de HTML.
Qu es un meta-lenguaje?
Qu significan las siglas XML?
Cules son las aplicaciones de XML?
Qu es DTD?
Menciona 2 reglas bsicas de la estructura sintctica de un documento XML.
Cules son las dos estructuras de un documento XML?
Cules son los principales componentes de un documento XML?
Menciona algunos editores de XML.
Define con tus propias palabras respecto a las etiquetas, como trabaja XML.
Crees que es mejor XML sobre HTML? Explica por que?
Determina las ventajas y desventajas de trabajar con cada uno.
Explica las diferencias entre ambos. (Elabora un cuadro comparativo)
En XML cules son los tipos de documentos?, explcalos.
Investiga un poco ms acerca de la regla DOCUMENT y explcala.
Qu es un XLINK y un XPOINTER?
28
Programacin Web
29
Programacin Web
Entre las aplicaciones informticas multimedia ms comunes podemos mencionar
juegos, programas de aprendizaje y material de referencia.
La mayora de las aplicaciones multimedia incluyen asociaciones predefinidas
conocidas como hipervnculos o enlaces, que permiten a los usuarios moverse por
la informacin de modo intuitivo.
La conectividad que proporcionan los hipertextos hace que los programas
multimedia no sean presentaciones estticas con imgenes y sonido, sino una
experiencia interactiva infinitamente variada e informativa.
Las aplicaciones multimedia son programas informticos, que suelen estar
almacenados en CD-ROMs y claro que pueden residir en pginas de Web.
Elementos
visuales
30
Programacin Web
Las barras de desplazamiento, que suelen estar situadas en un lado de la pantalla,
permiten al usuario moverse a lo largo de un documento o imagen extensa.
Los hipervnculos o enlaces conectan creativamente los diferentes elementos de
una presentacin multimedia a travs de texto coloreado o subrayado o por medio
de iconos, que el usuario seala con el cursor y activa pulsndolos con el mouse.
Utiliza estas imgenes para
investigado
Imagen 1:
Imagen 2:
31
Programacin Web
Llena la Tabla siguiente con la informacin de las imgenes en sus diferentes
formatos:
GIF
JPG
PCX
BMP
TIF
Tamao en
Bytes
Porcentaje de
deformacin
Porcentaje de
prdida de
resolucin
Porcentaje de
nitidez
Toma en cuenta que debers elaborar dos tablas, una para la imagen 1 y otra
para la imagen 2
2.2.2. Animaciones
Objetivos
En esta seccin aprenders a crear animaciones bsicas tiles para la buena
presentacin de tus pginas HTML.
Instrucciones
Revisa la presentacin introduccin a flash que se encuentra ubicada en la
seccin de ma terial de apoyo del curso.
Realiza la actividad que se encuentra en la seccin de Evaluaciones para realizar
una pelcula sencilla y agrgala a tu pgina Web.
Productos esperados / Evaluaciones
Elabora una pelcula sencilla en Flash, por ejemplo, donde muestres una pelota
rebotando.
32
Programacin Web
Pasos a seguir:
1. Una vez que haz entrado a Flash, crea un nuevo documento con el color de
fondo que ms te agrade.
2. Ahora selecciona la herramienta: dibujar ovalo
3. Coloca la figura dentro del escenario, y elige el color de relleno de tu
agrado.
4. Inserta una nueva escena, en la cual debes poner nuevamente la figura,
pero en otra posicin, estableciendo la secuencia de rebote.
5. Repite el paso 4 cuantas veces sea necesario.
6. Una vez terminada la pelcula, guarda el archivo y prubalo usando el men
Control---TestMovie.
7. Crea una nueva liga en la pgina que realizaste en la seccin anterior, y
anexa tu animacin.
8. Dentro del Material de Apoyo podrs ver un ejemplo similar.
Para evaluar este tema:
Debers enviar a tu tutor tu pgina HMTL en la que incluirs las animaciones
realizadas aqu. Este trabajo representa el 7.5% de la calificacin final, siempre y
cuando lo entregues en la fecha y forma acordada.
Esta actividad se considerar como exitosa si el resultado de la evaluacin de tu
pgina es arriba de 70/100.
Material de Apoyo
Aqu encontrars el material necesario para elaborar una sencilla animacin
usando Flash. Sigue las instrucciones que se te dan en la presentacin y al final
de ella tendrs una pelcula que debers incluir en tu pgina.
INTRODUCCION A FLASH
CONOCIENDO FLASH
Se te recomienda que antes de empezar a elaborar tu propia pelcula, veas una
ya terminada que podrs encontrar dentro de la carpeta de Flash 5-- Tutorial --Terminado, para darte una idea de lo que puedes hacer.
Puedes seguir la siguiente ruta:
C:\Archivos de programa\Macromedia\Flash5 \Tutorial\Finished
33
Programacin Web
34
Programacin Web
PANELES
Los paneles permiten ver, organizar y modificar los elementos de una pelcula de
Flash.
35
Programacin Web
Consta de cuatro secciones:
36
Programacin Web
3. Formularios Web
3.1. Introduccin
Objetivos
Al finalizar este tema tendrs la capacidad de crear aplicaciones ASP.Web usando
la tecnologa .NET. Adems, conocers los principales elemento que se presenta n
a un usuario a travs de su navegados, esto es, una pgina Web o Formulario
Web.
Actividad 1
Nombre de la Actividad: Acercando la tienda al cliente
37
Programacin Web
Productos esperados / Evaluaciones
Este tema se evaluar con el documento que entregars, tu respuesta deben ser
detallada y justificada, se tomar en cuenta tu creatividad, originalidad y que cubra
con los elementos especificados. Este trabajo contar el ?% de la calificacin
final, siempre y cuando lo entregues en la fecha y forma acordada.
Gua para el profesor
1. Verificar que se encuentra el video clip SevenCycle en la seccin de
materiales del curso.
2. Revisar el documento que el alumno ha obtenido un panorama bien
definido de la importancia de una aplicacin Web.
Actividad 2
Nombre de la Actividad: Conociendo ASP.NET
Objetivo: Al finalizar esta actividad sers capaz de identificar los principales
componentes del framework de .NET, explicars el modelo de ejecucin de
ASP.NET y el proceso de desarrollo de una aplicacin Web ASP.NET
Instrucciones:
1. Estudia con atencin la
presentacin Introduccin ASP.NET que se
encuentra ubicada en los materiales de apoyo del curso.
2. Visita el FORO para la actividad 2 que se encuentra en la pgina principal
del curso (Moodle)!!!!!!
Y agrega tu aportacin a lo siguiente: Por qu
crees que ASP.NET sea una buena opcin para desarrollo de aplicaciones
Web? justifica tu respuesta
Productos esperados / Evaluaciones
Este tema se evaluar con la aportacin que realices a la pregunta incluida en el
foro, tus respuestas deben ser detalladas y justificadas, se tomar en cuenta tu
creatividad y originalidad. Este trabajo contar el ?% de la calificacin final,
siempre y cuando lo entregues en la fecha y forma acordada.
Gua para el profesor
Verificar que la liga a la presentacin se encuentra disponible y activo en la
seccin de materiales de apoyo para este tema
38
Programacin Web
Materiales de apoyo
Aqu encontrars los materiales de apoyo para este captulo
Da click aqu para ver el video clip "Seven Cycles", indicado en la actividad
1 de esta seccin.
Da click aqu para iniciar la presentacin de introduccin a ASP.NET,
indicada en la actividad 2 de esta seccin.
Pre-requisitos
Fundamentos Arquitectura Web
Introduccin al Framework de .NET
Bosquejo de ASP.NET
Repaso de Visual Studio .NET
Creando el proyecto de una aplicacin Web ASP.NET
Pre-requisitos
Este modulo asume que:
39
Programacin Web
PC/Mac/Unix/...
+ Navegador
Cliente
Solicitud:
http://www.digimon.com/default.asp
HTTP, TCP/IP
Red
Respuesta:
<html>.</html>
Servidor
Servidor Web
Qu es el Framework de .NET?
Qe problemas soluciona .NET?
Los componentes del Framework de .NET
Beneficios al usar el Framework de .NET
Visual Studio .NET: La herramienta para desarrollar .NET
Qu es el Framework de .NET?
40
Programacin Web
Herramientas de
desarrollo
Clientes
Aplicaciones
Web ASP.NET
Bases de
Datos
Framework
.NET
Servicios Web
XML
Experiencias del
usuario
41
Programacin Web
Visual
Basic
C++
C#
Perl
XML We b S e rvic es
Python
ASP.NET
ADO.NET and XML
.NET F ram ework Class Lib rary
Co mmon La ng uag e Runti me (CLR)
Message
Queui ng
COM+
(Transa cti ons, P arti ti ons,
Obj ect P ool i ng)
IIS
WMI
Win3 2
42
Programacin Web
Window
s
API
M FC/ATL
.NET
Framework
Visual Basic
ASP
1990s
1980s
2000s
Herramientas para
Formularios Web
Multiples
Lenguajes
Herramientas para
Formularios Windows
Herramientas
para Web
Services
Diseo
Manejo de
Errores
Acceso a
Datos
Desarrollo
Pruebas
Instalacin
43
Programacin Web
44
Programacin Web
Editor/Navegador
Barra de
herramientas
Explorador
del servidor
Lista de tareas
Explorador de
Soluciones
Propiedades
Ayuda dinmica
45
Programacin Web
Qu es ASP.NET?
Conceptos centrales de ASP.NET
Una Aplicacin Web ASP.NET
El Modelo de ejecucin ASP.NET
Qu es ASP.NET?
Descripcin
Etiquetas HTML
estticas
Comentarios HTML
Directivas
46
Programacin Web
Elementos de una pgina ASP.NET
Elemento
Descripcin
Controladores de eventos
Bloques <script> de
declaracin de cdigo
Bloque de procesamiento
<%%>
Bloques <script> del cliente
Estos bloques son usados para almacenar cdigo ejecutable que no est
dentro de los procedimientos.
Estos bloques son usados para almacenar secuencias de comando que han
de ser ejecutadas en el cliente, normalmente en respuesta a un evento del
cliente. La eleccin del lenguaje (establecido en el atributo languaje) est
supeditada a los lenguajes compatibles con el explorador. JavaScript es la
eleccin ms comn.
Su sintaxis es: <% --%> Este texto NO es enviado al cliente.
Controles de usuario
Controles de Servidor
ASP.NET
Controles de servidor
personalizables
Estos son los controles personalizados que estn declarados con la extensin
.aspx. Ofrecen un mecanismo sencillo y directo de reutilizar los IU y su cdigo,
y pueden contener los mismos elementos que las pginas Web Form.
El conjunto de estos controles ofrecen a los programadores de ASP.NET un
modelo de programacin que imita al Visual Basic. Los controles se aaden a
una pgina, y los programadores escriben cdigo para controlar los eventos
producidos por la interaccin de los clientes con dichos controles. ASP.NET
ofrece dos grupos de controles: los controles HTML, en los que hay una
asignacin 1 a 1 con los controles de servidor para la mayora de los
elementos HTML, y los controles Web, que ofrecen un conjunto de controles
muy similares a los controles UI de Visual Basic.
Los controles de servidor personalizables son otro mecanismo para la
reutilizacin en ASP.NET. Estos estn definidos por los archivos de clase
(archivos .vb o .cs) y son precompilados en ensamblados (assamblies) antes
de su uso.
47
Programacin Web
Conceptos centrales de ASP.NET
Las aplicaciones ASP.NET se implementan a
Plataforma
travsde
deldesarrollo
mecanismode
porWeb
el cual un navegador
(o
cliente
Web)
accede
a
una pgina por unaEsto de alguna forma nos lleva a pensar
Nuevo modelo de programacin
IIS
Si la pgina no implementa
cdigo de lgica, entonces
es directamente el servicio de
IIS quien accede al SO y brinda
el resultado como cdigo HTML
al navegador o cliente Web
Aplicaciones
ASP.NET
.NET
Framework
Sistema Operativo
48
Programacin Web
Aplicacin Web ASP.NET
ASP.NET Web Server
Clientes
C
a
c
h
e
d
e
Internet
s
a
l
i
d
a
Web
Services
Formulario
Web
Pgina1.
aspx
Pginas de
cdigo
oculto
Pgina2.
aspx
global.
asax
XML
Data
Database
Web.
config
machine.
config
Componentes
49
Programacin Web
El proceso de desarrollo
Archivos de la aplicacin Web
Estructura de los archivos de la aplicacin Web
50
Programacin Web
El proceso de desarrollo
Crear una
especificacin
de diseo
Crear un
nuevo Proyecto
La especificacin de diseo es
el anteproyecto que se usar
crear
la interface para tu aplicacin
cuandoPara
se cree
la aplicacin
Web,
primero se necesita colocar los
Web
controles y objetos de las pginas Web
usando la ventana del Editor/Navegador
en modo diseo. Despus, escribir cdigo
para los procedimientos de eventos
Crear la
y escribir interface
cdigo
Visual Studio
.NET
Probar y
depurar
Construi r
Instalar
51
Programacin Web
MisDocument
os
Visual
Studio
wwwroot
Solucion
ProjectoA
Solucion.sln
ProjectoA.vbproj
WebForm1.aspx
WebForm1.aspx.vb
Archivos de desarrollo
(Cdigo oculto)
Archivos Assembly
Construir
Bin
ProjectoA.dll
html
Compilador JIT
Cdigo
Nativo
MSIL
Mquina
52
Programacin Web
53
Programacin Web
Instrucciones:
Utilizando lo aprendido sobre controles de servidor, crea un formulario para
capturar la informacin de los clientes de Seven Cycles de tal forma que estos
puedan realizar sus compras en lnea. La informacin mnima que se requiere
es:
1.
2.
3.
4.
54
Programacin Web
originalidad en el diseo de la pgina. Este trabajo contar el ?% de la
calificacin final, siempre y cuando lo entregues en la fecha y forma acordada.
Actividad 4
Nombre de la actividad: Escritura de las pginas de cdigo oculto (code
behind page)
Objetivo: Al finalizar esta actividad reforzars tu aprendizaje en la escritura del
cdigo oculto detrs de cada control.
Instrucciones:
1. Tomando como base el diseo de tu formulario desarrollado en la actividad
anterior
Mi Diseo de Formularios WebForms, agrega el cdigo
correspondiente a cada control.
2. Usa controles de validacin para forzar que los siguientes campos sean
requeridos: Titulo, Nombre, y direccin para envo de correspondencia. Si
estos campos no son especificados, despliega un asterisco en rojo a la
derecha de cada uno.
3. Usa el control ValidationSummary para especificar el mensaje siguiente
Hay errores en la forma, vea los campos marcados con *.
4. Usa un Validation control para forzar que el cdigo zip contenga 5 enteros.
5. Una vez que consigas que lo bsico de la forma trabaje, cambia el campo
de direccin a un control de usuario. Usa este control para ambas
direcciones.
6. Coloca publicas las propiedades get/set para cada campo de la direccin.
7. Coloca tu archivo .aspx.cs en la seccin de actividades del curso hasta
antes del da ___________________
Productos esperados / Evaluaciones
Este tema se evaluar verificando la funcionalidad y operatividad de tu formulario
webform. Se probaran todos los controles con diferentes casos de prueba.
Adems, se evaluar tu creatividad y originalidad en el diseo de la pgina. Este
trabajo contar el ?% de la calificacin final, siempre y cuando lo entregues en
la fecha y forma acordada.
Materiales de apoyo
Aqu encontrs los materiales de apoyo para este captulo
Presentacin de introduccin a Formularios Web, indicada en la actividad 1 de
esta seccin.
55
Programacin Web
Qu es un Formulario Web?
Los Web Forms o Formularios Web son los distintos elementos que se
presentan a un usuario a travs de su navegador
Son pginas cuya extensin es .aspx
Contiene atributos de pgina
La directiva @ Page.
Atributos de cuerpo (body attributes)
Atributos de la forma (form attributes)
56
Programacin Web
Controles HTML
Controles Web (Web controls)
o Controles intrnsecos
o Controles para validacin
o Controles ricos
o Controles de listas vinculables a datos
HTML
Son los controles comunes de pginas HTML, pero capaces de utilizar el atributo
runat=server
Se encuentran definidos como objetos dentro del Namespace
System.Web.UI.HtmlControls
<input type="text" id="txtNombre" runat="server">
<span id="spnInicio" runat="server">Inicio</span>
57
Programacin Web
Web Controls
Son objetos que se ejecutan del lado del servidor
Poseen mayor funcionalidad, y pueden contener otros objetos
Dependen del Namespace
System.Web.UI.WebControls
<asp:TextBox id="txtNo mbree" runat="server"
Text="[Ingrese su nombre]"/>
Web Controls
Sintaxis del Control
<asp:TextBox id="TextBox1" runat="server">Text_to_Display </asp:TextBox>
HTML que es generado por el Web control
<input name="TextBox1" type="text" value="Text_to_Display" Id="TextBox1"/>
Cmo trabajan los controles del servidor?
Al procesarse la pgina, y encontrar un atributo runat=server
El __VIEWSTATE
Uno de los problemas para los Web sites es como guardar el estado de los
controles (inicializaciones y entradas del usuario) en las pginas Web, as
como los viajes HTML de ida y vuelta entre el cliente y el servidor
Como es verdad para cualquier tecnologa basada en HTTP, los Web
Forms son menos-estado, lo cual significa que el servidor no retiene
informacin antes de la solicitud del cliente
Los formularios ASP.NET manejan el problema de almacenar el estado de
los controles Web agregando un control oculto llamado __VIEWSTATE,
que registra el estado de los controles en la Web Form.
58
Programacin Web
<form name="Form1" method="post" action="WebForm1.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE"
value="dDwtMTA4MzE0MjEwNTs7Pg==" />
'HTML here
</form>
Para maximizar el rendimiento de la pgina, se puede deshabilitar los atributos del
ViewState al nivel de pgina y habilitar el ViewState solo para los controles
seleccionados
<%@ Page EnableViewState="False" %>
<asp:ListBox id="ListName" EnableViewState="true" runat="server">
</asp:ListBox>
Demostra cin: Convirtiendo controles HTML a controles del Servidor
Una pgina asp
Sin controles del lado del servidor
Se convierte en aspx
Paso a Paso
Creando scripts en la pgina
Si deseamos colocar el cdigo de ejecucin del lado del servidor entre mezclado
con cdigo HTML
59
Programacin Web
Ciclo de ejecucin de la Pgina
Page_Init
Page_Load
Textbox1_Changed
Button1_Click
Page_Unload
Se Descarta la pgina
Controlando el ciclo de un formulario
La pgina recuerda su estado en __VIEWSTATE
El Page_OnLoad se ejecuta CADA vez que se llama a la pgina
o An cuando se haga para atrapar un evento
o Hay que tener cuidado acerca del seguimiento de cada uno de los pasos
Por ello, es necesario preguntar por IsPostBack del objeto Page, para saber si es
o no la primera vez que se accede a una pgina
o Si es TRUE indica que la pgina se ha vuelto a llamar as misma por
cualquiera de los eventos que cualquiera de los controles haya expuesto.
60
Programacin Web
o Si es FALSE indica que el navegador, para ese usuario, es la primera vez
que accede a la pgina
Demostracin: IsPostBack
A continuacin veremos un pequeo ejemplo de cdigo de:
o Cmo se llama constantemente a Page_OnLoad al ejecutar una pgina y
cmo puede controlarse esto.
o El uso del IsPostBack y el efecto que esto produce.
Resumiendo
Una vez que una pgina ha sido procesada y la salida visualizada por el
explorador, la pgina y sus controles son descartados. Los pasos de este proceso
son:
o El usuario pide la pgina desde el explorador
o La pgina y los controles son cargados e inicializados
o Si la pgina es el resultado de una devolucin (PostBack), el control de
estado es cargado desde el visor de estados (campo oculto del formulario
__VIEWSTATE), y cualquier cambio enviado por el usuario es aplicado.
o Tanto los valores originales del ViewState como los valores actualizados
estn disponibles en el cdigo de servidor
o Se ejecutan los controles de eventos de pgina y los controles de eventos
lanzados por las acciones de usuario
o El control de estado es guardado en el ViewState
o La salida HTML de la pgina es visualizada en el explorador
o Se descarta la pgina y los controles
Seleccionado el Control apropiado
61
Programacin Web
Prefieres un modelo de
programacin como Visual Basic
62
Programacin Web
Si te dieran una pgina Web con extensin .aspx Qu buscaras para verificar
que hay Web server controls?
<asp:ControlType > y tambin el atributo runat="server"
Qu tipo de cdigo o script genera un Web server control en el cliente?
HTML
Presentacin de Controles de Servidor, indicada en la actividad 1 de esta seccin.
Usando Web Controls (Controles de Servidor)
Agenda
Usando cdigo oculto (Code-Behind Pages)
Agregando Procedimientos de Evento a Controles Web
Usando Eventos de Pgina
Recordando Tipos de Controles de Servidor
Controles Intrnsecos
Demostracin de uso de controles y eventos
Vinculacin entre controles
Controles de validacin
Demostracin: Controles de validacin
Leccin: Usando cdigo oculto (Code-Behind Pages)
Cmo implementar cdigo
Escribiendo cdigo en lnea (in Line Code)
Qu son las pginas de cdigo oculto?
Entendiendo como funciona el cdigo oculto
Cmo implementar cdigo
Existen tres mtodos para agregar cdigoa una Web Form:
63
Programacin Web
El mtodo default usado por Visual Studio .NET, es el de pginas de cdigo oculto
Escribiendo cdigo Inline
Cdigo y contenido en el mismo archi vo
Diferentes secciones en el archivo para cdigo y HTML
<HTML>
<asp:Button id="btn" runat="server"/>
</HTML>
<SCRIPT Language="vb" runat="server">
Sub btn_Click(s As Object, e As EventArgs) Handles btn.Click
...
End Sub
</SCRIPT>
<HTML>
<asp:Button id="btn" runat="server"/>
</HTML>
<SCRIPT Language="c#" runat="server">
private void btn_Click(object sender, System.EventArgs e)
{
...
}
</SCRIPT>
Qu son los cdigos ocultos?
Separacin del cdigo y del contenido
Desarrolladores y diseadores de la UI pueden trabajar
independientemente
Un solo archivo
Archivos separados
cdi go
<tags>
c digo
<tags>
Fo rm1.aspx
F orm1.asp x
F o rm1.asp x.vb
or F orm1.asp x.cs
64
Programacin Web
Entendiendo como trabajan las pginas de cdigo oculto
Page1.aspx
<% @ Page Language="c#"
Inherits="Project.WebForm1" Codebehind="Page1.aspx.cs"
Src = "Page1.aspx.cs" %>
Page1.aspx.cs
public class WebForm1
{
private void cmd1_Click()
{
}
}
65
Programacin Web
66
Programacin Web
Procedimientos de eventos
67
Programacin Web
68
Programacin Web
Visual Studio .NET tambin agrega la palabra clave Handles, la cual adjunta el
procedimiento de evento al control.
Visual Studio .NET declara variables y crea una plantilla para procedimiento de
evento
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button cmd1;
private void InitializeComponent()
{
this.cmd1.Click += new
System.EventHandler(this.cmd1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
private void cmd1_Click(object sender, System.EventArgs e)
{
...
}
}
Usando la palabra clase Handles permite crear mltiples procedimientos de
evento para un simple evento.
Recordando el ciclo de vida de un evento de pgina
69
Programacin Web
Multimedia: El proceso Postback
70
Programacin Web
Con qu controles disponemos?
HTML
Web Controls
o Intrnsecos
asp:list, asp:button, asp:checkbox, asp:table
o De validacin
asp:RangeValidator, asp:RegularExpressionValidator
o Controles ricos
asp:calendar, asp:adrotator
o Listas vinculables de datos
asp: datagrid, asp:repeater, asp:datalis
71
Programacin Web
Los eventos
En principio, slo los eventos Clic hacen que se llame nuevamente a la pgina y
disparan la ejecucin de cdigo del lado del servidor.
72
Programacin Web
ASP.NET puede crear validaciones del lado del Cliente y del Servidor
Validacin Client-side
o Depende de la versin del navegador
o Retroalimentacin instantanea
o Reduce ciclos postback
Validacin Server-side
o Repite todas las validaciones del lado del cliente
o Puede validar en contra de almacenar datos
73
Programacin Web
Propiedades importantes
ControlToValidate
Text
ErrorMessage
Display
Agregando controles de Validacin a una Web Form
1. Agregar un control de validacin
2. Seleccionar el control de entrada para validar
3. Establecer la propiedades de validacin
<asp:TextBox id="txtName" runat="server" />
<asp:Type_of_Validator
id="Validator_id"
runat="server"
ControlToValidate="txtName"
ErrorMessage="Message_for_error_summary"
Display="static|dynamic|none"
Text="Text_to_display_by_input_control">
</asp:Type_of_Validator>
Posicionando Controles de Validacin
Crear mensaje de error
Seleccionar modo de despliegue :
Esttico (Static)
74
Programacin Web
Dinmico (Dynamic)
75
Programacin Web
Ventajas de los controles de validacin
Quiz
Cual es la ventaja de usar cdigo culto cuando de agrega funcionalidad al Web
Form?
76
Programacin Web
77
Programacin Web
78
Programacin Web
Actividad 2
Nombre de la Actividad: Encapsulando funcionalidad
Objetivo: Al finalizar esta actividad podrs crear controles de usuario desde
0 o convirtiendo un Formulario Web existente.
Instrucciones:
Existen dos opciones en la creacin de controles de usuarios: crear un
nuevo control o convertir un Web form ASP.NET existente.
1. Sigue las instrucciones que se te indican a continuacin para crear
un nuevo control.
Da botn derecho en un proyecto Web el Explorador de
Soluciones en Visual Studio .Net, selecciona Add y da clic en
Add Web User Control.
Da un nombre al control y da clic en Open. Una pgina con
extensin .ascx fue creada. Nota la existencia de la directiva
@ control que fue incluida automticamente.
Agrega los elementos UI que requieras como lo haras para
crear una Web Form, agregando UI elementos desde la barra
de herramientas en Visual Studio .NET o escribiendo en
HTML.
Agrega procedimientos de eventos para los elementos UI y
eventos de Pgina. Similar a agregar las pginas de cdigo
oculto en cualquier otra pgina ASP.NET.
Crea propiedades para interactuar con la pgina host. Las
propiedades le permiten a la Web Form anfitriona (hosting)
leer y escribir valores dentro de los elementos UI en el control
de usuario. Las propiedades en el Control de usuario ocultan
(encapsulan) la implementacin de el control.
2. Sigue las instrucciones que se te indican a continuacin para
convertir una Web Form existente a un nuevo control.
Abre el archivo .aspx, conteniendo la pgina a convertir con algn
editor.
Elimina todas las etiquetas (tags) <HTML>,<BODY> y <FORM>
Si existe una directiva @ Page en la pgina, convirtela a la
directiva @ Control.
Agrega el atributo className a la directiva @ Control.
Renombra el archivo a un nombre que refleje su propsito y
cambia su extensin de .aspx a .ascx
79
Programacin Web
Nota: El host page (o pgina anfitriona) es la Web Form que incluir el
control de usuario. Esta pgina debe estar en Flow layout para evitar que se
traslapen el contenido de los controles de usuario y el contenido de la
pgina. La host page no tiene acceso directo a los elementos UI que estn
en el control de usuario, por lo tanto, debes usar propiedades publicas en
los controles de usuario para exponerlos a los elementos UI que estn en el
control para que el host pueda usas los elementos UI.
Por ejemplo: si un control de usuario esta compuesto por dos cajas de
texto, podras necesitar una propiedad para cada caja de texto para que la
pgina del host pueda leer y escribir el valor en cada caja de texto.
Productos esperados / Evaluaciones
Este tema se evaluar con la creacin de los controles de usuario en las
dos formas existentes. Los programas deben funcionar correctamente. Este
trabajo contar el ?%
de la calificacin final, siempre y cuando lo
entregues en la fecha y forma acordada.
Materiales de apoyo
Aqu encont rars los materiales de apoyo para este captulo
Presentacin de Controles de usuario indicada en la actividad 1 de esta
seccin.
Creando Controles de Usuario
Leccin: Agregando Controles de Usuario a una Web Forms ASP.NET
Qu es un Control de Usuario?
Por qu usar Controles de Usuario?
Agregando un Controles de Usuario
o Demostracin: Creando Controles de Usuario
Uso de controles de usuario
o Demostracin: Usando Controles de Usuario
Biblioteca de controles Web
o Demostracin: Controles Web
Qu es un Control de Usuario?
Los Controles de Usuario simplifican el reuso de cdigo y componentes UI en una
aplicacin Web.
Un control de usuario es un control de servidor Web, definido por el usuario, con
una extensin .ascx
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
80
Programacin Web
Contiene HTML, pero no los marcadores (tags) <HTML>, <BODY>, o <FORM>
<%@ Control Language="vb" %>
o
<%@ Control Language="c#" %>
Contiene cdigo para manejar sus propios eve ntos
Un control de usuario consiste de HTML y cdigo, pero debido a que son usados
por Web Forms, ellos no contienen los tags HTML: <HEAD>, <BODY>, or
<FORM>, en lugar de esto, estos tags son incluidos en cada Web Form que usa
el control de usuario.
Cuando un control de usuario es usado por una Web Form, este participa en el
ciclo de vida de los eventos para la Web Form.
Debido a que un control de usuario es tambin una pgina ASP.NET, este tiene su
propia lgica de pgina. Por ejemplo, un control de usuario puede manipular su
propio postback en su procedimiento de evento Page_Load.
Tipos de controles
Controles de Usuario Web
Es un elemento ms en un proyecto Web
Biblioteca de controles Web
Es un tipo de proyecto, para crear controles personalizados, desde 0
Por qu usar Controles de Usuario?
81
Programacin Web
82
Programacin Web
Usar las propiedades Get y Set de los controles de usuario
num1.pNum = 5; //uses Set
x = num1.pNum; //uses Get
Creando un Control de Usuario
83
Programacin Web
Demostracin: Usando un Control de usuario
Al crear un control...
El evento importante
Dentro del cdigo podemos definir nuestras propias propiedades, cada uno
de los atributos que necesitamos para nuestros controles, exponer todas
estas caractersticas para que la UI pueda reasignarse, pero en definitiva...
Lo importante es codificar adecuadamente el procedimiento que manipula
el evento Render
Render
o Recibe un System.Web.UI.HtmlTextWriter que es el que termina
generando el cdigo HTML del lado del cliente
o Se debe codificar todo lo necesario para obtener el resultado
requerido
84
Programacin Web
El proyecto puede
Resumen
85
Programacin Web
Al terminar el estudio sobre este tema, estars capacitado para realizar accesos a
las bases de datos, mediante los controles de acceso a datos que proporciona el
entorno .Net utilizando el lenguaje SQL.
Instrucciones
a. Revisa el material del documento AccesoDatos (1 -14) para que te familiarices
con los objetos vinculados con la manipulacin de datos.
b. Contesta el cuestionario correspondiente Quiz3.doc.
c. Investiga los trminos o estructuras que te resulten desconocidas, ya sea en
la pgina del curso o en el manual de ayuda de Visual Estudio .NET.
d. Realiza el ejercicio Prctica8.doc, para comprobar que tus conocimientos son
suficientes para realizar el acceso a datos preliminar de una Aplicacin Web.
Productos esperados / Evaluaciones
a. Este tema se evaluar con el cuestionario y el ejercicio enviado y contar con
el 2% de la calificacin final, siempre y cuando los entregues en la fecha y con el
formato adecuado (pdf).
Gua para el profesor
Se sugiere que el cuestionario proporcionado a los alumnos, considere:
1. La aportacin de .Net en el acceso a datos
2. Los objetos y sus caractersticas que facilitan el acceso a datos.
Actividad 2
Exposicin 2: Controles de enlace de datos
Objetivos
Al terminar el estudio sobre este tema, estars capacitado para vincular distintos
controles de acceso a datos para estilizar las presentaciones de la informacin.
Instrucciones
a. Revisa el material del documento AccesoDatos (15-16) para que te
familiarices con el enlace entre controles.
b. Contesta el cuestionario correspondiente Quiz4.doc.
86
Programacin Web
c. Investiga la amplia gama de controles que se pueden enlazar en el manual
de ayuda de Visual Estudio .NET.
d. Realiza el ejercicio Prctica9.doc, para comprobar que tus conocimientos son
suficientes para crear aplicaciones Web con una mayor complejidad.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica9 y contar con el
2% de la calificacin final, siempre y cuando los entregues en la fecha y con el
formato adecuado (pdf).
Actividad 3
Exposicin 3: Usando DataSets y DataReaders
Objetivos
Al terminar el estudio sobre este tema, estars capacitado para diferenciar la
forma de utilizar los objetos DataSet y DataReaders, as como establecer las
conexiones necesarias para manipular la informacin en tu aplicacin Web.
Instrucciones
a. Revisa el material del documento AccesoDatos (17-29) para que conozcas la
funcionalidad de los objetos DataSet y DataReader.
b. Contesta el cuestionario correspondiente Quiz6.doc.
c. Realiza el ejercicio Prctica10.doc, para comprobar que tus conocimientos son
suficientes respecto al establecimiento de conexiones y seguridad en tu Aplicacin
Web.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica10 y contar con el
2% de la calificacin final, siempre y cuando los entregues en la fecha y con el
formato adecuado (pdf).
Actividad 4
Exposicin 4: Usando el DataView y varias Tablas
Objetivos
87
Programacin Web
Al terminar el estudio sobre este tema, estars capacitado para realizar distintas
vistas de una o ms tablas de cualquier Base de Datos.
Instrucciones
a. Revisa el material del documento AccesoDatos (30-38) para que conozcas
como se realizan las distintas vistas para mostrar slo la informacin que se
solicita y no el desplegado completo.
b. Contesta el cuestionario correspondiente Quiz7.doc.
c. Realiza el ejercicio Prctica11.doc, para comprobar que puedes crear distintas
vistas sobre una o ms tablas
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica11 y contar con el
2% de la calificacin final, siempre y cuando los entregues en la fecha y con el
formato adecuado (pdf).
Actividad 5
Exposicin 5: Empleando DataReaders
Objetivos
Al terminar el estudio sobre este tema, notars la ventaja de utilizar el objeto
DataReader para ejecutar operaciones simples como obtener una contrasea o
una pequea cantidad de datos.
Instrucciones
a. Revisa el material del documento AccesoDatos (39-47) para que conozcas la
metodologa en la utilizacin del objeto DataReader.
b. Contesta el cuestionario correspondiente Quiz8.doc.
c. Realiza el ejercicio Prctica12.doc, para comprobar que puedes utilizar las
ventajas del objeto DataReader.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica12 y contar con el
2% de la calificacin final, siempre y cuando los entregues en la fecha y con el
formato adecuado (pdf).
88
Programacin Web
Actividad 6
Exposicin 6: Procedimientos Almacenados y la utilizacin de parmetros
Objetivos
Al terminar el estudio sobre este tema, estars capacitado para realizar accesos a
las bases de datos, mediante procedimientos con una funcionalidad especfica.
Instrucciones
a. Revisa el material del documento AccesoDatos (48-60) para que conozcas
como funcionan los procedimientos almacenados
b. Contesta el cuestionario correspondiente Quiz9.doc.
c. Realiza el ejercicio Prctica13.doc y Prctica14.doc, para que practiques cono
utilizar un procedimiento almacenado.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica13, Prctica14 y
contar con el 2% de la calificacin final, siempre y cuando los entregues en la
fecha y con el formato adecuado (pdf).
Materiales de apoyo
Aqu encontrars los materiales de apoyo para este captulo
89
Programacin Web
Qu es ADO.NET?
Introduccin
Definicin
90
Programacin Web
Usando espacios de Nombres
System.Data
System.Data.SqlClient
System.Data.OleDb
Introduccin
Espacios de nombres
ADO.NET
C#
using System.Data;
Si estas trabajando con datos en una base de datos SQL
Server 2000, tambin debes importar el espacio de
nombres System.Data.SqlClient. Si estas trabajando
con datos de otra fuente de datos t necesitas importar
el espacio de nombres System.Data.OleDb.
El siguiente cdigo de ejemplo muestra como importar
ambos espacios de nombre.
C#
using System.Data.SqlClient;
using System.Data.OleDb;
91
Programacin Web
El modelo de Objetos de ADO.NET
Introduccin
Componentes
ADO.NET
Propsito
92
Programacin Web
objeto DataAdapter tambin ajusta cambios que se
hacen a los datos en el DataSet.
Usando los objetos
Qu es un DataSet?
Introduccin
Objeto DataSet
93
Programacin Web
DataTables y
DataRelations
Introduccin
Objetivos de la
Leccin
94
Programacin Web
Introduccin
95
Programacin Web
96
Programacin Web
Caja de Dialogo
Para agregar conecciones a una base de datos que
Propiedades de Enlace no est corriendo en SQL Server, usa la opcin Data
de Datos
Connections (Coneccin a datos), que esta localizada
en la parte superior de la lista del Explorador de
Servidores. En el Explorador de Servidores, da click
derecho en Data Connections y luego da click a
Agregar Coneccin, como se muestra en la siguiente
ilustracin.
97
Programacin Web
informacin necesaria para conectar a la base de datos,
tal como se muestra en la siguiente ilustracin.
98
Programacin Web
El modelo del Objeto DataAdapter
Introduccin
Definicin del
DataAdapter
SelectCommand. Esta
sentencia SQL SELECT.
UpdateCommand. Esta
sentencia SQL UPDATE.
InsertCommand. Esta
sentencia SQL INSERT.
DeleteCommand. Esta
sentencia SQL DELETE.
99
Programacin Web
base de datos. El utilizar procedimientos almacenados,
se reduce la cantidad de cdigo necesario que se
requiere para realizar operaciones como SELECT,
INSERT, UPDATE y DELETE.
Si el dato se conecta, o es generado desde, una tabla
en una base de datos, t puedes tomar ventaja del
objeto
CommandBuilder
para
generar
automticamente
la propiedad del DataAdapter.
Usando el objeto reduces el tiempo de desarrollo.
Leccin: Desplegando un DataSet en un control de lista -enlazada.
Introduccin
Objetivos de la
leccin
100
Programacin Web
Qu son los controles de enlace de datos?
Datagrid
ListBox
Data List
CheckBoxList
Repeater
RadioButtonList
Introduccin
Definicin
Ejemplos
101
Programacin Web
Control
CheckBoxList
DataGrid
DataList
DropDownList
ListBox
RadioButtonList
Repeater
Descripcin
Un grupo de check box de multi-seleccin
que puede ser generada de forma dinmica
usando la vinculacin de datos.
Un control que muestra los campos de una
fuente de datos como columnas de una
tabla.
Un control que muestra una lista de datos
con un patrn definido.
Una seleccin sencilla, lista deslizable.
Una lista que permite seleccionar uno o
mas elementos
Seleccin sencilla de un grupo de radio
buttons que puede ser generado a travs
de la vinculacin de datos.
Este control no tiene estilos o presentacin
incluida, as que t tienes que declarar
todos los estilos HTML, formato y etiquetas
de estilo.
Introduccin.
102
Programacin Web
tienes que establecer para ligar los datos del DataSet
con el control.
Propiedad
DataSource
DataMember
DataTextField
DataValueField
Descripcin
Especifica el DataSet que contiene los
datos.
Especifica la DataTable en un DataSet.
Especifica el campo en la DataTable que
ser mostrada en la lista.
Especifica el campo en la DataTable que
tomar el valor del elemento seleccionado
en la lista.
C#
lstEmployees.DataBind();
103
Programacin Web
Introduccin
Usando DataSets
y DataReaders
Acceso a Datos
Si intentas leer y escribir en la fuente de datos,
debes utilizar un objeto DataSet. El objeto
DataReader debe usarse nicamente cuando los
datos sern usados en situaciones de solo
lectura.
Ligar a controles
Si t intentas ligar datos a ms de un control,
debes usar un objeto DataSet. El objeto
DataReader solo se puede ligar a un control
simple.
104
Programacin Web
Modo de conexin
Si t intentas correr en un modo desconectado,
debes utilizar un objeto DataSet. El objeto
DataReader debe correr en un modo conectado.
Examinar datos
Si t intentas examinar los datos hacia atrs y
hacia delante, debes usar el objeto DataSet. El
objeto DataReader debe examinar solo hacia
delante como los datos se vierten de la base de
datos.
Velocidad de acceso
Si lo que t necesitas es alta velocidad de acceso
a tu fuente de datos, usa el objeto DataReader.
El objeto DataSet es ms lento que el objeto
DataReader
cuando este viene de acceder
datos de una fuente de datos porque el objeto
DataSet almacena los datos en un objeto en el
Servidor Web. El objeto DataSet tiene la
habilidad de leer y escribir datos y examinar
hacia atrs y hacia delante. El objeto
DataReader es ms rpido debido a su
naturaleza ligera.
Herramienta de soporte
Si intentas usar Microsoft Visual Studio .NET
para crear una conexin a datos, usa un objeto
DataSet, ya que con este cuentas con la opcin
de escribir propio cdigo o usar la mquina de
cdigo de Visual Studio. NET. Con los objeto
DataReader debes escribir cdigo.
105
Programacin Web
Seguridad del Servidor SQL
106
Programacin Web
C#
string strConn =
"data source=localhost; " +
"initial catalog=northwind; " +
"user id=CohoUser; " +
"password=1Coho";
SqlConnection conn = new SqlConnection(strConn);
C#
107
Programacin Web
Configurando el SQL Server para correr en modo mezclado o en de
autenticacin solo Windows: Cuando se usan el de autenticacin
solo Windows, se puede dejar el SQL Server con el modo de
autenticacin solo Windows predeterminado. Si se usa el modo de
autenticacin mezclado, se necesita cambiar el modo de
autenticacin del SQL Server.
Para cambiar el modo de autenticacin del SQL Server
1. En el men Inicio, da clic derecho en Mi PC y luego clic en
Administrar.
2. En la consola de administracin del equipo, expande el flder de
Servicios y Aplicaciones y luego expande el flder de Microsoft
SQL Servers.
3. Da clic derecho en el (local) SQL Server y luego clic en
Propiedades.
4. En la caja de dialogo de Propiedades de SQL Server, en la
etiqueta de Seguridad, elije el boton de SQL Server y Windows
o Solo Windows en la seccin de Autenticacin, y finalmente
clic en Aceptar.
Creando la Conexin
108
Programacin Web
Dependiendo del tipo de base de datos a la que se este
accesdiendo, se puede usar el objeto SqlConnection o el objeto
OleDbConnection. Se debera usar el objeto SqlConnection para
conectarse a SQL Server 7.0 y posteriores, y usar el objeto
OleDbConnection para conectarse a las dems bases de datos.
Creando una cadena de conexin. Se crea un objeto SqlConnection pasando
en la cadena de conexin la informacin necesaria para crear la
conexin a la fuente de datos.
El siguiente cdigo crea un objeto SqlConnection a la base de datos
Northwind de SQL Server:
C#
string strConn =
"data source=localhost; " +
"initial catalog=northwind; " +
"integrated security=true";
SqlConnection conn = new SqlConnection(strConn);
Data Source
Initial Catalog
Integrated
Security
Password
Persist Security
Info
Provider
User ID
Descripcin
El periodo de tiempo, en segundos, que esperar por la
conexin al servidor antes de terminar el intento y
generar una excepcin (15 segundos es el tiempo
predeterminado para este parmetro)
El nombre del SQL Server que ser usado cuando la
conexin este abierta, o el nombre del archivo que serpa
usado cuando se conecte a una base de datos de
Microsoft Access.
El nombre de la base de datos
Es el parmetro que determina si la conexin es o no
una conexin segura. True, False o SSPI son los
valores posibles. SSPI es equivalente a True.
La contrasea de acceso para la base de datos de SQL
Server
Cuando esta establecido a False , la informacin de
seguridad, como la contrasea, no es regresada como
parte de la conexin. Estableciendo esta propiedad a
True puede haber riesgos de seguridad. Esta propiedad
esta establecida a False predeterminadamente.
Esta propiedad es usada para establecer o regresar el
nombre del proveedor de la conexin; este parmetro
solo se usa para el objeto OleDbConecction,
El nombre de la cuenta de acceso a SQL Server.
109
Programacin Web
Leccion: Accediendo a datos con DataSets
Introduccin
Objetivos de la
Leccin
110
Programacin Web
Creando un DataAdapter
Introduccin
DataAdapter
111
Programacin Web
Clase SqlDataAdapter
Esta clase es especfica para bases de dato s
SQL Server 7.0 o superiores. El objeto
SqlDataAdapter es ms rpido que el objeto
OleDbDataAdapter porque trabaja directamente
con el Servidor SQL y no pasa a travs de un
proveedor de datos OLEDB.
Adems, clases DataAdapter para otros tipos de
fuentes de datos pueden ser integradas con Visual
Studio .NET.
Propiedades del
DataAdapter
Funcin
La propiedad SelectCommand
regresa filas de datos.
La propiedad InsertCommand
escribe filas insertadas del
DataSet dentro de la fuente de
datos.
La propiedad UpdateCommand
UpdateCommand escribe filas modificadas del
DataSet dentro de la fuente de
datos.
La propiedad DeleteCommand
DeleteCommand borra filas en la fuente de datos.
InsertCommand
Ejemplo
SqlDataAdapter
C#
//Create a connection
SqlConnection conn = new SqlConnection
("data source=localhost; initial catalog=pubs; " +
"integrated security=true; persist security info=True;");
//Create the DataAdapter
SqlDataAdapter da = new SqlDataAdapter
("select * from Authors", conn);
112
Programacin Web
Creando un DataSet
Introduccin
Creando un DataSet
C#
Llenar el DataSet
C#
da.Fill(ds, "Authors");
El mtodo implicito Fill ejecuta una consulta SQL en la
propiedad SelectCommand del DataAdapter. Los
resultados de la consulta SQL son usados para definir
la estructura del objeto DataTable, y poblar la tabla con
datos.
El siguiente cdigo de ejemplo muestra como crear un
objeto SqlDataAdapter llamado da, y entonces llamar
al mtodo Fill para almacenar datos en el objeto
DataSet ds.
C#
//Create a connection
SqlConnection conn = new SqlConnection
113
Programacin Web
("data source=localhost;initial catalog=pubs; " +
"integrated security=SSPI;persist security info=True;");
//Create the DataSet
DataSet ds = new DataSet();
//Create the DataAdapter
SqlDataAdapter da = new SqlDataAdapter
("select * from Authors", conn);
//Fill the DataSet ds
da.Fill(ds, "Authors");
C#
ds.Tables["Authors"];
-ods.Tables[0];
114
Programacin Web
Tanto
el
objeto
DataRowCollection
y
DataColumnCollection tienen una propiedad Count
que permite determinar el nmero de filas o columnas
en el objeto DataTable, como se muestra en el
siguiente ejemplo:
C#
ds.Tables["Authors"].Rows.Count;
ds.Tables["Authors"].Columns.Count;
ds.Tables["Authors"].Rows[x][1];
ds.Tables["Authors"].Rows[x]["fieldname"];
Usando un DataView
115
Programacin Web
Introduccin. Para mostrar los datos que estan contenidos en el objeto DataSet,
se puede ligar el objeto DataSet directamente a un control de enlace
de datos o se puede usar el objeto DataView. Un objeto DataView
es un objeto enlazable y personalizable para mostrar un objeto
DataTable sencillo. Despus de haber creado un objeto DataView,
el usuario puede usar el objeto DataView para ordenar, filtrar,
buscar, editar datos, o navegar en ellos.
DataViews como un subconjunto de un DataTable. El objeto DataView puede
ser personalizadopara presentar un subconjunto de datos de un
objeto DataTable. Esta personalizacin permite tener dos controles
que estan ligados al mismo objeto DataTable, pero cada control
muestra diferentes versiones de los datos. Por ejemplo, un control
puede estar ligado al objeto DataView mostrando todas las filas de
una tabla, mientras que un segundo control esta ligado a otro objeto
DataView que esta configurado para mostrar solo las filas que han
sido borradas del objeto DataTable.
DefaultView. Cada objeto DataTable en el objeto DataSet tiene la propiedad
DefaultView, la cual retorna la vista predeterminada para la tabla. El
siguiente cdigo muestra como se puede accesder al objeto
DataView dv, de un objeto DataTable llamado Authors:
C#
DataView dv = ds.Tables[Authors].DefaultView;
C#
116
Programacin Web
Introduccin
Objetivos de la
Leccin
117
Programacin Web
Almacenando Multiples Tablas
Introduccin
Agregar la primera
Tabla
118
Programacin Web
C#
SqlConnection conn;
SqlDataAdapter daCustomers;
SqlDataAdapter daOrders;
DataSet ds = new DataSet();
// Create a connection to the Pubs database
conn = new SqlConnection("data source=localhost; " +
"integrated security=true;initial catalog=northwind");
// Create the first DataTable
daCustomers = new SqlDataAdapter
("select CustomerID, CompanyName from Customers", conn);
daCustomers.Fill(ds, "Customers");
Agregar tablas
Subsecuentes
C#
119
Programacin Web
Creando Relaciones
Introduccin
Ejemplo del
Objeto
DataRelation
C#
120
Programacin Web
Navegando Programticamente entre Tablas Usando Relaciones
Introduccin
Navegando
Programticamente
121
Programacin Web
currentParentRow = ds.Tables["Customers"].
Rows[dgCustomers.SelectedIndex];
foreach(DataRow r
in currentParentRow.GetChildRows("CustOrders"))
{
Label1.Text += r["OrderID"] + ",";
}
Navegando
relaciones
Visualmente
122
Programacin Web
El siguiente cdigo crea un objeto DataView desde in
objeto DataRelation para mostrar los registros hijos en
un control DataGrid:
C#
123
Programacin Web
Qu es un DataReader?
Introduccin. Cuando una gran cantidad de datos esta siendo regresada de una
fuente de datos, asuntos relacionados con la memoria se convierten
en problemas. Por ejemplo, leer 10,000 filas de una base de datos
causa que un objeto DataSet consuma y mantenga memoria para
10,00 filas por el tiempo que dure la tabla. Si 1,000 usuarios hacen lo
mismo sobre el mismo equipo al mismo tiempo, el uso de memoria
se vuelve crtico. Para solucionar estos problemas de memoria, la
clase DataReader esta diseada para producir un flujo de datos de
solo lectura y solo hacia delante que es retornado de la base de
datos. Por lo tanto, existe solo un registro a la vez en la memoria del
servidor.
Solo lectura y solo hacia delante. La clase DataReader provee una
transferencia de datos de solo lectura y solo hacia delante que puede
ser enlazada a un control sencillo de listas enlazadas. Por ejemplo, si
solo se desea mostrar datos resultados de una consulta a una base
de datos a travz de un control sencillo, y no se requiere manipular
esos datos, un objeto DataReader es la manera ideal para lograr
esto.
Acceso rpido a los datos. Los objetos DataReader son ms rpidos que los
DataSet debido a su naturaleza ligera. Resulta ms costoso crear
objetos DataSet porque estos objetos tienen la capacidad de leer y
escribir datos y leer hacia delante y hacia atrs. Es muy poco
costoso trabajar con objetos DataReadet porque son solo de lectura
y solo hacia delante. Esta diferencia de costos entre los objetos
significa que el acceso a datos con un objeto DataReader es ms
rpido que el acceso con un objeto DataSet.
124
Programacin Web
Conectado a la fuente de datos. ADO .NET incluye dos tipos de objeto
DataReader: el objeto SqlDataReader para SQL Server versin 7.0
o posteriores, y el objeto OleDbDataReader para provedores de
datos OLE DB. Se usa el objeto SqlCommand y el objeto
OleDbCommand, y el metodo ExecuteReader, para transferir datos
al objeto DataReader.
Manejar la conexin por uno mismo. A diferencia de un objeto DataAdapter
que se abre y se cierra automticamente, se tiene que manejar la
conexin del objeto DataReader por uno mismo. La clase
DataReader es similar a la clase DataAdapte en el sentido en que
uno crea un objeto Command desde una sentencia SQL y una
conexin. No obstante, con el objeto Command del DataReader, se
tiene que abrir y cerrar la conexin explcitamente.
Manejar los datos por uno mismo. T tienes la opcin de hacer un ciclo a travs
de los datos del objeto DataReader y desplegarlos
programticamente, o puedes enlazarlos a un control. En ambos
casos, se tiene que escribir el cdigo por uno mismo.
Usa menos recursos del servidor. Debido a que el DataReader no es una
representacin de los datos en memoria, el usa del DataReader
tiene menos impacto en los recursos del servidor.
Creando un DataReader
125
Programacin Web
Similar al objeto DataAdapter, se crea un objeto Command de una
sentencia SQL y una conexin. No obstante, con el objeto
Command del DataReader, se tiene que abrir y cerrar la conexin
explcitamente.
Para usar un DataReader. Para usar un objeto DataReader, se necesita
programar el codigo completo para establecer la conexin. Los
siguientes pasos son necesarios para el uso del objeto DataReader:
1.
2.
3.
4.
5.
6.
7.
126
Programacin Web
Manejando errores con TryCatchFinally. Cuando se usan conexiones con
el objeto DataReader, se debe usar siempre sentencias Try, Catch,
Finally para asegurar que si algo falla, la conexin se cerrar
normalmente. De otra forma, la conexin puede quedarse abierta
indefinidamente.
El siguiente cdigo para un objeto DataReader que atrapa los errores y cierra la
conexin:
C#
try
{
conn.Open();
dr = cmdAuthors.ExecuteReader();
// use the returned data in the DataReaders
}
catch(Exception e)
{
// Handle error
}
finally
{
dr.Close();
conn.Close();
}
127
Programacin Web
El siguiente cdigo itera a travs de todos los registros del objeto
Datareader dr, y muestra el campo an_fname en el control Label
lblName:
C#
while (dr.Read())
{
lblName.Text += dr["au_name"];
}
dr.Read();
lblName.Text = dr.GetString(1) + ", " +
dr.GetString(2);
Tambin se puede hacer referencia, por nombre, a los datos en el
registro actual del objeto DataReader. Despus se puede invocar a
una funcin de conversin apropiada, como se muestra en el
siguiente ejemplo:
C#
myReader["au_fname"];
myReader.Close();
conn.Close();
128
Programacin Web
Enlazando un DataReader a un Control de Listas Enlazadas
129
Programacin Web
Qu es un Procedimiento Almacenado?
Introduccin
Acceso Programtico
130
Programacin Web
almacenados estn basados en sentencias Select de
SQL.
Un ejemplo de este tipo de procedimientos
almacenados son las solicitudes de montos, fecha y
recepcin de los ltimos tres cheques que se han
procesado en una cuenta de un banco. Estos datos
pueden ser cargados a un objeto DataSet para mayor
procesamiento, o para mostrarlos directamente al
usuario mediante un control ListBox.
Procedimientos almacenados que regresan valor
tambin
conocidos
como
procedimientos
almacenados escalares
Procedimientos almacenados que regresan valor son
usados para ejecutar comandos en una base de datos
o funciones que regresan valores sencillos. Debido a
que solo un valor es retornado, los procedimientos
almacenados que regresan valor son usados
usualmente en cdigo, y luego el resultado es mostrado
al usuario.
Un ejemplo de procedimientos almacenados que
regresan valor es el obtener el valor del total de los
ltimos tres cheques que se han procesado en una
cuenta de un banco.
Procedimientos almacenados que ejecutan acciones
Procedimientos almacenados que ejecutan acciones
son usados para realizar funciones en la base de datos
pero no regresan algn valor o registro. Estas
funciones en la base de datos pueden incluir actualizar,
editar o modificar los datos.
Un ejemplo de procedimientos almacenados que
ejecutan acciones es la consulta para actualizar una
direccin de correo en una base de datos de un
consumidor de una compaa.
131
Programacin Web
Por qu usar procedimientos almacenados?
Introduccin
Programacin modular
132
Programacin Web
Incrementar la
Seguridad de la
Base de datos
Ejecucin ms
Rpida
Reduccin del
Trafico en la Red
133
Programacin Web
Provee Flexibilidad
134
Programacin Web
Llamando a Procedimientos Almacenados
135
Programacin Web
Command, y guardar los resultados en una variable apropiado para
el tipo de dato retornado.
136
Programacin Web
Nota: Tambin se puede establecer la conexin y el texto del
comando directamente cuando se crea el objeto
SqlDataAdapter. El siguiente ejemplo realiza la misma tarea
que el ejemplo anterior:
C#
daCategory.Fill(ds, "Categories");
137
Programacin Web
pueden usar parmetros para
procedimientos almacenados.
recupero
informacin
de
los
Output
InputOutput
ReturnValue
Uso
Usado por una aplicacin Web para mandar
datos especficos a un procedimiento
almacenado.
Usado por un procedimiento almacenado para
regresar datos especficos a una aplicacin
Web que le llam.
Usado por un procedimiento almacenado para
recuperar informacin que la aplicacin Web
envi y para mandar de vuelta valores
especficos a una aplicacin Web.
Usado por un procedimiento almacenado para
devolver valores a una aplicacin que le llam.
138
Programacin Web
Pasando Parmetros de Entrada
139
Programacin Web
Para llamar al procedimiento almacenado ProductsByCategory, se
crea un parmetro de entrada llamado @CategoryID y se enva su
valor del valor de la caja de texto.
C#
140
Programacin Web
Usando Parmetros de Salida
141
Programacin Web
Llamando a un valor regresado por el Procedimiento Almacenado. Para
llamar al procedimiento almacenado OdersCount, se necesita crear
un parmetro de entrada llamado @CustomerID, y un parmetro
llamado @ItemCount, agregarlos a la coleccin Parameters del
objeto Command, y luego llamar al procedimiento almacenado
mediante el ExecuteNonQuery:
C#
SqlCommand myCmd = new
SqlCommand("OrdersCount", conn);
myCmd.CommandType =
CommandType.StoredProcedure;
// add an input parameter
SqlParameter workParam;
workParam = new SqlParameter("@CustomerID",
SqlDbType.Int);
workParam.Direction =
ParameterDirection.Input;
workParam.Value =
Convert.ToInt16(txtCustID.Text);
myCmd.Parameters.Add(workParam);
// add an output parameter
workParam = new SqlParameter("@ItemCount",
SqlDbType.Int);
workParam.Direction =
ParameterDirection.Output;
myCmd.Parameters.Add(workParam);
Corriendo el procedimiento almacenado. El siguiente cdigo ejecuta el
procedimiento almacenado MyCmd.
C#
conn.Open();
myCmd.ExecuteNonQuery();
conn.Close();
142
Programacin Web
Quizz3
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.
Quizz4
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
Quizz6
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.
Quizz7
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.
6.
Qu es un DataView?
Cules son las ventajas de utilizar el objeto DataView en comparacin de
los otros objetos de manipulacin de los datos?
Cul crees que sea la importancia de utilizar varias tablas?
Cmo definiras una relacin entre las tablas?
Por qu consideras que en .Net se considera el concepto de columna padre
y columna hijo?
Explica los pasos que se tienen que efectuar para crear una relacin?
143
Programacin Web
Quizz8
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.
Quizz9
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.
Qu es un procedimiento almacenado?
Cuntos tipos de procedimientos almacenados existen y en que consisten?
Cules son las ventajas de utilizar un procedimiento almacenado?
Cmo se llama a los procedimientos almacenados?
Cuntos tipos de parmetros existen y explcalos brevemente?
Prctica 8
Enlazando Controles a una Base de Datos
Precondiciones: Disponer de una Base de Datos en SQL Server, con sus
respectivas tablas.
Instrucciones:
144
Programacin Web
Prctica 9
Controles de Enlace de Datos
Precondiciones: Haber realizado la forma Web Prctica8.aspx.
Instrucciones:
145
Programacin Web
Prctica 10
Estableciendo la seguridad en SQL Server
Instrucciones:
Prctica 11
Estableciendo la seguridad en SQL Server
Instrucciones:
146
Programacin Web
Prctica 12
Mostrando datos a travs de DataReaders
Instrucciones:
Prctica 13
Mostrando datos desde un procedimiento almacenado
Instrucciones:
147
Programacin Web
Prctica 14
Pasando Parmetros
Instrucciones:
148
Programacin Web
149
Programacin Web
Materiales de apoyo
QU ES EL ESPACIO DE NOMBRES?
Introduccin
La Librera de clases Framework .NET es una librera orientada a objetos, que
consiste de espacios de nombres. La librera es una coleccin de tipos reusables
(clases, estructuras, enumeraciones e interfaces) que reducen el tiempo de
desarrollo e incrementan el soporte del lenguaje.
Definicin
El Espacio de nombres proporciona un agrupamiento lgico de clases que pueden
ser usados por todos los lenguaje de desarrollo compatibles con .NET. Cada
espacio de nombres contiene tipos que puedes usar en tu aplicacin. El espacio
de nombres esta ordenado jerrquicamente lo cual reduce conflictos de nombres e
incrementan la reutilidad del cdigo.
Importando Espacios de Nombres
Para usar clases con un espacio de nombres, se puede declarar totalmente cada
tipo con la jerarqua completa del espacio de nombres o puede proporcionar una
oracin declarativa al inicio de la aplicacin. Para publicar una declaracin puede
usar la instruccin Imports en Visual Basic. NET.
Ejemplo:
El siguiente cdigo muestra como importar un espacio de Nombres:
Imports System.Data.SqlClient
150
Programacin Web
USANDO ESPACIO DE NOMBRES
Introduccin
Cuando se usa espacio de nombres, se puede importar el espacio de nombres
usando una oracin declarativa al inicio de la aplicacin o se puede usar
explcitamente el espacio de nombres dentro del cdigo.
Declaracin de Objetos Implcita
Cuando usted usa la instruccin Imports puede hacer referencia a un mtodo
dentro del espacio de nombres usando solo el nombre del mtodo. El siguiente
cdigo hace una demostracin de la clase ListBox del espacio de nombres
System.Web.UI.WebControls:
Imports System.Web.UI.WebControls
...
Dim listBox1 As New ListBox()
listBox1.Items.Add("First Item")
Declaracin Explcita de Objetos
Si no usa la instruccin Imports, usted debe especificar el nombre del mtodo con
su espacio de nombres completo, como es mostrado en el siguiente cdigo:
Dim listBox1 As New System.Web.UI.WebControls.ListBox()
listBox1.Items.Add("First Item")
Ventajas y Desventajas
151
Programacin Web
Ambos mtodos de usar espacios de nombres son validos, sin embargo ambos
tiene ventajas. Los espacios de nombres implcito casi siempre reduce el tamao
del cdigo. Si usa un tipo de ese espacio de nombre ms de una vez en una
aplicacin ahorra tiempo en la declaracin del espacio de nombres. El uso
explicito puede hacer que el cdigo sea mas sencillo y entendible de leer para
alguien mas, porque casa tipo que es usado es mostrado con su espacio de
nombres.
CREAR UN COMPONENT USANDO VISUAL ESTUDIO .NET
QU SON CLASES Y COMPONENTES?
Definicin de Clase
Las clases son grupos de cdigo que no tienen una interfaz de usuario. Las clases
proporcionan funcionalidad dentro de una aplicacin y puede ser compartida por
las diferentes partes de una aplicacin. Las clases son usadas para organizar
funciones y les dan un nombre simple por el cual pueden ser referenciadas. Las
clases ti enen propiedades y mtodos. Mientras que la propiedades son una
manera en la que tu puedes establecer las caractersticas de una clase, los
mtodos son la forma en la invoca las acciones de una clase. Cuando se quiere
usar una clase y su mtodo se utiliza un objeto de la clase. Un objeto es una
instancia de la clase.
Definicin de Componente
Los componentes son clases que son compiladas dentro de un archivo DLL.
Debido a que un componente es su propio archivo, la funcionalidad de un
componente puede ser compartido entre diferentes aplicaciones. Se hace
referencia a un componente desde una aplicacin usando en espacio de nombres
del componente y el nombre de la clase.
152
Programacin Web
CREANDO UNA CLASE
Definicin
Una clase es una plantilla para un objeto. Esta plantilla define atributos para
almacenar datos y define operaciones para manipular dichos datos. Una clase
define un conjunto de restricciones que pueden ser usados para permitir o negar el
acceso a sus atributos y operaciones.
Creando una nueva clase
Puedes crear una clase en cualquier proyecto de Visual Estudio .NET. Adems
puedes crear una nueva librera de clases, la cual contiene solo la clase y sus
mtodos pero no la interfaz de usuario (ventanas o formas).Si tu creas una clase
dentro de un proyecto existente la clase existe dentro del espacio de nombres del
proyectos. Si tu creas una nueva librera de clases, Visual Estudio .NET crea una
espacio de nombre por default y coloca una nueva clase dentro del espacio de
nombres.
Cuando creas una clase dentro de un proyecto, el archivo clase es compilado
dentro del DLL de la aplicacin y no puede ser usado por otras aplicaciones. Si tu
creas una librera de clases, estn creando un componente que puede ser
rehusado.
Para crear una nueva clase:
1. Abre una solucin en Visual Estudio .NET
2. En el men Archivo, en Nuevo y clic en Proyecto.
3. En la caja de dialogo Tipos de Proyecto selecciona el lenguaje que desees
usar. En el panel Plantilla, selecciona Librera de Clases. Da clic a Agregar
a solucin para agregar el nuevo proyecto a la solucin actual.
153
Programacin Web
4.
Visual Estudio .NET crea un nuevo archivo de clase con una plantilla para la clase,
como se muestra en el siguiente cdigo:
Public Class Class1
End Class
Visual Basic .NET crea un espacio de nombres por default para la clase que tiene
el mismo nombre que el proyecto. Para cambiar el espacio de nombre, sigue estos
pasos:
a. Clic Derecho al proyecto en el Explorador de Soluciones, y entonces clic en
Propiedades.
b. En la caja de dialogo Pgina de Propiedades, en la ficha Propiedades
Generales, establece la ruta del espacio de nombres para el nuevo nombre
de tu componente.
5. Construye el proyecto para crear el componente de tu nueva clase.
Creando los mtodos de una clase
Despus que una clase es creada, se agregan los mtodos (funciones o
procedimientos) que estn contenidos dentro de la clase. El siguiente cdigo de
ejemplo muestra la nueva clase Shipping. La clase contiene una sola funcin
llamada ShippingCost:
Public Class Shipping
Function ShippingCost(ByVal sngPrice As Single) _
As Single
...
Return sngShipping
End Function
End Class
154
Programacin Web
USANDO COMPONENTES EN UNA WEB FORM ASP.NET
Introduccin
Las clases creadas dentro de un componente estn disponibles para otros
programas. Primero, debes hacer referencia al componente (DLL). Entonces, para
acceder a los mtodos dentro de la clase, se instancia el objeto clase haciendo
referencia a su espacio de nombre y el nombre de la clase.
Referenciado el DLL
Antes de usar las clases en un componente, primero debes agregar una referencia
al componente dentro de tu proyecto.
Para agregar una referencia a el DLL
1. Abre un proyecto de Aplicacin Web en Visual Estudio .NET.
2. Clic Derecho al proyecto en el Explorador de Soluciones y entonces
clic a agregar Referencia.
3. En la cuadro de dialogo Agregar Referencia, en la ficha Proyectos
doble clic al proyecto librera de clases y entonces da clic a Aceptar.
El componente es agregado a la carpeta Referencias en el Explorador de
Soluciones.
Instanciando el Objeto
Despus de agregar una referencia a el componente, tu instancias el objeto clase.
La siguiente lnea de cdigo declara una nueva variable llamada x de la clase
Shipping, dentro del espacio de Nombres company:
Dim x As New CompanyA.Shipping
155
Programacin Web
Adems puedes usar la instruccin Imports para importar el espacio de nombres y
entonces instancias la clase directamente, como se muestra en el siguiente
cdigo:
Imports CompanyA
Dim x As New Shipping
Usando el Objeto
Despus que es instanciado, el objeto es usado como cualquier otro objeto en tu
proyecto. Todos los mtodos pblicos dentro de la clase estn disponibles para
usar. Por ejemplo: siguiente lnea de cdigo pasa un parmetro a la funcin
ShippingCost de la clase Shipping y asigna el valor de regreso a la variable
sngShipping:
sngShipping = x.ShippingCost(sngPrice)
Quizz10
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.
Prctica 15
Creando una clase
Instrucciones:
Genera el proyecto
Crea una nueva Aplicacin Web y agrgala a tu solucin actual.
156
Programacin Web
157
Programacin Web
4. Servicios Web
4.1. Introduccin
Objetivos
En esta seccin reconocers los estndares abiertos de Internet (HTTP, XML,
SOAP, WSDL) a travs de ejemplos.
Actividad
Objetivos
En esta seccin conocers un panorama general sobre los estndares de Internet
(http, XML, SOAP, WSDL), as como el funcionamiento bsico de un Servicio
Web.
Instrucciones
a. Revisa el material del documento ServiciosWeb (1-13) para que te empapes de
los conceptos bsicos que se consideran en un Servicio Web.
b. Contesta el cuestionario correspondiente Quiz11.doc.
c. Realiza el ejercicio Prctica16.doc, para que te familiarices con los proxys para
invocar a un Servicio Web.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica16 y contar con el
2% de la calificacin final, siempre y cuando lo entregues en la fecha y con el
formato adecuado (pdf).
158
Programacin Web
Materiales de apoyo
QU ES UN SERVICIO WEB XML?
Introduccin
Los servicios Web XML son similares a los componentes, ya que representan
cajas negras que los desarrolladores pueden usar para agregar caractersticas a
una Forma Web, a una Aplicacin o algn otro servicio Web XML sin preocuparse
de cmo el servicio es implementado.
Los Servicios Web XML estn diseados para interactuar directamente con otras
aplicaciones sobre Internet. Como resultado, los servicios Web XML no tienen una
interfaz de usuario; sino que los servicios Web XML proporcionan una interfaz
estndar definida llamada contrato que describe los servicios que ellos
proporcionan.
Un servicio Web XML puede ser usado internamente por una sola aplicacin o
puede ser usado externamente por muchas aplicaciones que accedan a l por
medio de Internet.
Una conexin a un servicio Web XML puede ser escrito por cualquier leng uaje
basado en Microsoft .NET. Como resultado de esta flexibilidad no necesitan
aprender un nuevo lenguaje cada vez que se quiera usar un servicio Web XML.
Debido a que los servicios Web XML son accesibles a travs de una interfaz
estndar los sistemas pueden trabajar juntos. Los servidores que soportan Formas
Web tambin soportan servicios Web XML.
El modelo de servicios Web XML asume una arquitectura de servicio sin estado.
Cada respuesta de un servicio Web XML es un nuevo objeto, con un nuevo
estado.
159
Programacin Web
Los servicios Web XML son asncronos, porque el objeto solicitud de una
aplicacin cliente y un objeto respuesta de un servicio Web XML son los nicos
que no requieren una conexin compartida.
Los servicios Web XML son basados en el World Wide Web. Como resultado, las
caractersticas genricas de los servicios Web XML son estticas; sin embargo,
nuevas caractersticas pueden ser agregadas en el futuro.
PORQU USAR SERVICIOS WEB XML?
Introduccin
Los servicios Web XML permiten compartir el cdigo de programacin y la
funcionalidad con numerosas aplicaciones, y con otras aplicaciones que se estn
ejecutando en otras plataformas. Considera un servicio Web XML como un
componente que puede exponer sus mtodos a travs de la Web.
Los servicios Web XML son basados en el estndar W3C. Los servicios Web XML
tambin ofrecen el uso de protocolos Web Standard y las herramientas de soporte
que estn disponibles en Visual Estudio .NET. Con Visual Estudio .NET, los
servicios Web XML son extremadamente fcil de desarrollar y consumir.
Imagina un infinito nmero de Servicios Web XML que puedes usar para agregar
diversas caractersticas a tus aplicaciones Web.
La ilustracin anterior muestra un sitio Web de una agencia de viaje que ofrece
diversas caractersticas que son basadas en Servicios Web XML. En este
escenario, el usuario introduce el nombre de la cuidad destino, y la Forma Web
usa el nombre de la cuidad como un parmetro que llama a varios servicios Web
XML. Desde la perspectiva del usuario, esto es una caracterstica del sitio Web de
la agencia. Desde la perspectiva del cdigo, el sitio Web es ms una interfaz de
usuario combinando un nmero de Servicios Web XML desde compaas no
relacionadas.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
160
Programacin Web
ENCONTRANDO UN SERVICIO WEB XML
Introduccin
Puedes encontrar servicios Web XML existentes para agregar a tu sitio Web
usando uno o ms de una serie de servicios. Estos servicios estn creciendo y
cambiando rpidamente, adems de que el desarrollo y uso de servicios Web XML
gana aceptacin en la comunidad de Internet.
Encontrando un Servicio Web XML
El proceso para encontrar y hacer referencia a un servicio Web XML es como
sigue:
1. Los desarrolladores de Servicios Web XML publican descripciones y
direcciones para sus servicios Web XML en un sitio Web denomi nado
Descripcin universal, Descubrimiento e Integracin (UDDI).
2. T solicitas al sitio UDDI para encontrar los servicios Web XML disponibles
que cumplen con tus requerimientos. UDDI proporciona una lista de
Servicios Web XML que incluyen el archivo de descubrimiento (DISCO)
documento localizador de recursos (URLs) para el servicio Web XML.
3. T seleccionas un servicio Web XML y accedas al documento DISCO para
localizar el URL del servicio Web XML y el documento del lenguaje de
descripcin del servicio Web relacionado (WSDL).
4. Construyes un objeto Proxy del documento WSDL.
5. Usa el objeto Proxy para ligar el servicio Web XML.
6. Llama el servicio Web XML desde la Forma Web usando el Proxy.
161
Programacin Web
UDDI
La especificacin UDDI define una manera para publicar y encontrar informacin
acerca de los servicios Web XML y las compaas que los suministran.
Archivos DISCO
Los archivos DISCO son usados para agrupar servicios comunes en un servidor
Web. Son archivos que contienen ligas (URLs) de los recursos que proporcionan
informacin de un servicio Web XML.
Archivos WSDL
Un archivo WSDL define la gramtica que es usada para comunicarse con un
servicio Web XML. Visual Estudio .NET usa el archivo WSDL para construir
objetos Proxy para comunicarse con un Servicio Web XML.
Los archivos WSDL contienen la siguiente informacin acerca de un servicio Web
XML.
Donde encontrar la URL.
Los mtodos y propiedades servicios Web XML.
Tipos de Datos usados.
Protocolos de Comunicacin.
LECCION: LLAMANDO UN SERVICIO WEB XML USANDO HTTP
CMO LLAMAR UN SERVICIO WEB XML?
162
Programacin Web
Introduccin
Cuando t accedes a un servicio Web XML directamente con un navegador,
primero
accedes
a
la
pgina
de
descripcin
HTML,
DefaultWsdHelpGenerator.aspx. Desde esta pgina, t puedes seleccionar los
mtodos de los servicios Web XML disponibles y llamar a los mtodos con
parmetros. Entonces recibirn una respuesta en XML.
Adems puedes usar el protocolo HTTP -POST para acceder a un servicio Web
XML.
Entonces
no
acceders
a
la
pgina
por
default,
DefaultWsdHelpGenerator.aspx; sin embargo la respuesta final de los servicios
Web XML sern idnticos a una repuesta HTTP-GET.
Despus de encontrar un servicio Web XML en UDDI, usa el URL .asmx para
navegar a la pgina de descripcin HTML. Esta pgina de descripcin proporciona
informacin acerca de lo que hace un servicio Web XML, los mtodos Web
disponibles, los parmetros de los mtodos y la respuesta. Adems puedes usar la
descripcin de pgina para probar la funcionalidad de los servicios Web XML.
La siguiente ilustracin muestra una vista del navegador del servicio Web XML
denominado Stock que es usado en la demostracin en este mdulo.
163
Programacin Web
164
Programacin Web
LECCIN: USANDO UN PROXY PARA LLAMAR UN SERVICIO WEB XML
Introduccin
Para llamar un servicio Web XML desde una Forma Web, necesitas crear una
referencia Web al servicio Web XML en tu proyecto de aplicacin Web. Las
referencias Web crean el objeto Proxy que es usado para comunicarse con el
servicio Web XML usando SOAP.
Qu es un Proxy?
Una clase Proxy es cdigo que es exactamente como una clase es decir sirve
para representar pero que no contiene cdigo. Un objeto Proxy permite a un
cliente para acceder a un servicio Web XML como si fuera un objeto local COM.
El Proxy debe ser en la computadora que tiene la aplicacin Web.
165
Programacin Web
Visual Estudio .NET automticamente crea un Proxy con referencia .Vb, cuando
agregas una referencia Web a un servicio Web XML. Cuando tu creas la
referencia Web, Visual Estudio .NET crea el archivo de referencia el cual contiene
el cdigo Proxy.
Interactuar con SOAP
Los Proxies y los servicios Web XML interactan usando SOAP, el cual es un
protocolo XML que es utilizado para intercambiar informacin estructurada.
El proceso para acceder a un servicio Web XML usando un Proxy es:
1. El usuario enva una solicitud URL a una Forma Web que requiere para
llamar a un servicio Web XML.
2. La forma Web instancia el Proxy, el cual llama al servicio Web XML usando
SOAP.
En seguida SOAP hace una solicitud al mtodo Web GetRating del servicio Web
XML Stocks pasando el argumento Contoso:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetRating xmlns="http://tempuri.org/">
<Ticker>Contoso</Ticker>
</GetRating>
</soap:Body>
</soap:Envelope>
3. El servicio Web XML enva una respuesta al Proxy usando SOAP. El
siguiente cdigo es la respuesta SOAP desde el servicio Web XML
GetRating.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetRatingResponse xmlns="http://tempuri.org/">
<GetRatingResult>Buy</GetRatingResult>
</GetRatingResponse>
</soap:Body>
</soap:Envelope>
166
Programacin Web
4. La Forma Web ASP.NET toma la respuesta desde el servicio Web XML.
Visual Estudio .NET automticamente crea un Proxy cuando tu seleccionas
Agregar Referencia Web desde el men Proyecto e introduce el URL del servicio
Web XML. El archivo wsdl .asmx en el servidor del servicio Web XML es usado
para identificar los mtodos y parmetros Web que estn disponibles en el servicio
Web XML.
Cuando creas una Proxy usando Visual Studio .NET, un numero de mtodos y
propiedades que soportan acceso a los servicios Web XML estn disponibles. Los
miembros que estn disponibles a un Proxy incluyen:
La infraestructura para hacer asncronas las llamadas desde una Forma Web a un
servicio Web XML es construido dentro de la clase Proxy que es creada
automticamente por Visual Estudio .NET cuando agregas una referencia Web.
Un mtodo BeginNombredelMtodoWeb y un mtodo EndNombredelMtodoWeb
son automticamente creados en el Proxy para cada mtodo Web del servicio
Web XML.
167
Programacin Web
Introduccin
Para usar un servicio Web XML desde una Forma Web que fue creada en Visual
Estudio .NET, primero debers identificar el URL del servicio Web XML y entonces
crear la referencia Web.
Para crear un Proxy para llamar un servicio Web XML desde una Forma Web:
168
Programacin Web
MANEJO DE ERRORES EN LOS SERVICIOS WEB XML
Introduccin
Existen tres fuentes de errores cuando usas un servicio Web XML: servicio
indisponible, retardo en el tiempo de respuesta, y errores internos del servicio Web
XML, que dan por resultado mensajes de errores desde el servicio en forma de
excepciones SOAP. Tu Forma Web necesita estar habilitada para identificar y
manejar estos tres tipos de errores.
Disponibilidad de un Servicio Web XML
Para probar la disponibilidad de un servicio Web XML de una Forma Web
ASP.NET, necesitas establecer una interrupcin (timeout) para el Proxy del
servicio Web XML. Necesitas usar las instrucciones Try.. Catch.. Finally para
manejar esta excepcin:
Establecer el parmetro timeout en el Proxy
Establecer en la propiedad timeout del servicio Web XML un valor en
milisegundos, como muestra el siguiente cdigo:
ProxyName.Timeout = value in millisec
Manejar cualquier excepcin timeout
El siguiente cdigo llama al servicio Web XML, atrapa cualquier excepcin y
despliega un mensaje de error en Label1:
Try
'call the XML Web service
Catch err As Exception
Label1.Text = err.Message
End Try
169
Programacin Web
Excepciones SOAP de los servicios Web XML
Si un servicio Web XML esta habilitado para procesar una solicitud, esta puede
regresar un mensaje de error usando una instancia de la clase
System.Web.Services el objeto SoapException. Para manejar estas excepciones,
necesitas usar la instruccin Try.Catch.Finally.
El siguiente cdigo atrapa la excepcin y despliega un mensaje de error en la
etiqueta Label1:
Try
'call your XML Web service
Catch err As SoapException
Label1.Text = "Unable to process your request"
End Try
LECCIN: CREANDO UN SERVICIO WEB XML
CMO CREAR UN SERVICIO WEB XML?
Introduccin
Visual Estudio .NET proporciona plantillas y un mtodo de servicio Web XML por
default para ayudarte a iniciar la creacin de los servicios Web XML.
Para crear un servicio Web XML en Visual Estudio .NET
1. Abrir Visual Estudio .NET, y crea un proyecto nuevo de servicio Web
ASP.NET.
en
170
Programacin Web
Visual Estudio .NET automticamente crea las carpetas requeridas, archivos y la
pgina de servicio Web XML. Renombrar el proyecto y el nombre del servicio Web
XML es recomendable porque ayuda a identificar el proyecto y los archivos.
2. Declarar las funciones Web.
Visual Estudio .NET crea automticamente por default una funcin llamada Hello
world en una pgina de servicio Web XML. La funcin puede ser activada
borrando las etiquetas de comentarios.
Casi cualquier tipo de funcin puede ser escrito como un mtodo de servicio Web
XML, desde una simple operacin local hasta una consulta compleja en una base
de datos.
3. Construir el proyecto de servicio Web XML.
Despus de escribir las funciones, t necesitas construir el servicio Web antes de
poder probar el proyecto. Como con las Formas Web, ASP.NET compila los
servicios Web XML dentro del Lenguaje Intermedio Microsoft (MSIL) para prxima
ejecucin.
4. Probar con un Navegador.
Para verificar que las funciones trabajen correctamente, puedes probarlas
accesando directamente al servicio Web XML con un navegador. En el explorador
de soluciones puedes hacer clic derecho al servicio Web XML y seleccionar la
opcin Construir y examinar.
Otra forma de probar el servicio Web XML con un navegador externo desde Visual
Estudio .NET dando clic derecho en el servicio Web XML desde el explorador de
soluciones y seleccionando Examinar con... o abriendo el navegador e
introduciendo el URL del servicio Web:
http://serverName/WebService1/Service1.asmx
171
Programacin Web
CODIGO DE UN SERVICIO WEB XML
Introduccin
Cuando creas un servicio Web XML con visual Estudio .NET, dos archivos son
creados que comprenden el servicio Web XML: el archivo .asmx y el asmx.vb. El
archivo .asmx identifica la pgina Web como un servicio Web XML, mientras que
el archivo .asmx.vb, tambin conocido como el cdigo detrs de la pgina,
contiene el cdigo del servicio Web XML.
Pgina .asmx
Debido a que un servicio Web XML no tiene una interfaz del usuario, la pgina
.asmx solo contiene el archivo con la informacin introducida y una directiva al
cdigo detrs de la pgina.
El cdigo en una pgina .asmx es como el siguiente:
<%@ WebService Language="vb" Codebehind="Service1.asmx.vb"
Class="XMLWebServiceName.Service1" %>
Las pginas .asmx tienen los siguientes atributos:
- @ Web Service
El atributo @ Web Service identifica los archivos como un servicio Web XML.
- Language
El atributo Language define el lenguaje en el cual el script en la pgina Web es
escrito. Algunos de los valores para este atributo son: vb, c# y JScript.
172
Programacin Web
- Codebehind page
El atributo Codebehind identifica el nombre y la ruta de los archivos .asmx.vb
que contiene la lgica del servicio Web XML.
- Class
El atributo Class identifica la clase base que soporta la instancia de un servicio
Web XML.
En el archivo .asmx, tu debes definir una clase que encapsula la funcionalidad
de el servicio Web XML. Esta clase definida ser pblica y heredar de la clase
base del servicio Web XML.
La clase por default del servicio Web XML es:
Class Service1
El cdigo detrs de la pgina por default es:
Imports System.Web.Services
<WebService(Namespace := "http://tempuri.org/")> _
Public Class Service1
Inherits System.Web.Services.WebService
'<WebMethod()> Public Function HelloWorld() As String
' HelloWorld = "Hello World"
' End Function
End Class
El cdigo detrs de la pgina tiene los siguientes atributos:
- Namespaces
Los servicios Web XML importan los espacios de nombres System y los
System.Web.Services.
- Class
El atributo Class identifica la clase base que soporta la instancia de un servicio
Web XML.
- Los mtodos del servicio Web XML
Cada mtodo que ser expuesto de un servicio Web XML debe estar marcado con
un atributo <WebMethod()>. Este atributo es requerido para crear un mtodo
Web. Si el mtodo no tiene la etiqueta <WebMethod()> , el mtodo no ser
expuesto desde el servicio Web XML.
173
Programacin Web
Visual Estudio .NET crea por default un mtodo Web Hello World, el cual puede
ser activado borrando las marcas de comentari o en la pgina del servicio Web
XML. Puedes modificar la funcin por default o agregar tus propias funciones.
EL siguiente cdigo es el mtodo por default de los servicios Web XML de Visual
Estudio .NET:
<WebMethod()> Public Function HelloWorld() As String
HelloWorld = "Hello World"
End Function
Arquitectura XML
Qu es XML?
174
Programacin Web
Un documento XML se compone de los siguientes elementos:
XML utiliza los esquemas (schema) para validar sus documentos, y se definen
como las descripciones de un documento XML. Adems se usan las declaraciones
tanto de los elementos como de los atributos, para definir precisamente el uso
stos, as en el siguiente ejemplo, el nombre del elemento es declarado como
<LastName>, y en el documento este elemento puede ocurrir 0 ms veces, este
concepto es muy similar a cuando se establece la cardinalidad de las entidades en
un diagrama entidad-relacin para una base de datos.
<xsd:element name="LastName" minOccurs="0" maxOccurs="*"
type="string"></xsd:element>
ASP.NET permite escribir scripts para que se ejecuten en un servidor Web y as
se genere un documento XML, que se enve hacia el explorador.
XML y el Objeto DataSet
Los DataSets son la base para la manipulacin de datos relacionales de una o
ms tablas, con el enfoque de almacenamiento desconectado, as XML es el
formato estandarizado para los datos que se presentan en estos objetos propios
de ASP.Net.
175
Programacin Web
176
Programacin Web
Dado que la estructura de un DataSet incluye tablas, columnas, relaciones y
restricciones y se pueden definir en un esquema XML, es necesario contar con
mtodos que nos permitan establecer una interface entre el DataSet y el
documento XML, por lo que .Net Framework tiene contemplado dos mtodos
ReadXML y WriteXML, el primero se encarga de leer un documento XML y
cargarlo a un objeto DataSet, mientras que el segundo a partir de un objeto
DataSet escribe la informacin a un documento XML. Esto permite que la
informacin viaje entre distintas aplicaciones con diferentes plataformas, lo que es
muy conveniente para las aplicaciones Web.
Ejemplos de Utilizacin de los mtodos del objeto DataSet
177
Programacin Web
Por otro lado, la representacin del DataSet en un archivo XML, puede escribirse a
un archivo, flujo o cadena, as si es necesario conocer esta representacin, se
utiliza el cdigo de la tercera seccin, mediante el mtodo GetXml.
Seccin 2
Trabajando con Datos en XML
ASP.NET contiene la clase XmlDataDocument , que permite que los documentos
XML puedan ser almacenados, manipulados y recuperado a travs de un DataSet,
adems cualquier cambio realizado en el XmlDataDocument se refleja en el
DataSet y viceversa.
178
Programacin Web
La forma de sincronizar estos dos objetos se presenta a continuacin:
179
Programacin Web
180
Programacin Web
Prctica 16
Usando un proxy para llamar un servicio Web
Instrucciones:
181
Programacin Web
182
Programacin Web
3.
4.
5.
Explica para que reutiliza el atributo Codebehind page en las pgina s
.asmx
Prctica 17
Creando un servicio Web
Instrucciones:
Guarda el archivo.
Genera y Examina el servicio web en Internet Explorer, indicando como
direccin: http://localhost/StocksCS/Service1.asmx
Haz clic en GetRating.
Escribe el nombre de una compaa, como Contoso o Northwind Traders en
el campo Ticker y haz clic en Invoke.
183
Programacin Web
184
Programacin Web
185
Programacin Web
Materiales de apoyo
MANEJO DEL ESTADO
La conexin que se establece entre un usuario y un servidor Web se
conoce como sesin, as las sesiones pueden unir varias pginas Web y son
supervisadas mediante el manejo de su estado. El manejo de estado es el
proceso que se encarga de mantener la misma informacin a travs de varias
peticiones para la misma pgina Web o diferentes versiones de ella.
186
Programacin Web
As el manejo de estado del lado del servidor usa recursos del servidor para
almacenar la informacin, y tiene una mayor seguridad que el lado del cliente, en
cambio el manejo de estado del lado del cliente compensa la mnima seguridad
que posee a cambio de ofrecer una ejecucin ms rpida.
Adems del lado del servidor se pueden contemplar opciones como:
187
Programacin Web
El archivo Global.asax
de los eventos
que se
188
Programacin Web
As cada vez que un cliente realiza una peticin, se disparan los eventos tanto
para autenticar como autorizar la entrada al usuario al sitio Web, luego se
establecen los atributos para el manejo del estado y una vez que se ejecuta el
cdigo de la pgina, se realiza el proceso de regreso con la respuesta de la
peticin.
La siguiente tabla muestra el objetivo de cada evento:
Nombre del Evento
Application_BeginRequest
Application_AuthenticateRequest
Application_AuthorizeRequest
Application_ResolveRequestCache
Application_AcquireRequestCache
Application_PreRequestHandlerExecute
Application_PostRequestHandlerExecute
Application_ReleaseRequestState
ApplicationUpdateRequestCache
Application_EndRequest
Descripcin
Este evento se dispara cuando una
nueva peticin es recibida
Este evento indica que la peticin est
lista para ser autenticada
Este evento seala cuando lo peticin
esta lista para ser autorizada
Evento usado por el modulo del cache
externo para detener el procesamiento de
la peticin que ha sido guardada en el
cache
Seala que el estado de la peticin debe
ser obtenido
Seala que el manejador de peticiones se
va a ejecutar.
Es el primer evento disponible despus
del manejador, y sucede cuando un
servicio Web se ha terminado de
ejecutar.
Este evento es llamado cuando el estado
de la peticin debe ser almacenado
Este evento seala que el procesamiento
del cdigo fue completado, por lo que el
archivo se encuentra listo para anexarse
al cache.
Es el ltimo evento llamado por la
189
Programacin Web
Application_Start
Application_End
Session_Start
Session_End
Application_Error
aplicacin Web.
Este evento es generado cuando la
aplicacin comienza.
Este evento se dispara cuando la
Aplicacin se termina, es el evento
recproco a Application_Start
Es generado cuando un usuario de
sesin utiliza una Aplicacin Web
Se genera cuando el usuario de sesin
termina sus acciones en la Aplicacin
Web
Se genera cuando un error que no se
haya manejado ocurra.
Se pueden ini cializar las variables de sesin y aplicacin en el evento Start de los
objetos Sesin y Aplicacin. Se utiliza el objeto Sesin para almacenar la
informacin que es necesaria para una sesin especfica del usuario, las variables
que son almacenadas en el objeto Sesin no sern descartadas cuando el
usuario viaje entre las distintas pginas, es decir las variables persistirn durante
toda la sesin del usuario.
El cdigo siguiente ilustra como las variables de sesin son usadas para
almacenar el esquema de color preferido para una sesin particular del usuario.
protected void Session_Start(Object sender, EventArgs e)
{
Session["BackColor"] = "beige";
Session["ForeColor"] = "black";
}
190
Programacin Web
Se puede utilizar el objeto Application para compartir la informacin del estado
entre todos los usuarios de la Aplicacin Web. Un objeto Application es creado
cuando el primer usuario de la Aplicacin requieres archivos .aspx. As el objeto
Application es destruido cuando todos los usuarios han salido de la Aplicacin
Web y sta ha sido descargada.
Por ejemplo, puedes almacenar el nmero total de visitante para un sitio Web en
una variable a nivel Aplicacin.
protected void Application_Start(Object sender, EventArgs e)
{
Application["NumberofVisitors"] = 0;
}
Usando Variables de Sesin y Aplicacin
Para usar las variables de sesin y aplicacin, simplemente se usa una cadena.
Se establece un valor, para personalizar una variable de sesin, es necesario
proveer una llave, la cual identifique el elemento que estas almacenando, usando
una sentencia como la siguiente:
Session("BackColor") = "blue"
En este caso la sentencia agrega la llave BackColor, con un valor de blue. Por lo
tanto las variables de Aplicacin son accesibles en un medio ambiente multiusuario, as cuando los datos de la Aplicacin son actualizados, se necesita
prevenir que otros usuarios o Aplicaciones actualicen los datos simultneamente.
Por lo que ASP.NET provee un conjunto de candados, Application.Lock() y
Application.UnLock(), los cules son utilizados para prevenir acceso concurrente
a la variable de aplicacin. El cdigo siguiente muestra el uso de los candados.
191
Programacin Web
Application.Lock();
Application["NumberofVisitors"] =
(int)Application["NumberOfVisitors"] + 1;
Application.UnLock();
Para usar una variable de sesin o aplicacin, slo necesitas leer el valor del
objeto Session o Application.
strBgColor = (string)Session["BackColor"];
lblNbVistitor.Text =
Application["NumberofVisitors"].ToString();
Un servidor Web no tiene forma de detectar cuando un usuario, deja un sitio Web,
en lugar de eso, el Servidor Web detecta que ha pasado un cierto periodo de
tiempo sin que un usuario requiera la pgina. Si el tiempo es excesivo (ms de 20
minutos), se remueven todos los elementos en el estado de sesin, que son
asociados con ese usuario.
Se puede modificar la duracin de este periodo de sesin en el archivo
Web.config, por ejemplo.
<configuration>
<system.web>
<sessionState timeout="10" />
</system.web>
</configuration>
Almacenamiento Escalable de las Variables de Sesin y Aplicacin
192
Programacin Web
El estado de sesin es manejado en procesos, pero esto genera desventajas
porque limita la escalabilidad del sitio Web, es decir no se puede configurar varios
servidores para manejar las peticiones.
Por lo que ASP.NET provee dos mtodos que son usados para almacenar
el estado de sesin fuera del proceso y son:
v Manejo del estado de sesin con una Base de Datos de SQL Server
v Manejo del estado de sesin con un servidor distinto.
Para almacenar este estado, se necesita modificar el archivo
Web.config , para establecer el modo sessionstate al valor sqlserver o
stateserver, y entonces especificar la localizacin del servidor; la opcin
sqlserver es similar a stateserver, excepto a que la informacin persiste
en SQL Server.
Esto permite tener Aplicaciones Web escalables, pues el estado de la
sesin es compartido a travs de varios servidores que soporten el
escenario tipo granja (los usuarios son encaminados dinmicamente desde
un servidor a otro sin perder las variables de sesin y aplicacin).
Variables de Sesin y Aplicacin en una Base de Datos
Para guardar las variables en una Base de Datos SQL Server o cualquier otro
servidor es necesario:
Configurar el estado de sesin en el archivo Web.config de tu servidor web
Configurar SQL Server o el Servidor de Estado (servidor independiente).
Por ejemplo, si estas usando el modo sqlserver con seguridad integrada, se
necesitan establecer las propiedades de la siguiente forma:
193
Programacin Web
<sessionState mode="SQLServer"
sqlConnectionString="data source=SQLServerName;
Integrated security=true" />
Para configurar SQL Server, necesitas ejecutar el comando OSQL.exe, que instala
la Base de Datos ASPState, que es utilizada para guardar estas variables. Para
instalarla usa la siguiente instruccin:
c:\> OSQL .S SQLServerName -E <InstallSqlState.sql
Sesiones con Cookies y sin ellas.
Los archivos cookies son medios por los que la Aplicacin Web que corra en el
Servidor Web, pueda causar a un cliente para regresar informacin al servidor web
con cada peticin, esto permite mantener el estado con el cliente a travs de
mltiples peticiones. Las cookies son enviadas al cliente como parte de la
cabecera http en la peticin del cliente.
194
Programacin Web
objCookie.Values.Add("Time", now.ToString());
objCookie.Values.Add("ForeColor", "White");
objCookie.Values.Add("BackColor", "Blue");
Se puede establecer el tiempo de expiracin de la cookie por cierto periodo de
tiempo de lo contrario se comportara como una cookie temporal (se elimina
cuando el usuario sale del explorador), por ejemplo:
objCookie.Expires = now.AddHours(1);
Es decir la cookie anterior se vuelve persistente, por lo que se guarda en el disco
duro. Adems por ejemplo si deseas crear una cookie llamada UserName, la cual
contiene el nombre de un visitante a tu sitio Web, el servidor web enviar en la
cabecera de http como se muestra a continuacin:
Set-Cookie: Username=John+Chen; path=/; domain=microsoft.com;
Expires=Tuesday, 01-Feb-05 00.00.01 GMT
Por lo que el servidor agregar la cookie llamad Username con el valor John
Chen, mientras que el atributo de domain , restringe donde la cookie puede ser
enviada por el explorador, as en el ejemplo la cookie solo puede ser enviada al
sitio de Microsoft. Las cookies se almacenan en el directorio Documents and
Settings\Username \Cookies y si son almacenadas por Internet Explorer el archivo
de texto se llama Username@DomainName.txt
Usando sesiones sin cookies
195
Programacin Web
Cada seccin activa es identificada usando un SessionID (identificador de
Usuario) y por omisin ste se encuentra almacenado en cookies. Sin embargo los
usuarios pueden deshabilitar las cookies, as si la cookie no puede ser agregada al
explorador del usuario, cada peticin realizada por el usuario comienza una nueva
sesin de usuario.
Por lo que el Framework incluye una opcin para habilitar las sesiones sin cookies,
pues as no existen problemas aunque el usuario deshabilite las cookies. Cuando
un usuario realiza su primera peticin a un sitio Web con esta opcin, el URL que
es usado para la peticin es automticamente modificado para incluir el SessionID
del usuario. Por ejemplo cuando un usuario hace una peticin a
http://server/page.aspx, la peticin se modifica a:
http://server/(h44a1e55c0breu552yrecobl)/page.aspx
As lo que aparece entre (), es justamente el SessionID, para el usuario actual.
Adems para establecer el modo de sesin sin cookies, en el archivo Web.config
se hace el cambio en la siguiente sente ncia:
<sessionState cookieless="true" />
Prctica 19
Usando Variables de Sesin
Instrucciones:
196
Programacin Web
Prctica 20
Usando Variables y Cookies
Instrucciones:
197
Programacin Web
198
Programacin Web
Instrucciones
a. Revisa el material de apoyo para que conozcas el funcionamiento del cach de
los resultados de pgina, as como el rendimiento que ofrece para evitar
compilaciones y ejecuciones innecesarias del cdigo del Servicio Web, ocupando
el cdigo almacenado en el cach.
b. Contesta el cuestionario correspondiente Quiz16.doc.
c. Realiza el ejercicio Prctica22.doc, para que practiques las distintas opciones
para emplear el cach de los resultados de pgina.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica22 y contar con el
2% de la calificacin final, siempre y cuando lo entregues en la fecha y con el
formato adecuado (pdf).
Actividad 3
199
Programacin Web
Materiales de apoyo
Servicios de Cach
Una de los formas ms efectivas para incrementar el desempeos de las
aplicaciones Web es utilizar el objeto Cach, ste permite localizar elementos en
la memoria del servidor de tal forma que puedan ser recuperados rpidamente.
Sin embargo cargar demasiados elementos dentro del objeto Cach, puede bajar
el tiempo de respuesta del servidor, reduciendo la cantidad de memoria disponible.
Qu es el objeto Cach?
El objeto Cach permite almacenar elementos la primera vez que son solicitados,
y entonces se usa la copia que contiene el cach para solicitudes posteriores.
Adems para almacenar datos individuales ASP.NET ofrece un cach de salida
(resultados de pgina), que puede ser usado para almacenar pginas Web y
controles de usuario.
As el objeto Cach, provee un mtodo para pasar valores entre las pginas en la
misma Aplicacin Web, los mtodos de cach implementan el bloqueo de manera
automtica, adems esto asegura que los valores que sean accesados
concurrentemente mantengan su integridad.
El proceso para usar el objeto Cach es:
Una pgina requiere un elemento que ha sido identificado, que esta siendo
almacenado en el objeto Cach.
ASP.NET verifica el objeto Cach para ver si esta disponible el objeto en el
cach.
Si la versin del elemento en el cach no est disponible, se recrea el
elemento, lo utiliza y lo almacena en el objeto Cach para un uso posterior.
200
Programacin Web
Se crea un objeto Cach para cada Aplicacin Web, as los elementos que se
almacenan, no pueden ser accedidos por otras Aplicaciones Web que se
encuentren corriendo en el mismo servidor, por lo tanto por incrementar el
desempeo de la Aplicacin Web, no se permite escalar en distintos niveles la
Aplicacin.
El objeto Cach puede emplearse para almacenar informacin que podra ser
almacenada en las variables de aplicacin, as en lugar de recrear el valor cada
vez que usas el elemento, lo almacenas en un cach individual que puede ser
accedido por cualquier pgina de la aplicacin. Adems el cach no puede ser
usado para almacenar informacin que se encuentra en las variables de sesin.
Adems este objeto utiliza el par llave-valor para almacenar y recuperar objetos.
As la llave es la llave del cach, que es una cadena que es usada para referenciar
al objeto, mientras que el valor es el objeto almacenado. Para agregar un
elemento al cach se realiza la siguiente sentencia:
Cache["mykey"] = myValue;
Y para recuperar un elemento del cach tenemos:
myValue = Cache["myKey"];
Cmo usar el objeto Cache?
Puedes escribir un elemento dentro del objeto cach de forma implcita, como se
muestra a continuacin:
Cache["mykey"] = myValue;
O bien de forma explcita, dando los parmetros necesarios como el lmite de
tiempo de almacenamiento, y se indica de la siguiente forma:
Cache.Insert("myKey", myValue,
Dependency, AbsoluteExpiration, SlidingExpiration,
CacheItemPriority, CacheItemRemovedCallBack);
201
Programacin Web
Removiendo elementos del objeto cache
Los elementos en el objeto Cach, son removidos tan pronto como el tiempo lmite
es superado. Se puede definir el tiempo de vida mximo para un elemento
utilizando el parmetro AbsoluteExpiration, este parmetro permite que tu
especifiques el tiempo en el cual el elemento expirar.
El siguiente cdigo especifica que myValue ser removido del objeto Cach
exactamente cinco minutos despus de que fue creado.
Cache.Insert("myKey", myValue, null, _
DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration);
Adems se puede definir el tiempo de vida relativo para un elemento usando el
parmetro SlidingExpiration, que permite especificar el intervalo de tiempo entre
el tiempo que el objeto cach fue accedido por ltima vez y cuando el objeto
expira.
El siguiente cdigo especifica que myValue ser removido del objeto Cach
exactamente 20 segundos despus de su ltimo acceso.
Cuando existen dependencias entre archivos, y es necesario actualizar la
informacin de alguno ante el comportamiento del otro, se puede utilizar el objeto
Cach, como en el ejemplo siguiente, que remueve myValue cuando el archivo
myDoc.xml se modifica.
Cache.Insert("myKey", myValue, null, null,
Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
202
Programacin Web
As el siguiente cdigo inserta un valor para MyBook al cach con un nmero de
argumentos, despus se establece una dependencia al archivo Books.xml y
despus se remueve el elemento en estos casos: 5 minutos despus de haber
sido almacenado, 30 segundos despus del ltimo acceso o cuando el archivo xml
cambie.
Cache.Insert("MyBook.CurrentBook", CurrentBook,
new CacheDependency(Server.MapPath("Books.xml")),
DateTime.Now.AddMinutes(5),
TimeSpan.FromSeconds(30),
CacheItemPriority.High, onRemove);
Usando el cach de Resultados de Pgina
Algunas veces es imprctico guardar la pgina comp leta, porque slo
algunas porciones de la pgina se pueden necesitar crearse dinmicamente en
cada peticin. Un ejemplo de fragmentos de pgina es una cabecera de pgina,
un grfico, por ejemplo el siguiente cdigo ubica los resultados del Mtodo Web
CachedInfo dentro del Cach de resultados de pgina por cinco minutos.
[WebMethod(CacheDuration=300)]
public string CachedInfo()
{
...
}
Cmo usar el Cach de resultados de pgina?
Para cargar una pgina a este tipo de cach, debes agregar la directiva
OutputCache a la forma Web, sta incluye dos propiedades: la propiedad
Duration que establece el tiempo de almacenamiento mximo para la pgina
guardada en segundos, y la propiedad VaryByParam que determina cuando una
nueva copia de la pgina es creada en el cach, basado en el parmetro que es
pasado a la pgina.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
203
Programacin Web
Se puede especificar el tiempo de expiracin del valor, como en el siguiente
ejemplo:
<%@ OutputCache Duration="900" VaryByParam="None"%>
La propiedad VaryByParam es usada para determinar si ASP.NET debera crear
versiones diferentes de cach de pgina en situaciones en las que las solicitudes
a la pgina tenga parmetros especficos, si se coloca en none significa que slo
una versin de la pgina es almacenada.
Cach de Fragmentos de Pgina
Este cach nos permite guardar partes de la pgina y controles de usuario para un
periodo de tiempo especfico, adems puedes elegir permitir que partes de la
pgina que requieren pocos recursos, o partes de la pgina que deben ser
creados a cada peticin o s e generan dinmicamente.
Los buenos candidatos para el cach de fragmentos de pgina incluye cabeceras,
listas de arrastre. Por ejemplo si deseas incluir la siguiente directiva al inicio de un
control de usuario, una versin del control es almacenada en el cache de sallida
por dos minutos y solo una versin puede ser guardada.
<%@ OutputCache Duration="120" VaryByParam="none"%>
Prctica 15
Creando una clase
Instrucciones:
Genera el proyecto
Crea una nueva Aplicacin Web y agrgala a tu solucin actual.
En la Aplicacin Web, agrega una referencia al componente HolaMundo.
Expande el directorio bin en el proyecto y observa que el archivo
HolaMundo.dll ha sido copiado ah.
Abre la forma WebForm1.aspx
204
Programacin Web
Prctica 16
Usando un proxy para llamar un servicio Web
Instrucciones:
Prctica 17
Creando un servicio Web
Instrucciones:
Crea un nuevo proyecto de Servicio Web y especifica la localizacin del
Servicio Web como http://localhost/StocksCS
Abre el archivo Service1.asmx y haz clic dereccho para observar su cdigo.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
205
Programacin Web
Guarda el archivo.
Genera y Examina el servicio web en Internet Explorer, indicando como
direccin: http://localhost/StocksCS/Service1.asmx
Haz clic en GetRating.
Escribe el nombre de una compaa, como Contoso o Northwind Traders en
el campo Ticker y haz clic en Invoke.
206
Programacin Web
5.3. Configuracin
Objetivos
Implementar mecanismos para identificar a los usuarios y controlar el acceso a los
recursos de la Aplicacin Web.
Actividad 1
Actividad 2
207
Programacin Web
Instrucciones
Revisar el tema en el material de apoyo para conocer la forma en que se
almacenan y se obtienen los datos de la configuracin, as como la manera en que
se realiza la distribucin de una Aplicacin Web.
b. Contesta el cuestionario correspondiente Quiz19.doc.
Productos esperados / Evaluaciones
a. Este tema se evaluar con el cuestionario enviado y contar con el 2% de la
calificacin final, siempre y cuando lo entregues en la fecha y con el formato
adecuado (pdf).
Material de Apoyo
CONFIGURANDO UNA APLICACIN WEB ASP.NET
INTRODUCCIN
Antes de que puedas desplegar tu aplicacin Web ASP.NET, debes organizar
algunos archivos de configuracin (Machine.config, Web.config). En esta leccin,
aprenders como configurar una aplicacin Web ASP.NET.
208
Programacin Web
DESCRPCIN DE LOS METODOS DE CONFIGURACION
INTRODUCCIN
La informacin de los recursos de configuracin esta contenida en una coleccin
de archivos de configuracin. Cada archivo de configuracin contiene una
necesaria jerarqua de etiquetas y subetiquetas XML con atributos que especifican
la configuracin a establecer.
Machine.config
La configuracin a nivel de mquina es almacenada en el archivo Machine.config.
Hay solo un archivo Machine.config para cada servidor Web.
Web.config
La aplicacin y los niveles de directorios son almacenados en los archivos
Web.config. Cada aplicacin tiene al menos un archivo Web.config. Los directorios
Virtuales pueden tener sus propios archivos Web.config que contiene la
configuracin establecida para cada directorio.
Atributos de los archivos .config
Las etiquetas en los archivos Machine.config y Web.config deben estar
formateadas usando etiquetas y subetiquetas XML. Toda la informacin de
configuracin en los archivos .config residen entre las etiquetas <configuration> y
</configuration>.
209
Programacin Web
CONFIGURANDO UN SERVIDOR WEB USANDO MACHINE.CONFIG
INTRODUCCIN
El archivo de configuracin de la mquina, Machine.config, contiene la
configuracin que aplica a toda la computadora. Hay solo un archivo
Machine.config para cada servidor Web.
El archivo Machine.config esta localizado en el siguiente directorio, donde se
encuentra la versin del Framework de Microsoft.NET que esta instalada en el
servidor Web.
C:\WINDOWS\Microsft.NET \Framework\version\CONFIG\Machine.config
La configuracin afecta a todas las aplicaciones
Al establecer el archivo de configuracin Machine.config afecta a todas las
aplicaciones que estn localizadas en el servidor. El sistema de configuracin
primero observa en el archivo Machine.config y utiliza los elementos declarados en
<appsettings> y despus la configuracin establecida en los archivos de cada
aplicacin Machine.config.
Ventaja de utilizar el archivo Machine.config
Al establecer el archivo de configuracin Machine.config t puedes hacer que tu
sistema sea ms fcil de mantener, ya que solo basta editar y modificar un solo
archivo.
210
Programacin Web
Desventaja de utilizar el archivo Machine.config
Cuando despliega una Aplicacin Web sobre un nuevo servidor, la aplicacin Web
utiliza un archivo de configuracin que no es copiado al nuevo servidor Web.
CONFIGURANDO UNA APLICACIN UTILIZANDO WEB.CONFIG
INTRODUCCIN
En ASP.NET, t puedes compartir la informacin y establecer la configuracin
para cada aplicacin Web mediante el archivo Web.config. Tambin puedes
almacenar informacin local y configurar directorios virtuales creando archivos
adicionales Web.config.
Un simple archivo Web.config es siempre localizado en el archivo raz de la
carpeta de la aplicacin Web. Los archivos adicionales pueden ser localizados en
la carpeta del directorio virtual para lo cual estn por debajo.
Uno o ms archivos Web.config por aplicacin Web
La presencia de un archivo adicional Web.config es opcional. Si un archivo
Web.config no esta presente, toda la configuracin para el directorio es heredada
automticamente del directorio padre, en el archivo Webconfig.
Categoras de funcionalidad en ASP.NET
En un archivo Web.config, hay secciones para cada categora principal de
funcionalidad en ASP.NET, como se muestra a continuacin.
211
Programacin Web
Nombre de la
seccin
<broserCaps>
<compilation>
<globalization>
<httpModules>
<httpHandlers>
<processModel>
<authentication>
<identity>
<authorization>
<sessionState>
<trace>
Descripcin
Responsable para controlar la configuracin del
navegador
Responsable para la configuracin de compilacin que
es usada por ASP.NET
Responsable para la configuracin de elementos
generales de una aplicacin
Responsable para configurar el protocolo http, el cual
participa en el procesamiento de respuestas de una
aplicacin.
Responsable para mapeos de direcciones URLs a
clases IHttpHandler
Responsable para configurar el modelo ASP.NET sobre
Intenert Information Server (IIS)
Responsable de toda la seguridad que es usada por
ASP.NET en <httpModule>
Responsable de la configuracin del estado de la
sesin en httpmodule
Responsable de la configuracin del servicio de trazo
en ASP.NET
212
Programacin Web
INTRODUCCIN
Cuando un servidor Web recibe una peticin para un recurso de una aplicacin
Web, ASP.NET determina la configuracin establecida para el recurso
jerrquicamente. ASP.NET usa todos los archivos de configuracin que son
localizados en el directorio virtual para la peticin del recurso. El nivel ms bajo
establece la configuracin sobrescribiendo la configuracin de los directorios
padres.
Ejemplo: Si un archivo de configuracin Web.config en el directorio raz
(VirtualDir) de una aplicacin Web contiene una seccin de seguridad que
permite acceder solo a ciertos usuarios, el subdirectorio SubDir hereda esa
seguridad establecida. Como resultado, todos los usuarios tienen acceso a los
recursos de ASP.NET en la aplicacin raz del directorio, VirtualDir, pero solo
ciertos usuarios tienen acceso a los recursos de ASP.NET en SubDir.
Los archivos Web.config para la aplicacin en VirtualDir y el subdirectorio SubDir
estn localizados en:
C:\Inetpub \wwwroot\VirtualDir\Web.config
C:\Inetpub\wwwroot\VirtualDir\SubDir\Web.config
ALMACENANDO Y RECUPERANDO DATOS EN EL ARCHIVO Web.config
213
Programacin Web
INTRODUCCIN
T puedes usar la seccin <appSettings> del archivo Web.config como un
repositorio para las aplicaciones. En la seccin <appSetting> se pueden establecer
cadenas de conexin de bases de datos para aplicaciones centralizadas, en lugar
de tenerlas en cada pgina ASP.NET.
Almacenando la configuracin en Web.config
El siguiente archivo Web.config crea dos key-value para cadenas de conexin en
bases de datos que son usadas en una aplicacin Web.
<configuration>
<appSettings>
<add key=pubs
value=data source=localhost;
initial catalog=pubs;
integratedsecurity=SSPI/>
<add key=northwind
value=data source=localhost;
initial catalog=northwind;
integrated security=SSPI />
</appSettings>
</configuration>
Recuperando la configuracin del archivo Web.config
Para recuperar la configuracin establecida de los archivos Web.config en las
aplicaciones, se debe usar ConfigurationSettings.AppSettings.
Por ejemplo, el siguiente cdigo ejemplo lee el valor de pubs key desde la seccin
<appSettings>
stringstrPubs=System.Confuiguration.ConfigurationSettings.AppSettings[pubs];
Quizz18
Fecha: ___________________
Tema: __________________________________________________
Alumno: __________________________________________________
Tutor: __________________________________________________
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.
214
Programacin Web
Quizz19
Fecha: ___________________
Tema: __________________________________________________
Alumno: __________________________________________________
Tutor: __________________________________________________
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.
5.4. Seguridad
Objetivos
Implementar mecanismos para identificar a los usuarios y controlar el acceso a los
recursos de la Aplicacin Web.
Actividad 1
215
Programacin Web
216
Programacin Web
Instrucciones
a. Revisa el material de apoyo para que conozcas como se trabaja con la
autenticacin basada en Formularios y sus ventajas.
b. Contesta el cuestionario correspondiente Quiz22.doc.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y contar con el 2% de la
calificacin final, siempre y cuando lo entregues en la fecha y con el formato
adecuado (pdf).
Material de Apoyo
AUTENTICACIN VS AUTORIZACIN
INTRODUCCIN
Para trabajar con seguridad, debes estar familiarizado con los dos conceptos
fundamentales para la seguridad en aplicaciones Web.
Autorizacin
Autenticacin
Autenticacin
La autenticacin es el proceso para obtener credenciales de identificacin, tal
como un nombre y un password, para un usuario y validando esas credenciales
contra alguna autoridad, como una base de datos. Si las credenciales son validas,
la entidad que enviada es considerada como una entidad autentificada.
217
Programacin Web
Por ejemplo, todos los usuarios deben tener un nombre y un password para
trabajar en una red de computadoras. Esas credenciales son la validacin contra
una autoridad tal como una base de datos.
Autorizacin
Despus de que una entidad ha sido autentificada, el proceso de autorizacin
determina si esa entidad tiene acceso a un recurso especificado. El proceso de
autorizacin limita los accesos a travs de permisos a una entidad autentificada.
Por ejemplo, puedes autorizar al usuario Robert Brown a acceder a una impresora
de color, pero negar el acceso al usuario Bob Hohman.
MTODOS DE AUTENTICACIN EN ASP.NET
INTRODUCCIN
ASP.NET soporta tres tipos de mtodos de autenticacin:
Autenticacin basada en Windows
Autenticacin basada en Formularios
Autenticacin de Microsoft Passport
Autenticacin basada en Windows
Con la autenticacin basada en Windows, las aplicaciones Web ASP.NET delegan
sobre el sistema operativo Windows la autenticacin de los usuarios de ASP.NET
junto con el IIS.
Con la autenticacin basada en Wind ows, los usuarios hacen una peticin a travs
del IIS. Si el usuario no es autorizado, el IIS regresa la peticin. Si el usuario es
autorizado la pgina Web es entonces retornada a el usuario.
218
Programacin Web
Autenticacin basada en formularios
Este tipo de autenticacin es redireccionada a travs de un formulario HTML
usando el protocolo HTTP del lado del cliente. El usuario provee credenciales y
enva el formulario. Si la aplicacin valida las credenciales sobre la forma, el
sistema suministra una cookie de autenticacin al usuario.
Autenticacin a travs de Microsoft Passport
Es un servicio de autenticacin centralizada proporcionada por Microsoft, la cual
ofrece una simple opcin de logon y el servicio de miembros de sitios. Los
usuarios que utilizan Passport son autentificados para acceder a sitios Web
usando una cuenta de Passport. Microsoft Passport es un Servicio Web XML, y es
parte integral del .NET framework.
TRABAJANDO CON AUTENTICACIN BASADA EN WINDOWS
INTRODUCIN
La seguridad de las aplicaciones Web usando autenticacin basada en Windows
es un proceso de cuatro pasos:
1. Configurar el IIS
2. Establecer la autenticacin en el archivo Web.config
3. Establecer la autorizacin en el archivo Web.config
4. Informacin de las peticiones de acceso al IIS de los usuarios
219
Programacin Web
1. Configurar el IIS
El primer paso en establecer seguridad a las aplicaciones Web involucra al IIS que
incluye tres mecanismos de autenticacin (Basic authentication, Digest
authentication, Integrated Windows security) tpicamente reutiliza el mtodo
bsico de autenticacin.
2. Estableciendo la autenticacin
La seguridad establecida en el Web.config es incluida en las secciones
<uthentication>, <authorization>, y <identity>. Para establecer el mtodo de
autenticacin de Windows se muestra en el ejemplo:
<system.web>
<authentication mode=Windows />
</system.web>
HABILITAR LA AUTENTICCIN BASADA EN WINDOWS
3. Estableciendo la autorizacin
Para indicar que solo ciertas pginas son seguras, debes crear una seccin de
<location> con <system.web> y subsecciones de <authorization> para cada
pgina en tu aplicacin Web.
<locaion path=ShoppingCart.aspx>
<system.web>
<authorization>
<denv users=? />
</authorization>
</system.web>
</location>
220
Programacin Web
En la seccin <system.web>, podemos crear una subseccin de <authorization>
para especificar que tipo de autorizacin ser forzada. Con las etiquetas <allow> o
<deny> permiten o niegan acceso a las pginas. Con ? indican usuarios
annimos, as como*significa todos los usuarios.
Por ejemplo, el siguiente cdigo niega el acceso a todos los usuarios annimos:
<authorization>
<deny users=? />
</authorization>
El siguiente cdigo permite al usuario Mary acceder a una pgina:
<authorization>
<allow users=Mary />
</authorization>
4. Informacin de las peticiones de acceso al IIS de los usuarios
El ltimo paso en el proceso de establecer la autenticacin basada en
Windows es cuando los usuarios tratan de acceder a los formularios Web
desde sus aplicaciones Web y a travs de las peticiones del IIS. El usuario
debe proveer su nombre de usuario y su contrasea. Si las credenciales del
usuario son validas para el IIS, el usuario obtiene acceso a las peticiones.
TRABAJANDO CON AUTENTICACIN BASADA EN FORMULARIOS
INTRODUCCIN
221
Programacin Web
El mtodo ms comn de autenticacin de seguridad en aplicaciones Web
ASP.NET es la autenticacin basada en formularios.
222
Programacin Web
DESCRIPCIN DE LA AUTENTICACIN BASADA EN FORMULARIOS
INTRODUCCIN
Cuando un usuario hace una peticin de una pgina Web esta es protegida por la
autenticacin basada en formularios, la peticin pasa primero a travs del IIS. As,
debemos establecer la autenticacin en el IIS como acceso Anonymous.
Estableciendo como annimo en el IIS nos permite que todas las peticiones en
ASP.NET sean autentificadas.
Lo siguiente es un conjunto de eventos que toman lugar durante la autenticacin
basada en formularios:
1. Un cliente genera una peticin para una pgina protegida .aspx
2. El IIS recibe la peticin y es pasada dentro de ASP.NET. Debido a que el
modo de autenticacin es un conjunto de accesos Anonymous, la peticin
va directamente a travs de IIS.
3. ASP.NET verifica si el cookie de autenticacin es valida , es aadido a la
peticin. Esto significa que las credenciales del usuario han sido
confirmadas, y que la peticin es probada para autorizacin. La autorizacin
probada es ejecutada por ASP.NET, y es dotada para comparacin de las
credenciales que son acompaadas en la peticin de la cookie de
autorizacin que es contenido en el archivo Web.config. Si el usuario es
autorizado, el acceso de la peticin de seguridad es garantizado.
4. Si no hay una cookie aadida a la peticin. ASP.NET redirecciona la
peticin a una pgina de entrada al sistema (logon), donde los usuarios
223
Programacin Web
introducen las credenciales requeridas, usualmente un nombre y una
contrasea (login y password).
5. El cdigo de la aplicacin sobre la pgina de entrada al sistema verifica las
credenciales para confirmar la autenticidad y, si es autentificada, aade una
cookie conteniendo las credenciales a la peticin.
6. Si la autentificacin falla, la peticin es regresada con un mensaje de
Acceso Denegado
7. Si el usuario es autentificado, ASP.NET verifica la autorizacin, como se vio
en el paso 3, y puede entonces permitir el acceso pgina segn la peticin
original o incluso a otra pgina , dependiendo del diseo de la aplicacin.
COMO HABILITAR LA AUTENTICACIN BASADA EN FORMULARIOS
INTRODUCCIN
Para habilitar la autenticacin basada en formularios para tu aplicacin Web,
debes completar los siguientes pasos:
1. Configurar el IIS para usar autenticacin Anonymous para que la
autenticacin sea realizada por ASP.NET y no por el IIS.
2. Establecer el mtodo de autenticacin basado en formularios para la
aplicacin en la subseccin <authentication> de la seccin <system.web>
en el Web.config como se muestra en el siguiente ejemplo:
224
Programacin Web
<system.web>
<authentication mode="Forms">
<forms name=".namesuffix" loginUrl="login.aspx" />
</authentication>
</system.web>
En la seccin <forms>, se configura la cookie. Establecer el atributo name para el
sufijo que ser usado en las cookies y el atributo loginUrl para la direccin URL
de la pgina para la cual la peticin de no autenticacin es redireccionada.
3. Establecer la seccin de <authorization> en Web.config. El proceso de
establecer la autorizacin para la autenticacin basada en formularios es
similar a la autenticacin basada en Windows.
4. Construir una formulario Web de acceso a la pgina (logon). Login.aspx
puede ser una pgina simple con dos campos para el nombre y el
password. Login.aspx requiere as de un nombre y una contrasea para la
autenticacin y acceso a la aplicacin Web.
CREANDO UNA PGINA Logon
INTRODUCCIN
Durante la autenticacin, todas las respuestas son redireccionadas a una
pgina de logon que es especificada en el atributo loginUrl en la etiqueta
<forms>. La pgina logon verifica las credenciales para un usuario.
225
Programacin Web
Como trabaja una pgina logon
Si el modo de autenticacin es establecido como Forms, ASP.NET verifica si
hay una cookie de autenticacin aadida a la peticin de acceso a una pgina.
Si ASP.NET no encuentra la cookie de autenticacin, la peticin es
redireccionada a la pgina especificada logon.
En la pgina logon, el usuario introduce sus credenciales. La pgina checa
completamente las credenciales a travs de cdigo o llamando a
FormsAuthentication.Authenticate. Si las credenciales son validas, una
cookie es generada y el usuario es redireccionado a la pgina segn la peticin
original a travs de FormsAuthentication.RedirectFromLoginPage. Sin
embargo, si las credenciales no son validas, el usuario permanece en la pgina
logon y se le muestra un mensaje de que sus credenciales no son validas.
El mtodo RedirectFromLoginPage toma dos parmetros: userName, el cual
especifica el nombre del usuario para la autenticacin basada en formularios, y
createPersistenCookie . Si el valor de createPersistentCookie es true,
genera una cookie de autenticacin persistente, una cookie que es escrita al
sistema de archivos del cliente, esto en la computadora del usuario. De otra
manera, una cookie temporal es creada.
La siguiente tabla lista todos los mtodos del objeto FormsAuthentication, el
cual puede ser usado en el proceso de autenticacin
mtodo
Authenticate
GetAuthCookie
GetRedirectUrl
Funcin
Verifica las credenciales del us uario
Crea una cookie de autenticacin para un usuario
Retorna la direccin URL para la peticin original
que es causada para ser redireccionada para la
pgina logon
RedirectFromLoginPage Redirecciona la autenticacin de los usuarios a la
direccin original URL
Crea un boleto de autenticacin para userName
SetAuthCookie
SignOut
Limpia el boleto de autenticacin a travs de
SignOut.
Creando una pgina logon
Para usar la clase FormsAuthentication debemos referenciar la librera
System.Web.Security.
El siguiente ejemplo muestra la forma de una pgina logon:
226
Programacin Web
<form id="Login" method="post" runat="server">
<P>Email: <asp:TextBox id="txtEmail" runat="server">
</asp:TextBox></P>
<P>Password<asp:TextBox id="txtPassword" Te xtMode="password"
runat="server">
</asp:TextBox></P>
<P><asp:Button id="cmdLogin" Text="Sign In Now" OnClick="cmdLogin_Click"
runat="server">
</asp:Button></P>
<P><asp:Label id="lblInfo" runat="server">
</asp:Label></P>
</form>
En el evento Click de el botn Submit, tu validas la informacin que es introducida
en
el
formulario,
y
si
es
valida,
llama
a
FormsAuthentication.RedirectFromLoginPage.
El
mtodo
RedirectFromLoginPage provee una cookie y entonces redirecciona el usuario a
su peticin de pgina original
El siguiente ejemplo de cdigo usa la funcin llamada Login para validar el
nombre y contrasea del usuario y llama a RedirectFromLoginPage si el nombre
y contrasea del usuario es valida.
private void cmdLogin_Click(object sender, EventArgs e)
{
string strCustomerId;
//Validate User Credentials
strCustomerId = Login(txtEmail.Text, txtPassword.Text);
if (strCustomerId != "")
{
FormsAuthentication.RedirectFromLoginPage(strCustomerId, false);
}
else
{
lblInfo.Text = "Invalid Credentials: Please try again";
}
}
227
Programacin Web
Prctica 23
Mecanismos de Autenticacin usando IIS
Objetivos:
Mostrar los tipos de autenticacin disponibles en la mquina del usuario
Instrucciones:
1. En el men Inicio, oprime botn derecho sobre Mi PC y da click en
Administrar.
2. En la consola de administrador de equipos, expandir Servicios y
Aplicaciones, expandir Internet Information Services, expandir Sitios Web y
expandir default Sitio Web.
3. Botn derecho en la aplicacin Web Mod16CS y seleccionar propiedades.
4. En el cuadro de dialogo de Mod16CS, sobre la barra de Seguridad de
Directorio, ene. Acceso Annimo y la seccin de control de autenticacin,
seleccionar Edit.
5. Mostrar los mtodos de autenticacin disponibles.
228
Programacin Web
Prctica 24
Autenticacin basada en Windows
Objetivos:
Uso de la autenticacin basada en Windows, creacin de nuevos usuarios en el
servidor local.
Instrucciones:
6. En el men Inicio, oprime botn derecho sobre Mi PC y da click en
Administrar.
7. Expandir Servicios y Aplicaciones, expandir Internet Information Services,
click en Sitios Web.
8. Botn derecho en default Sitio Web y click en propiedades.
9. Click en la barra Seguridad de Directorio, y click en editar para abrir el
cuadro de dialogo de los mtodos de autenticacin en el IIS.
10. Selecciona el cuadro de verificacin de la opcin autenticacin bsica (el
password es enviado sin texto) y dar click YES en el cuadro de dialogo
Administrador de Servicios de Internet.
Nota: Verificar que este seleccionado Acceso Annimo.
11. Escribir nombre de la mquina en el campo de dominio por default, esto con
el fin de que la demostracin funcione en la mquina local.
12. Click Aceptar para cerrar el cuadro de dialogo.
13. Click Aceptar el cuadro de dialogo propiedades del Sitio Web. Aceptar el
cuadro de dialogo.
14. En la consola de administrador de equipo, expandir herramientas del
sistema, y expandir Usuarios locales y grupos.
15. Botn derecho en el flder de Usuarios y click en Nuevo Usuario.
Introduzca la siguiente informacin en el cuadro de dialogo Nuevo usuario
Field Name
Value
____________________________
User name
someone
Full name
someone
Description
someone demo account
Password
Secret1
Confirm password
Secret1
a. Al limpiar el usuario debe cambiar el password en el siguiente check box
b. Seleccionar el usuario no cambiar el password
c. Click en crear y click en cerrar.
En el lado derecho de la ventana del cuadro de dialogo del administrador de
equipo, se debe mostrar el usuario someone.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
229
Programacin Web
16. Abrir el proyecto Mod16CS y observar el archivo Web.config. Hay una
seccin de <authentication> y dos secciones <location>.
17. Abrir el code-behind de la pgina SecurePageDemo1.aspx y explicar el
cdigo.
18. Construir el proyecto Mod16CS
19. Abrir un nuevo navegador para acceder:
http://localhost/Mod16CS/NonSecurePageDemo.aspx
20. Navegar a:
http://localhost/Mod16CS/SecurePageDemo1.aspx
Verificar que aparece el cuadro de dialogo de conexin al sitio local
21. Click cancelar y ver que aparece un error de acceso denegado
22. Navegar a:
http://localhost/Mod16CS/SecurePageDemo2.aspx
Ver que aparece el cuadro de dialogo de conexin a localhost
23. Escriba las credenciales, User name como someone y Password como
Secret1 y dar aceptar.
24. Debes ver el nombre someone y autenticacin bsica desplegados en la
pgina SecurePageDemo2.aspx.
25. Navegar a:
http://localhost/Mod16CS/SecurePageDemo1.aspx
230
Programacin Web
El sistema debe llevar control del nmero de usuarios que visitan el sitio
Instrucciones
a. Revisa la pgina
http://www.vw-angelopolis.com.mx/es_MX/Redirect1_1.chtml
Para darte un idea del tipo de aplicacin a realizar.
231
Programacin Web
d. Elabora el prototipo 2 de tu sistema. Aqu debe incluir que los controles de enlace
de datos ya deben estar funcionando con los objetos ADO.NET.
e. Enva el prototipo 2 a tu tutor
f. Detalla el prototipo 2 con las observaciones realizadas por tu tutor y con las
consideraciones propuestas para el sistema.
232