Вы находитесь на странице: 1из 240

Programacin Web

Curso

Programacin Web

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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/

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

VI

Programacin Web

Tutorial de ASP.NET
http://samples.gotdotnet.com/quickstart/aspplus/doc/default.aspx

Reglas del Juego y Sistema de Evaluacin


Cada captulo incluye diferentes actividades planeadas para reforzar tu
aprendizaje. Estas actividades podrn ser:
* Resolver cuestionarios
* Realizar alguna investigacin
* Elaborar el diseo de alguna interface
* Escribir programas o hasta una aplicacin completa.
Siempre y cuando la actividad se entregue en el tiempo y forma descrito en la
misma actividad, podr obtener el 100% del porcentaje total asignado e indicado
en la forma de evaluacin de la actividad.
La suma de los porcentajes de las diferentes actividades suma el 100%, que
corresponde al 100 en el curso.
Los trabajos (investigaciones, programas, proyectos, etc) que sern enviados al
tutor debern seguir el formato que se indica a continuacin:
Investigaciones:
invN_matricula.doc
Donde N indica el nmero de investigacin
Programas
progN_matricula.ext
Donde N indica el nmero de programa y ext la extensin del archivo (.aspx,
.aspx.cs, etc.)
Proyectos (en archivo Zip)
proyN_matricula.zip
Donde N indica el nmero de proyecto

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

ARQUITECTURA (COMO FUNCIONA EL INTERNET Y SERVICIOS QUE PROPORCIONA).......................1


A RQUITECTURA CLIENTE -SERVIDOR .............................................................................................................8

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.

FORMULARIOS WEB ..................................................................................................................................37


3.1.
3.2.
3.3.
3.4.
3.5.

4.

SERVICIOS WEB .........................................................................................................................................158


4.1.
4.2.
4.3.

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

OPTIMIZACIN DE APLICACIONES WEB ...............................................................................185


5.1.
ESTADO DE LA APLICACI N .......................................................................................................................185
5.2.
SERVICIOS DE CACH..................................................................................................................................198
5.2.1. Usando el objeto cach........................................................................................................................198
5.2.2. Almacenamiento en cach de los resultados de pgina..................................................................198
5.2.3. Almacenamiento en cach de fragmentos de pgina ......................................................................199
5.3.
CONFIGURACIN..........................................................................................................................................207
5.3.1. Formato del archivo de configuracin..............................................................................................207
5.3.2. Recuperar la configuracin .................................................................................................................207
5.4.
SEGURIDAD...................................................................................................................................................215
5.4.1. Autenticacin y Autorizacin..............................................................................................................215
5.4.2. Autenticacin basada en Windows.....................................................................................................216
5.4.3. Autenticacin basada en formularios................................................................................................216

6.

APLICACIONES DE SITIOS WEB ....................................................................................................231

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Materia: Programacin Web


Tema: Arquitectura-Como funciona Internet y servicios que proporciona
Objetivos de aprendizaje:
Poder describir la tecnologa del Web
Escenario:

Escenario Arquitectura (que es Internet)


Silvia un 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?
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.
5.

Posibles trminos q ue deban clarificarse:

6.
Definicin del problema esperada:
Como funciona el Internet?
7.

Preguntas esperadas en el anlisis del problema:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Las incluye, pero


difieren en algunos
puntos de las del
resto del equipo

Las incluye, pero


no coinciden con
las del 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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Gua Tutorial Arquitectura-TCP/IP y Servicios


1. Materia: Programacin Web
2. Tema: Arquitectura-TCP/IP
3. Objetivos de aprendizaje:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Los diagramas y/o


dibujos son algo
difciles de entender.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

11

Programacin Web

2. Diseo de Pginas

2.1. Lenguaje de Marcas


2.1.1. HTML
Objetivos
Al terminar este tema tendrs tu primera pgina HTML la cual ser base para
aadirle ms componentes en los siguientes temas.
Instrucciones

Consulta la demostracin que se encuentra ubicada en los materiales de


apoyo del curso.
Prueba los ejemplos que se te proporcionan.
Investiga el uso de las etiquetas que no son completamente explicadas
dentro del material del curso.
Resuelve los ejercicios propuestos ubicados en la seccin de evaluacin.
Material del curso.
Mejora los ejercicios propuestos segn tu creatividad y sube tu pgina a un
servidor (p.e. yahoo) y envale la direccin a tu tutor para tu evaluacin.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

El titulo deber tener un tamao lo suficientemente grande para llamar la atencin,


pero sin descuidar los tips que se te proporciona n posteriormente para un buen
diseo. Adems de contener una imagen o bien, un logotipo.
El ndice, contendr las ligas a los temas preestablecidos de manera tal que su
contenido se visualice en el frame de informacin.
Si lo consideras pertinente puedes aadir ms informacin con la finalidad de
hacer ms completa tu pgina.
Este tema se evaluar con la pgina enviada a tu tutor y contar el 2.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
realizada por tu tutor es arriba de 70/100.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

GUA BSICA DE HTML


ESTRUCTURA DE UN DOCUMENTO HTML

La estructura bsica de un documento HTML se compone de una etiqueta


de inicio <HTML> y una de fin </HTML>.

Otros componentes esenciales de este tipo de documento son la cabecera


la cual contiene informacin sobre el documento, y se indica por las
etiquetas <HEAD> y </HEAD>; dentro de la cabecera se recomienda el uso
de la etiqueta <TITLE>, la cual se encarga de indicar el ttulo del
documento, generalmente lo puedes ver en la parte superior del navegador.

El cuerpo es indicado por las etiquetas <BODY> y </BODY>.

Un ejemplo bsico de un documento HTML es el siguiente:


<HTML>
<HEAD>
<TITLE>Mi primera pgina web </TITLE>
</HEAD>
<BODY>
MI PRIMERA PGINA WEB
</BODY>
</HTML>
En tu pgina puedes establecer un fondo, ya sea que lo predefinas de un color o
bien mediante una imagen, esto se realiza con el atributo BACKGROUND de la
etiqueta BODY
<body background="nieve.jpg">
<body background color: #F00 >

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

<B> Se utiliza para mostrar el texto en negrita.


<U> Se utiliza para subrayar el texto.
<I> Se utiliza para mostrar el texto en cursiva.
<SMALL> Texto pequeo, esto es, se muestra el texto en el menor tamao
de fuente.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

15

Programacin Web

<BIG> Texto grande, como su nombre lo indica el texto es mostrado en el


tamao mximo de fuente.
<CENTER> Centra el texto en la pantalla.

A continuacin se proporciona un ejemplo que abarca todo lo visto con


anterioridad:
<HTML>
<HEAD>
<TITLE> Mi primera pgina WEB </TITLE>
</HEAD>
<BODY>
<FONT SIZE="5" FACE="Arial" COLOR="green"><B>Este texto esta en verde,
con fuente arial, en negrita y tamao 5. </B></FONT><BR>
<P><FONT SIZE="3" FACE="Arial" COLOR="blue><CENTER>Este es un prrafo
centrado.</CENTER></P></FONT>
</BODY>
</HTML>
TABLAS
ESTRUCTURA DE UNA TABLA EN HTML
Para definir una tabla dentro de una pgina Web creada con lenguaje HTML,
utilizaremos las etiquetas <TABLE> y </TABLE> y dentro de ellas definiremos el
inicio y fin de cada una de sus celdas haciendo uso de la etiqueta <TD> y </TD>,
adems usaremos a las etiquetas <TR> y </TR> para indicar el inicio y fin de una
fila dentro de una tabla.
Dentro de la etiqueta TABLE tambin podemos utilizar los atributos WIDTH y
HEIGHT para indicar la anchura y la altura de la tabla respectivamente, tambin es
posible agregar color de fondo mediante el atributo BGCOLOR.
Tambin podemos variar la separacin entre celdas mediante el atributo
CELLSPACING de la etiqueta TABLE.
A continuacin te presentamos un ejemplo:
<HTML>
<HEAD>
<TITLE> EJEMPLO DE USO DE TABLAS </TITLE>
</HEAD>
<BODY>
<TABLE BORDER=3 CELLSPACING=5 CELLPADDING=10 WIDTH=500
ALIGN="CENTER" VALIGN="CENTER" GCOLOR=yellow>
<CAPTION ALIGN=bottom>Horario de servicio social </CAPTION>

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Enlace a un punto de la misma pgina: Usando el atributo NAME, podemos


indicar a qu parte del documento queremos ir, p.e. inicio de la pgina y
final de la pgina.
Enlace a otra pgina: Usando el atributo HREF podemos hacer ligas a otra
pgina del mismo sitio.
Enlace a otros sitios: Usando el atributo HREF tambin podemos hacer
enlaces a otros sitios Web o direcciones de correo.

Esta lnea se coloca al principio del cuerpo del documento.


<A HREF="#finaldocumento">Da click aqu para ir al final de esta pgina </A>
Esta lnea va al final
<A HREF="#iniciodocumento">Da click aqu para ir al inicio de esta pgina </A>
Estas lneas van donde t lo desees
<A HREF="http://www.google.com">Google.com</A>
<A HREF="mailto: carlos-puebla@yahoo.com">carlos-puebla@yahoo.com</A>
IMGENE S
Como se ha mencionado anteriormente dentro de un documento html es comn el
uso de etiquetas. Para incluir una imagen en una pgina Web emplearemos la
etiqueta <IMG> junto con un atributo fundamental SCR.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

BEHAVIOR=ALTERNATE: la marquesina "rebotar" de un lado a otro de


la pantalla.
SCROLLDELAY = X: Indica el tiempo que transcurrir entre cada salto
del texto, expresado en milisegundos.
LOOP = Indica el nmero de veces que se repetir la accin de la
marquesina, por default es infinita.

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&oacute;n.
<li><A HREF="introduccion1.html">Introducci&oacute;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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

n. Cuando se introduce un valor determinado se indica la altura o anchura


de la ventana en pxeles.

%. Indica que la altura o anchura e s un valor porcentaje relativo al tamao


de la ventana que lo contiene.

*. Indica que debe asignarse ala ventana todo el espacio disponible;


suponiendo que haya varias ventana es espacio libre se divide entre ellas,
si existe un valor delante del asterisco, la ventana que lo tenga asignado
tomar ms espacio relativo, por ejemplo 2*,* dara 2/3 del espacio de la
primera ventana.

La etiqueta <FRAME> y <NOFRAME>


La etiqueta <FRAME> es la encargada de revisar cuantos frames se debern
dibujar dentro de la pantalla, por lo que puede tener hasta seis atributos distintos,
como por ejemplo:

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:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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>

A continuacin se presentan los ejemplos vistos dentro de la presentacin:

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Productos esperados / Evaluaciones


Este tema se evaluar con el cuestionario mencionado en las instrucciones y
contar el 2.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
cuestionario es arriba de 70/100.
Material de Apoyo
XML
XML, lenguaje extensible de etiquetas (eXtensible Markup Lenguage), no es un
lenguaje de marcado como el lenguaje HTML. XML es un meta-lenguaje que nos
permite definir lenguajes de marcado adecuado a usos determinados.
Al ser XML un metalenguaje es un lenguaje para definir lenguajes. Los elementos
que lo componen pueden dar informacin sobre lo que contienen, no
necesariamente sobre su estructura fsica o presentacin, como ocurre en HTML.
XML no ha nacido slo para su aplicacin en Internet, sino que se propone como
lenguaje de bajo nivel (a nivel de aplicacin, no de programacin) para intercambio
de informacin estructurada entre diferentes plataformas. Se puede usar en bases
de datos, editores de texto, hojas de clculo, y casi cualquier cosa que podamos
pensar.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Estructura de un documento XML


Un documento XML tiene dos estructuras, una lgica y otra fsica.
A) Fsicamente, el documento est compuesto por unidades llamadas entidades.
Una entidad puede hacer referencia a otra entidad, causando que esta se incluya
en el documento. Cada documento comienza con una entidad documento,
tambin llamada raz.
B) Lgicamente, el documento est compuesto de declaraciones, elementos,
comentarios, referencias a caracteres e instrucciones de procesamiento, todos los
cuales estn indicados por una marca explcita. Las estructuras lgica y fsica
deben encajar de manera adecuada:
Los documentos XML se dividen en dos grupos, documentos bien formados y
documentos vlidos.
Bien formados: Son todos los que cumplen las especificaciones del lenguaje
respecto a las reglas sintcticas sin estar sujetos a unos elementos fijados en un
DTD. De hecho los documentos XML deben tener una estructura jerrquica muy
estricta
y
los
documentos
bien
formados
deben
cumplirla.
Un objeto de texto es un documento XML bien formado si:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Utilizar cualquier elemento del XML como origen de enlace.


Enlazar a ms de un documento.
Crear enlaces fuera del documento.
Definir el comportamiento del enlace, etc.

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?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

28

Programacin Web

2.2. Elementos Multimedia


2.2.1. Imgenes, Video y Sonido
Objetivos
Durante este tema identificars los formatos ms comunes para elementos
multimedia y experimentars con ellos para ser utilizados en tu pgina HTML.
Instrucciones
1. Revisa la presentacin introduccin a multimedia que se encuentra ubicada
en la seccin de material de apoyo del curso.
2. Realiza un trabajo de investigacin de los formatos ms comunes para
imgenes utilizados en Internet.
3. Cambia el formato de las 2 imgenes que se encuentran en la seccin de
material de apoyo para llenar la tabla mencionada en el punto 4.
4. Una vez que hayas realizado el punto anterior, comprobars tus
conocimientos contestando la tabla que se encuentra en la seccin de
Material de Apoyo. Sigue las instrucciones que ah se te dan.
5. Dentro de la pgina HTML que creaste en la seccin anterior pon a prueba
tu creatividad incrustando una imagen, un video y un sonido como fondo de
tu pgina. Enva tu pgina comprimida a tu tutor para que sea evaluada.

Productos esperados / Evaluaciones


Este tema se evaluar con la tabla y la pgina mencionada en las instrucciones y
contar el 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
realizada por tu tutor es arriba de 70/100.
Material de Apoyo
Aqu encontrars el material de apoyo necesario para este tema indicado en las
instrucciones.
El trmino Multimedia en el mundo de la computacin es la forma de presentar
informacin que emplea una combinacin de texto, sonido, imgenes, vdeo y
animacin.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Cuanto mayor y ms ntida sea una imagen, ms difcil es de presentar y


manipular
en
la
pantalla
de
una
computadora.
Las fotografas, dibujos, grficos y otras imgenes estticas deben pasarse a un
formato que el ordenador pueda manipular y presentar. Entre esos formatos estn
los
grficos
de
mapas
de
bits
y
los
grficos
vectoriales.
Los grficos de mapas de bits almacenan, manipulan y representan las imgenes
como filas y columnas de pequeos puntos. En un grfico de mapa de bits, cada
punto tiene un lugar preciso definido por su fila y su columna.
Los grficos vectoriales emplean frmulas matemticas para recrear la imagen
original.
En un grfico vectorial, los puntos no estn definidos por una direccin de fila y
columna, sino por la relacin espacial que tienen entre s.
Elementos de audio
El sonido, igual que los elementos visuales, tiene que ser grabado y formateado
de forma que la computadora pueda manipularlo y usarlo en presentaciones.
Elementos de organizacin
Los elementos multimedia incluidos en una presentacin necesitan un entorno que
empuje al usuario a aprender e interactuar con la informacin.
Entre los elementos interactivos estn los mens desplegables, pequeas
ventanas que aparecen en la pantalla del ordenador con una lista de instrucciones
o elementos multimedia para que el usuario elija.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

cambiarlas en los diferentes formatos que has

Imagen 1:

Imagen 2:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

33

Programacin Web

ENTORNO DE TRABAJO DE FLASH


Para crear y editar pelculas, normalmente se trabaja con las siguientes funciones:
Escenario, rea rectangular en la que se reproduce la pelcula.
Lnea de tiempo, donde se animan los grficos respecto al tiempo
Smbolos, componentes de los medios reutilizables de la pelcula.
La ventana Biblioteca, donde se organizan los smbolos
El Explorador de pelculas, que ofrece una descripcin general de una
pelcula y su estructura.
Paneles acoplables y flotantes, que permiten modificar los distintos
elementos de la pelcula y configurar el entorno de creacin de Flash para
adaptarlo a sus necesidades concretas.
ESCENARIO
Al igual que en un largometraje, las pelculas de Flash dividen el tiempo en
fotogramas.
En el Escenario se compone el contenido de los fotogramas individuales de la
pelcula, dibujndolos directamente o bien organizando ilustraciones importadas.
LINEA DE TIEMPO
En la Lnea de tiempo se coordina el tiempo de la animacin y se ensambla la
ilustracin en distintas capas. La Lnea de tiempo muestra todos los fotogramas de
la pelcula.
Las capas actan como una serie de hojas de acetato transparente superpuesta,
manteniendo las diferentes ilustraciones por separado, de forma que puedan
combinarse distintos elementos en una imagen visual cohesionada.
SIMBOLOS
Los smbolos son elementos reutilizables que se usan en una pelcula. Pueden ser
grficos, botones, clips de pelcula, archivos de sonido o fuentes.
Al crear un smbolo, ste se almacena en la Biblioteca. Al colocar un smbolo en el
Escenario, se est creando una instancia del smbolo.
VENTANA BIBLIOTECA
Aqu se guardan y organizan los smbolos creados en Flash, adems de archivos
tales como archivos de sonido, imgenes de mapa de bits,etc.
En la ventana Biblioteca puedes organizar en carpetas los elementos de
biblioteca, ver con qu frecuencia se utilizan en una pelcula y ordenarlos por tipo.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

34

Programacin Web
PANELES
Los paneles permiten ver, organizar y modificar los elementos de una pelcula de
Flash.

Utilizando estos paneles es posible modificar smbolos, instancias, colores,


tipo, fotogramas y otros elementos.
Tambin son usados para personalizar la interfaz de Flash, manteniendo
visibles los paneles necesarios para una determinada tarea y ocultando los
dems.

CREACIN DE UNA PELCULA


Ejecuta los siguientes pasos:
Selecciona Archivo > Nuevo.
Elige Modificar > Pelcula: Aparecer el cuadro de dilogo Propiedades de
pelcula.
En la opcin Velocidad de fotogramas, introduzca el nmero de fotogramas
de animacin que deben por segundo. La mayora de las animaciones no
necesitan una velocidad mayor de 8 a 12 fps (fotogramas por segundo).
En la opcin Dimensiones, elija una de estas opciones:
Introduzca valores en los campos Anchura y Altura para especificar el
tamao del Escenario en pxeles.
Da click en Coincidir contenido para establecer el tamao del Escenario de
forma que el espacio que rodea el contenido sea igual en todos los lados.
Elige un color en la muestra de colores de fondo, para establecer el color de
fondo de la pelcula.
Da clic en Aceptar.
ESCENAS
Para la realizacin de una pelcula, son comnmente usadas las escenas, ya que
stas en conjunto conforman a la pelcula.
Insercin de una escena:
Supongamos que deseas realizar una pelcula que consta de varias escenas, por
default se abre una escena al crear un documento Flash, por lo que si deseas
crear una secuencia de escenas, debers colocar los objetos necesarios en tu
primera escena, posteriormente inserta otra escena utilizando el men Insertar----Escena.
Una vez realizado lo anterior, coloca los objetos que deseas en tu escena
siguiente, que debern estar situados en una posicin distinta a la anterior.
BARRA DE HERRAMIENTAS

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

35

Programacin Web
Consta de cuatro secciones:

La seccin Herramientas contiene las herramientas de dibujo, pintura y


seleccin.
La seccin Ver contiene herramientas para ampliar y reducir, as como para
realizar recorridos de la ventana de la aplicacin.
La seccin Colores contiene modificadores de los colores de trazo y relleno.
La seccin Opciones muestra los modificadores de la herramienta
seleccionada, que afectan a las operaciones de pintura o edicin de dicha
herramienta.

Figura Barra de Herramientas.


Para seleccionar una herramienta, de clic en la herramienta que desea utilizar o
use el mtodo abreviado del teclado para la herramienta.
Una vez seleccionada la herramienta que desea, podr elegir uno de un conjunto
de modificadores especficos que se muestran en la parte de debajo de la barra.
Documentos flash
Un documento Flash se guarda con extensin fla (*.fla), mientras que la pelcula
se genera tras ejecutar el documento, por lo que automticamente se guardar
con extensin swf (*.swf)

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Objetivo: Al finalizar esta actividad podrs comprender el impacto que puede


causar que un negocio est en lnea.
Escenario: Imaginemos a una empresa pequea, Seven Cycles, dedicada a la
produccin y venta de bicicletas, que busca una forma de venta altamente efectiva
para introducir sus productos al mercado, sin la necesidad de un intermediario que
aumente sus costos, y reduzca sus ganancias. Para tal propsito, se requiere la
integracin de una base de informacin (hojas de datos, fotografas, etc.)
Instrucciones:
Ejecuta el video clip SevenCycle, incluido en la seccin de materiales de apoyo
para esta seccin, y analzalo con atencin.
Imagina que eres el/la encargad@ de desarrollar aplicaciones Web en la
compaa Seven Cycles, y se te pide desarrollar el sitio de la empresa para la
venta de la nueva bicicleta.
Debers entregar por escrito los requerimientos tcnicos (herramientas a utilizar) y
de informacin, que requieras para desarrollar a la brevedad posible este sitio.
Coloca tu documento de especificacin de requerimientos en la seccin de tareas
correspondientes a esta seccin.
El nombre de tu documento debe seguir el formato especificado en las reglas del
Juego.
La fecha lmite de entrega es el da: ___________ a las __________ horas

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Introduccin al Framework de Microsoft .NET y a ASP.NET


Agenda

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:

Entiendes los fundamentos de Programacin C#


Tiendes familiaridad con el ambiente de desarrollo integrado (IDE) Visual
Studio .NET

No es indispensable que cuentes con conocimientos previos en desarrollos Web


(HTML, JavaScript, DHTML, CGI, Active Server Pages); sin embargo te seran de
ayuda.
Fundamentos Arquitectura Web

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Fundamentos tecnologas de desarrollo Web


Tecnologas del lado del Cliente
HTML, DHTML, JavaScript
Tecnologas del lado del Servidor
ASP (Active Server Pages)
ASP.NET es la siguiente generacin de ASP
Leccin: Introduccin al Framework de .NET

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?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

40

Programacin Web

Herramientas de
desarrollo

Clientes

Aplicaciones
Web ASP.NET
Bases de
Datos

Framework
.NET

Servicios Web
XML
Experiencias del
usuario

Qu problemas soluciona .NET?

An con Internet, la mayora de las aplicaciones y dispositivos tienen


problemas al comunicarse unos con otros
Los programadores terminan escribiendo infraestructura en lugar de
aplicaciones
Los programadores tienen que limitar sus alcances o continuamente
aprender nuevos lenguajes

Los Componentes del Framework .NET

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

41

Programacin Web

Visual
Basic

C++

C#

Perl

XML We b S e rvic es

Python

User Int erf ace

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

Beneficios al usar el Framework de .NET

Estar basado en estndares y prcticas Web


La funcionalidad de las clases de .NET est universalmente disponible
El cdigo est organizado dentro de namespaces (espacios con nombre)
jerrquicos y clases
Independiente del lenguaje

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

42

Programacin Web

Window
s
API

M FC/ATL

.NET
Framework

Visual Basic
ASP
1990s

1980s

2000s

Visual Studio .NET: La herramienta de desarrollo .NET

Herramientas para
Formularios Web

Multiples
Lenguajes

Herramientas para
Formularios Windows

Visual Studio .NET

Herramientas
para Web
Services

Diseo

Manejo de
Errores

Acceso a
Datos

Desarrollo

Pruebas

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

Instalacin

43

Programacin Web

Leccin: Repaso de Visual Studio .NET

Por qu Visual Studio .NET?


Ambiente integrado de desarrollo (Integrated Development Environment IDE)
Demostracin: Usando el IDE de Visual Studio .NET

Por qu Visual Studio .NET?


Visual Studio .NET simplifica el desarrollo de soluciones Web poderosas y
confiables e incrementa la eficiencia del desarrollador proporcionndole un
ambiente de desarrollo familiar y compartido
Adems, incluye las siguientes caractersticas:

Un IDE para mltiples lenguajes y mltiples tipos de proyectos


Mltiples lenguajes dentro de un solo proyecto
Mltiples tipos de proyectos dentro de una sola solucin
Navegador integrado
Soporte de depuracin (debugging)
Interface personalizable

Ambiente de desarrollo integrado (IDE)


El ambiente de desarrollo integrado (IDE) de Visual Studio .NET contiene
mltiples ventanas que proveen una variedad de herramientas y servicios

Muchas de estas caractersticas estn disponibles desde diversas


ventanas, mens y barras de herramientas del IDE.

El Editor/Navegador es la ventana de interface principal en Visual Studio .NET.

En modo Editor, el editor/navegador despliega cdigo para editar y provee


una interface grfica Lo que ves es lo q ue tienes (What You See Is What
You Get (WYSIWYG)) para colocacin de controles.
Se puede crear un diseo visual de la aplicacin simplemente arrastrando
y soltando controles de la barra de herramientas
El diseo de la lgica de la aplicacin se puede manejar modificando el
cdigo default del control Web.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

44

Programacin Web

Ambiente de desarrollo integrado (IDE)

Editor/Navegador

Object Navegador( Browser)

Barra de
herramientas

Explorador
del servidor

Lista de tareas

Explorador de
Soluciones

Propiedades

Ayuda dinmica

Ambiente de desarrollo integrado (IDE)


Las opciones de pantalla para el editor son: modo Diseo y modo HTML

Leccin: Introduccin a ASP.NET


Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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?

Evolutivamente, el sucesor ms flexible de pginas de Servidor Activo (


Active Server Pages) ASP
Pginas Web dinmicas que pueden acceder a recursos del servidor
Pginas de formularios Web que se procesan del lado del servidor
Servicios Web XML que permiten crear aplicaciones Web distribuidas
Independencia del navegador
Independencia del lenguaje

Elementos de una pgina ASP.NET


Elemento

Descripcin

Etiquetas HTML
estticas

Estos elementos HTML estndar son tratados por ASP.NET


como controles literales, y son procesados por el explorador del
cliente como si estuvieran representados en un archivo fuente

Comentarios HTML

Su sintaxis es: <! -->. Este texto es mandado al cliente pero no


es procesado por el explorador
Las directivas, como la @ Page, ofrecen al ejecutable de
ASP.NET informacin de cmo procesar la pgina. Usar
directivas ayuda a controlar las funcionalidades de ASP.NET
como el estado de sesin, el enrutamiento de eventos y
almacenamiento de cach, as como a importar espacios de
nombre (namespace) y registrar los controles personalizados
para usarlos dentro de la pgina

Directivas

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

46

Programacin Web
Elementos de una pgina ASP.NET
Elemento

Descripcin

Cdigo del servidor

El cdigo puede ser incluido tanto en bloques de declaracin de servidor


<script> como en bloques de procesado <%%>.

Controladores de eventos

Los controladores de eventos son procedimientos en cdigo <script> que


controlan los eventos de la pgina y del servidor, como Page_Load o Click . La
mayora del cdigo ASP.NET debe ser escrito o llamado desde los controles
de eventos, mejor que ser escrito en bloques de procesamiento.

Bloques <script> de
declaracin de cdigo

Estos bloques son usados para almacenar procedimientos a nivel de pgina y


para declarar variables que son globales en la pgina. El cdigo ejecutable, y
otras variables de las declaradas en los bloques de declaracin de cdigo,
deben ser introducidos dentro de una declaracin de procedimiento. Los
bloques de declaracin de cdigo de servidor deben tener el atributo
runat=server

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.

Comentarios del servidor

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

direccin o URL. Esta direccin, apunta a unque el modelo de programacin cambia,


conjunto de archivos que se brindan como
debemos considerar nuestras
servicios a travs del Internet Information Server aplicaciones
(IIS)
como conjuntos de cdigo
En el caso de las
aplicaciones
ASP.NET,
stas
que
en todas los
casos terminan
pginas sonbrindando
el portal de
entrada
para
acceder
cdigo
HTML
que
representa
Cliente Web
a nuestro cdigo
que se encuentran
la presentacin
hacia eldentro
usuario
del proceso de este servicio IIS

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

Las aplicaciones ASP.NET


acceden al conjunto completo
del .NET Framework y todas
sus clases bases, para poder
interactuar con el Sistema
Operativo (SO)

Sistema Operativo

Separar presentacin de lgica del negocio


Separar aspecto de la pgina con respecto a la lgica del programa
Usar servicios provistos por el .NET Framework
El cdigo es compilado la primera vez que se accede a una pgina
Administracin de estado
Utilizacin de cualquier lenguaje
o Integracin entre varios
Actualizar archivos mientras se est ejecutando la aplicacin!

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo de Ejecucin ASP.NET

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

49

Programacin Web

Creando un proyecto de aplicacin Web ASP.NET

El proceso de desarrollo
Archivos de la aplicacin Web
Estructura de los archivos de la aplicacin Web

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Cuando se construye el proyecto,


se compila todo el cdigo de las
Cuando se selecciona una nueva
pginas Web
y otros
archivos de
platilla de proyecto,
Visual
Studio
clases dentro en librerias
.NET automticamente crea los
Cuando un proyecto
esta
completamente
dinmicas
(DLL)
llamadas
archivos y el cdigo default que
depurado y la liberacin
ha sido
assemblys
son necesarios para soportar el
construida, se puede instalar los archivos
proyecto
necesarios en un Servidor Web de
produccin

Visual Studio
.NET

Probar y
depurar

Construi r
Instalar

Archivos de la aplicacin Web


Archivos de solucin (.sln, .suo)
Archivos de Proyecto (.vbproj, .csproj)
Archivos de la aplicacin Web

ASP.NET Web Forms (.aspx)


ASP.NET Web services (.asmx)
Clases, cdigo oculto (code-behind pages) (.vb or .cs)
Clases de aplicacin global (.asax)
Archivo de configuracin (Web.config)

Proyecto assembly (.dll)

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

51

Programacin Web

Estructura de los archivos de aplicacin Web


Inetpub

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

Mquina de compilacin y ejecucin


default.aspx
Cual lenguaje?
Cdigo C#
Compilador C#

Cdigo Visual Basic .NET


Compilador Visual Basic
.NET

html
Compilador JIT

Cdigo
Nativo

MSIL

Mquina

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

52

Programacin Web

3.2. Controles de Servidor


Objetivos
En este tema aprenders a crear y utilizar controles de la interfaz de usuario
reutilizables que puedan encapsular funcionalidades comunes y, as, reducir la
cantidad de cdigo que tiene que escribir el programador de una pgina.
Actividad 1
Nombre de la Actividad: Introduccin a Formularios ASP.NET y a los
controles de servidor
Objetivo: Al finalizar esta actividad comprenders que son los formularios Web,
los controles de Servidor y los controles de usuario
Instrucciones:
Estudia con atencin la presentacin Introduccin a los Controles de servidor
que se encuentra ubicada en los materiales de apoyo del curso
Una vez que hayas estudiado este tema, comprobars tus conocimientos
contestando el quiz Controles de Servidor que se encuentra en la entrada
principal de este captulo. Sigue las instrucciones que ah se te indican.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario. Este cuestionario 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 el material de
apoyo y el cuestionario.
Actividad 2
Nombre de la Actividad: Mi primer diseo de formularios Web
Objetivo: Al finalizar esta actividad sers capaz de reconocer los elementos
que se requiere en la interface del lado del cliente, hacer un diseo y crear tu
primera pgina Web utilizando controles que se ejecutan del lado del servidor.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Titulo (Usar DropDownList)


Nombre y apellidos (TextBox)
Sexo (RadioButtons)
Direccion para envi de correspondencia
a. Calle (TextBox)
b. Ciudad (TexBox)
c. Estado (DropDownList)
d. Codigo Postal (TextBox)
5. Direccion para entrega
a. Calle (TextBox)
b. Ciudad (TexBox)
c. Estado (DropDownList)
d. Cdigo Postal (TextBox)
6. Correo electrnico (textBoxt)
7. Opciones de tipo de entrega (UPS, DHL, FedEx, etc.) (DropDownList)
8. Seleccin de producto (modelo) (DropDownList)
9. Botn Enviar
10. Botn Limpiar

Realiza un bosquejo de tu interface en "papel. Esto es, la distribucin


de las cajas de texto, etiquetas, listas desplegables, etc.
Con tu diseo en papel en mano, realiza el diseo de la pgina
utilizando Visual Studio .NET.
Sientete en libertad de escoger la distribucin de los controles, los fonts,
colores, estilos, etc. de tal forma que luzcan bien.
Por ahora solo debes preocuparte por el diseo de la pgina y no por el
cdigo detrs de esta.
Coloca tu archivo .aspx en la seccin de actividades del curso hasta
antes del da ___________________

Productos esperados / Evaluaciones


Este tema se evaluar con el diseo del formulario WebForm que entregars,
se tomar en cuenta que toda la informacin se encuentre incluida en el
formulario en la forma solicitada. Adems, se evaluar tu creatividad y

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

55

Programacin Web

Introduccin a los Formularios (Web Forms) Microsoft


ASP.NET
Agenda

Qu son los Formularios (Web Forms)


Qu son los Controles de servidor
Convirtiendo una pgina HTML a una Web Form
Qu son los Controles de usuario

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)

<%@ Page Language=c#" Codebehind="WebForm1.aspx.cs"


SmartNavigation="true"%>
<html>
<body ms_positioning="GridLayout">
<form id="Form1" method="post" runat="server">
</form>
</body>
</html>

La directiva @Page puede tener distintos atributos, entre ellos la


declaratoria que define con que lenguaje se ha escrito el cdigo a ser
ejecutado del lado del servidor
o <%@ Page Language=c# %>
o Este atributo define que compilador debe procesar la pgina
completa
Utiliza el modelo completo de objeto del .Net Framework
Contiene cdigo HTML y declaraciones de controles del servidor
o Puede incluir script del lado del cliente
o Puede incluir cdigo del lado del servidor

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

56

Programacin Web

Objetos programables que se ejecutan en el servidor Web


o Exponen interfaces con propiedades y mtodos que pueden ser
manipulados por nuestro cdigo
o Se encargan de generar el cdigo HTML correcto (este proceso se
denomina Rendering)
o Son capaces de generar distinto HTML de acuerdo al Navegador
o Se identifican por el atributo runat=server

<asp:Button id="Button1" runat="server" Text="Submit"/>


Tipos de Controles del lado del Servidor

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>

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Se genera el cdigo HTML representativo del control, con sus propiedades


Asignndole a cada uno, un id nico
Se agrega al formulario un cuadro de texto oculto, para almacenar el
estado de la pgina (__VIEWSTATE)

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.

Salvando View State


Almacenado en la Web Form el par nombre-valor del control oculto __ViewState

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Se debe indicar el lenguaje a utilizar


o <script language="VB" runat="server">
o <script language="C#" runat="server">
Las funciones y procedimientos se declaran acorde al lenguaje

<SCRIPT LANGUAGE=C#" runat="server">


void Ingreso() {
// Proceso de autenticacin}
</SCRIPT>
Ciclo de ejecucin de la Pgina
Teniendo nuestra pgina ya completa es importante comprender como funciona la
ejecucin de la pgina dentro de ASP.NET
Cada vez que el navegador accede a sta, se dispara primero y se ejecuta
todo el cdigo declarado en el evento Page_Init
Despus el cdigo en Page_Load completo
A continuacin se genera toda la pgina
Y por ltimo se ejecuta el cdigo del Page_Unload
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

59

Programacin Web
Ciclo de ejecucin de la Pgina

Teniendo la pgina presentada en el navegador, pueden suceder algunos


de los eventos de los objetos presentes
o Por ejemplo: el evento click de un botn o el evento Change de un
TextBox
En cualquiera de los casos el ciclo repite los eventos Page_ (marcados en
gris en la diapositiva siguiente).
Al terminar el ciclo la pgina es descartada, no persiste en el navegador

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

61

Programacin Web

Usa HTML S erver Co ntrol s si:

Usa Web Ser ver Controls si:

Prefieres un modelo de objeto como


HTML

Prefieres un modelo de
programacin como Visual Basic

Ests trabajando con pginas HTML


existentes y quieres rpidamente
agregar la funcionalidad de las
pginas Web ASP.NET

Ests escribiendo una pgina que


podra ser usada en una variedad de
navegadores

El control interactur con script


cliente y servidor
El ancho de banda es limitado

Necesitas una funcionalidad


especfica tal como un caledario
El ancho de banda no es problema

Y qu son los controles del usuario?

Son una nueva funcionalidad de ASP.NET que ofrece un mtodo simple y


rpido para conseguir reutilizar el cdigo de presentacin
Incrementan la eficiencia cuanod se usan en conjunto con la directiva
outputCache
Son llamados algunas veces controles declarativos (no como los controles
de servidor, que son controles compilados)
Consisten en marcas HTML y/o cdigo ASP.NET almacenados en un
archivo con extensin .ascx
No pueden ser llamados directamente, sino en una pgina existente
No pueden contener elementos <html>, <body> o <form>
Usan la directiva @ Control para especificar cmo se debe comportar el
control de usuario
Aadir el atributo ClassName permite que el control de usuario est
fuertemente tipado cuando es aadido mediante programa

<%@ Control ClassName=Myclase %>


Quiz
Si te dieran una pgina Web con extensin .aspx Qu buscaras para verificar
que efectivamente es una Web Form?

<%@ Page Language="c#" Codebehind="_.aspx.cs" Inherits="_"%>


tambin por un <form runat="server"> tag

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Poniendo cdigo mezclado con el contenido del archivo (mixed)


Poniendo cdigo en una seccin separada del contenido del archivo (inline
code)
Poniendo cdigo en un archivo separado (code-behind pages)

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

F o rm1.asp x.vb
or F orm1.asp x.cs

64

Programacin Web
Entendiendo como trabajan las pginas de cdigo oculto

Crear archivos separados para la interface con el usuario y la lgica de la


interface
Usar la directiva @ Page para ligar los dos archivos
Pre-compilar o compilacin JIT (Just In Time)

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()
{

}
}

Ligando los dos archivos


o La pgina .aspx debe estar asociada con la pgina de cdigo oculto.
o Visual Studio .NET agrega los siguientes tres atributos a la directiva
@ Page de la pgina .aspx, para lograr esta asociacin:
Codebehind. Este es el atributo que Visual Studio .NET utiliza
internamente para asociar los archivos.
Src. Este atributo es el nombre de la pgina de cdigo oculto,
y es usado si la aplicacin Web no es precompilada
Inherits. Este atributo permite que a la pgina .aspx heredar
clases y objetos de la pgina de cdigo oculto.
Compilacin JIT
o Cuando una pgina es compilada (justo en tiempo- Just in Time
(JIT)), las pginas de cdigo oculto son compiladas la primera vez
que el cli ente solicita la pgina .aspx.
o Despus de la primera solicitud, todas las subsecuentes solicitudes
usan el archivo compilado existente.
o Por lo tanto, la primera solicitud de una pgina es ms tardada, pero
las subsecuentes solicitudes son ms rpidas
o Si se desea usar la compilacin JIT, se deber usar el atributo Scr en
la directiva @ Page de la pgina .
Execusin

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

65

Programacin Web

o Cuando un usuario solicita la pgina .aspx, el archivo DLL procesa la


solicitud entrante y responde creando el apropiado HTML y script y
regresandolos a el navegador solicitante
Precompilacin
o Si se omite el atributo Src en el archivo .aspx, la pgina es
precompilada cuando se construye la aplicacin en Visual Studio
.NET.
o Por default, Visual Studio .NET no agrega el atributo Src, por lo que
todas las pginas de cdigo oculto de las Web Forms en un
proyecto, son compiladas cuando el proyecto es construido. Este
proceso ahorra tiempo de procesamiento en el Web server y tambin
simplifica la instalacin del Web Site porque no se tiene que instalar
las pginas de cdigo oculto junto con las pginas .aspx.

Mquina de compilacin y ejecucin

Qu son los procedimientos de Evento?


Accin en respuesta a una interaccin del usuario con los controles de la pgina.
Por ejemplo, un evento es generado al dar clic en el botn Save .

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

66

Programacin Web

Procedimientos de eventos

Existen dos tipos de procedimientos de eventos:


o Del lado del cliente (client-side)
Son eventos que son manejados en la computadora que
solicit la Web Form (el cliente)
Cuando un evento es generado, la informacin no es enviada
al servidor, en lugar de esto, el navegador del cliente
interpreta el cdigo y tambin ejecuta la accin
o Del lado del servidor (server-side)
Son eventos que consisten de cdigo compilado que reside en
el Web server.
Debido a que estos eventos requieren un viaje de ida y vuelta
al Web server, existe un nmero limitado de tipos de eventos
de control que son soportados

Procedimientos de Eventos del lado del Cliente

Tpicamente, usados solamente con controles HTML


Interpretados por el navegador y ejecutados en el cliente
No tienen acceso a los recursos del servidor
Usan <SCRIPT language=javascript">

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

67

Programacin Web

Procedimientos de Eventos del lado del Servidor

Se usa con ambos controles de servidor: Web y HTML


El cdigo es compilado y corre en el servidor
Tiene acceso a los recursos del servidor
Usa <SCRIPT language=vb runat="server"> or <SCRIPT language=cs"
runat="server">

Multimedia: Eventos del lado del cliente y del servidor

Creando Procedimientos de Evento


Crear procedimientos de evento del lado del servidor en Visual Studio .NET
involucra dos pasos
Primer paso: Crear e l control que generar el evento en la Web Form.
Segundo paso: proporcionar el cdigo, en la pgina de cdigo oculto, que
es necesario para manejar el evento
Cuando se hace double-click en un control en Visual Studio .NET, este declara
una variable (con el mismo nombre que el atributo id del control) y crea una
plantilla de procedimientos de evento.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

69

Programacin Web
Multimedia: El proceso Postback

Leccin: Controles de eventos

Recordando Controles de eventos


Tipos de controles
Controles Intrnsecos
o Demostracin: Ejemplo de Web control y Evento
Vinculacin entre controles
Controles de validacin
o Desmotracin: Controles de validacin

Recordando Controles de Servidor

Objetos programables que se ejecutan en el servidor Web


o Exponen interfaces con propiedades y mtodos que pueden ser
manipulados por nuestro cdigo
o Se encargan de generar el cdigo HTML correcto (este proceso se
denomina Rendering)
o Son capaces de generar distinto HTML de acuerdo al Navegador
o Se identifican por el atributo runat=server

<asp:Button id="Button1" runat="server" Text="Submit"/>

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Proveen nombres estndar, con propiedades comunes a los controles


<asp:RadioButton BackColor="red" Text=" "... />
<asp:CheckBox BackColor="red" Text=" "... />
Incluyen propiedades especficas
<asp:CheckBox Checked="True" ... />

Generan HTML acorde al navegador que llama a la pgina.


<span>
<input type="checkbox" id="ctrl1"
checked="true" name="ctrl1">
<label for="ctrl1">Standard</label>
</span>
Controles Web Intrnsecos
Los controles Intrnsecos
Nos permiten generar controles comunes HTML pero a partir de
definiciones y ejecucin del lado del servidor.
En general, los marcadores o tags, de estos controles empiezan con:
< asp: ....
Estos controles son capaces de decidir internamente cual es la mejor forma
de generar el cdigo HTML del lado del cliente acorde al navegador que
ste este utilizando.
Se puede definir la estructura de la pgina sin preocuparnos por diferencias
funcionales de estilo o de presentacin que puedan tener dependiendo de
cada navegador
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

En algunos controles, se puede definir que llame la pgina en otros eventos


o Propiedad: AutoPostBack
o Esta propiedad esta por default en False, hay que cambiarlo a True.

Slo soportan eventos del lado del servidor


Demostracin: Ejemplo de Web Control y Evento

Agregaremos una DropDownListBox


Un TextBox
Un Botn
Eventos
o Cambiamos el contenido del TextBox al clic del botn
o Y luego cuando cambia la seleccin (cambiando AutoPostBack)

Vinculacin entre controles


En casos como el ejemplo anterior, puede ser ms fcil vincular un control a otro
<asp:DropDownList id="lstPais"
autoPostBack="True" runat="server" >
Has Seleccionado: <asp:Label id=TuPais"
Text="<%# lstPais.SelectedItem.Text %>"
runat="server" />
Se debe indicar por cdigo la vinculacin
Sub Page_Load (s As Object, e As EventArgs)
TuPais.DataBind()
End Sub
Qu es Validacin de la entrada?

Verificar que el valor de un control es introducido correctamente por el


usuario.
Bloquear el procesamiento de una pgina hasta que todos los controles son
vlidos.
Evitar spoofing o la adicin de cdigo malicioso

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

72

Programacin Web

Validacin del lado del Cliente y del Servidor

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

Controles de validacin ASP.NET


Permiten definir grficamente cierto tipo de validaciones de los datos ingresados
RequiredFieldValidator
o El control debe tener contenido
CompareValidator
o El control debe contener lo mismo que otro
RangeValidator
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

73

Programacin Web

o Elvalor del control debe estar dentro de un rango


RegularExpressionValidator
o El valor del control debe cumplir un patrn (mscara)
CustomValidator
o Se dispara un evento (cliente/servidor) donde se controla la
validacin
ValidationSummary
o Presenta un informe del resultado de los anteriores

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)

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

74

Programacin Web

Dinmico (Dynamic)

Combinando Controles de Validation


Se puede tener mltiples controles de validacin en un simple control de
entrada.
Solo el RequiredFieldValidator checa controles vacos.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

75

Programacin Web
Ventajas de los controles de validacin

General cdigo Jscript o DHTML segn el navegador que este accediendo


la pgina.
Encapsulan la funcionalidad de la capa de usuario
Es posible ejecutar validaciones del lado del Servidor
Normalizan la presentacin de los mensajes

Demostracin: Controles de validacin


A continuacin, veremos como se colocan y configuran los diferentes controles de
validacin.
Demostracin: Script en el Cliente
Y si necesito algo de Script del lado del cliente?
Es posible agregar cdigo del lado el cliente, si se analiza el cdigo fuente de la
pgina generada, para ver los ID de los elementos HTML creados.
Resumen

Los formularios Web ASP.NET proporcionan una forma fcil y potente de


generar interfaces de usuario Web dinmicas.
Las pginas de formularios Web de ASP.NET pueden dirigirse a cualquier
explorador cliente (no existe ningn requisito de cookies o de biblioteca de
secuencias de comandos).
Las pginas de formularios Web de ASP.NET proporciona compatibilidad
sintctica con pginas ASP existentes.
Los controles de servidor de ASP.NET proporcionan una forma sencilla de
encapsular funcionalidades comunes.
ASP.NET incluye 45 controles de servidor integrados. Los programadores
tambin pueden utilizar los controles generados por otros.
Los controles de servidor ASP.NET pueden proyectar automticamente
HTML de alto y bajo nivel.
Las plantillas ASP.NET proporcionan una forma sencilla de personalizar la
apariencia y sensacin de controles de servidor de lista.
Los controles de validacin de ASP.NET proporcionan una forma sencilla
de realizar validaciones de datos declarativas en el cliente o en el servidor.

Quiz
Cual es la ventaja de usar cdigo culto cuando de agrega funcionalidad al Web
Form?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

76

Programacin Web

El cdigo oculto permite la separacin del cdigo del contenido y permite


que el desarrollador del cdigo trabaje con el archivo de cdigo oculto
mientras que el diseador de la interface trabaja con el archivo .aspx

Cmo es un procedimiento de Evento asociado con un evento de un control de


servidor?

En Visual C#, en el cdigo oculto, una variable es creada con el mismo


nombre que el control. En el mtodo InitializeComponent, agrega el
procedimiento de evento a la propiedad evento del control.
private void InitializeComponent()
{
this.cmd1.Click += new System.EventHandler(this.cmd1_Click);
}
private void cmd1_Click(object sender, System.EventArgs e)
{
...
}

Cuales son los dos argumentos de un procedimiento de evento?

Object es el objeto disparado del evento


EventArgs es informacin especfica para el evento

Cmo es el cdigo oculto asociado con una pgina .aspx?

Los atributos siguientes de la directiva @ Page:


o Src es la ubicacin del cdigo oculto.
o CodeBehind es usado por Visual Studio .NET para localizar la
pgina oculta para edicin
o Inherits es la clase que esta implementada en el cdigo
oculto y
compilada en un assembly para el proyecto
Revisar los ejercicios correspondientes a esta seccin
Realizar las operaciones paso a paso
Conserve el proyecto para continuar con otros ejercicios del curso

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

77

Programacin Web

3.3. Controles de Usuario


Objetivos
En este tema aprenders a usar controles de usuario para encapsular
funcionalidad que se repite a lo largo de las pginas, como por ejemplo un
men para utilizar en todos los sitios.
Actividad 1
Nombre de la Actividad: Introduccin a los controles de Usuario
Objetivo: Al finalizar esta actividad comprenders que son los controles de
Usuario, su relacin con los controles de servidor y como usarlos para
encapsular funcionalidad.
Instrucciones:
1. Estudia con atencin la presentacin Controles de Usuario que se
encuentra ubicada en los materiales de apoyo del curso.
2. Visita el FORO para la actividad 1 de este tema, que se encuentra
en la pgina principal del curso (Moodle)!!!!!! Y agrega tu aportacin
a lo siguiente: Haz una lista de al menos 3 elementos, con algunas
ideas de en donde se podra usar controles de usuario para
simplificar el desarrollo de pginas Web. Justifica tus respuestas.
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 el foro este disponible y la liga a la presentacin se
encuentran activos en la seccin d e materiales de apoyo para este tema.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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?

Reusar interface de usuario y cdigo

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

81

Programacin Web

Facilitan encapsular funcionalidad que se repite a lo largo de las pginas


o Ejem. crear un men para utilizar en todos los sitios
Puede manejar sus propios eventos
o Se pueden personalizar acciones a travs de elementos que se van
a ejecutar del lado del servidor
Exponiendo en la pgina que lo usa, slo la funcionalidad requerida

Consideraciones a cerca de la creacin de controles personalizados

Definir claramente la funcionalidad a exponer


o Tanto en las propiedades como en los mtodos, deben tener
nombres que en el momento de utilizar el control desde el lado de la
pgina siguieran de que se trata y que es lo que se requiere
No pretender usar Controles para todo.
Encapsular y limitar la funcionalidad a lo estrictamente necesario
o Tiene que ser clara la definicin, tiene que estar bien probado antes
de poner en produccin, y debe limitarse la funcionalidad solo a
aquellas cosas que sea coherente encapsular dentro de un control,
aparte de aquello que ya viene en un control Web

Agregando un Control de Usuario

Usar la directiva @ Register para incluir un control de usuario en una


pgina ASP.NET.
<%@ Register TagPrefix="demo" TagName="validNum" rc="numberbox.ascx"
%>
Insertar el control de usuario en una Web Form
<demo:validNum id="num1" runat="server"/>

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Dos mtodos para creacin de controles de usuario:


o Crear un nuevo control de usuario usando Visual Studio .NET
o Convertir una pgina ASP.NET a un control de usuario
Una pgina Host interacciona con los controles usando propiedades
Una pgina Host debe usar el flow layout

public int pNum


{
get
{
return
Convert.ToInt32(txtNum.Text);
}
set
{
txtNum.Text =
Convert.ToString(value);
}
}
Demostracin: Ejemplo de la creacin de Controles de usuario

Crear un nuevo control de usuario


o Crear un Men

Utilizacin de controles de usuario

La pgina que lo utiliza lleva una directiva Register


o <%@ Register TagPrefix=miControl" TagName=MiMenu"
Src=MiMenu.ascx" %>
Se inserta el control como cualquier otro (que utiliza el Namespace
definido para el control)
o < miControl: MiMenu id="num1" runat="server"/>
Debe declararse en el cdigo, la variable de igual nombre
o No se hace automticamente por el diseador

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

83

Programacin Web
Demostracin: Usando un Control de usuario

Insertar un control de usuario en una pgina


Usar controles de usuario en la pgina de cdigo oculto

Biblioteca de controles Web

Es otro modo de definir controles para la Web


Es un proyecto aparte de la aplicacin Web
No posee diseador visual, es necesario generar todo el cdigo
Es necesario generar todo el cdigo HTML para el cliente

Al crear un control...

En el momento en que se agrega un objeto de tipo control dentro de un


proyecto de controles Web o Biblioteca de controles para la Web
El mismo Hereda de System.Web.UI.WebControls.WebControl
o Puede cambiarse esto por algn otro control, que a su vez herede de
esta clase
Todos los controles de Web Forms

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

84

Programacin Web
El proyecto puede

Dentro de un proyecto de biblioteca se puede exponer tantos controles


como sea necesario
Definir otro tipo de objetos, que ayuden a la funcionalidad
Recibir argumentos de cualquier tipo soportado por el .Net Framework

Demostracin: Web Control

Utilizar un proyecto de Web Control


Utilizaremos el cdigo VBScript

Para tomar en cuenta...

Definir un Namespace adecuado para el conjunto de controles para


ubicarlos ms fcilmente
Firmar el proyecto con clave segura
o Si se van a utilizar frecuentemente
o en ms de una aplicacin

Resumen

Un control de usuario es una pgina ASP.NET que puede ser importada


como un Control de Servidor por otra Web Form ASP.NET.
Similar a los controles Web del Servidor, los controles de usuario
proporcionan interface grfica (UI) y otras funcionalidades relacionadas
Despus que se ha creado un control de usuario, este puede entonces ser
usado por otras pginas en la misma aplicacin Web.

3.4. Acceso a Datos


Objetivos
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.
Actividad 1
Exposicin 1: Introduccin a ADO.NET
Objetivos

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

89

Programacin Web
Qu es ADO.NET?

ADO.NET provee un conjunto de clases


para trabajar con datos. ADO.NET provee:
Un evolucionario y mas flexible sucesor a ADO
Un sistema diseado para ambientes desconectados
Un modelo de programacin con un avanzado
soporte XML

Un conjunto de clases, interfaces, estructuras y


enumeraciones que manejan el acceso a datos dentro
del .NET Framework

Introduccin

ADO es una nueva tecnologa que esta basada en la


utilidad de Microsoft ActiveX Data Objects(ADO).
ADO.NET no es una actualizacin de ADO; es
completamente una nueva manera de manejar datos,
construida a partir de ADO. ADO.NET contiene
numerosas mejoras sobre la versin anterior de ADO, y
simplifica grandiosamente el proceso de conexin de tu
Aplicacin Web (Web application) a la base de datos.
ADO.NET coexiste con ADO. Mientras las ms nuevas
Aplicaciones Web basadas en .NET, sern escritas
usando ADO.NET, ADO permanecer disponible al
programador .NET a travs de la interoperabilidad de
los servicios COM de .NET.

Definicin

ADO.NET es un conjunto de clases que usas para


conectar y manipular fuentes de datos. A diferencia
ADO, confa en conexiones, usa OLE DB para acceder
a los datos y esta basado en componentes COM,
ADO.NET esta diseado especficamente
para
conexione s relacionadas a datos en un ambiente
desconectado, por lo cual lo hace la perfecta opcin
tus Aplicaciones Web. ADO.NET usa XML como el
formato para transmitir y recibir datos de la base de
datos y su Aplicacin Web, es por esto que asegura
mayor flexibilidad que ADO.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

90

Programacin Web
Usando espacios de Nombres

Usa las sentencias Imports o using para importar


espacios de nombres

Los espacios de nombres usados con ADO.NET


incluyen:

System.Data
System.Data.SqlClient
System.Data.OleDb

Introduccin

Hay tres espacios de nombres (namespaces) que tu


Importas en tu Forma Web ASP.NET si estas
usando ADO.NET tu siempre usaras el espacio de
nombres System.Data; y tambin usaras
System.Data.SqlClient System.Data.OleDb
dependiendo de la fuente de datos.

Espacios de nombres
ADO.NET

Cuando uses ADO.NET t debes importar el espacio


de nombres System.Data. Para importar este
espacio de nombres tu debes utilizar la palabra
reservada using.

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;

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

91

Programacin Web
El modelo de Objetos de ADO.NET

Introduccin

El modelo de objetos de ADO.NET provee la estructura


para acceder a datos de diferentes fuentes de datos.
Hay dos componentes principales del modelo de
objetos de ADO.NET: el y el proveedor de datos (data
provider) .NET.

Componentes
ADO.NET

Un DataSet esta hecho de una o ms DataTables,y


esta diseado para el acceso a datos, sin importar la
fuente de los datos. Por ejemplo, un DataSet puede
contener datos de una base de datos en SQL Server
2000, un cdigo OLE DB, y un archivo XML.
El DataSet tambin puede usar un DataView, el cual
es una vista personalizada de un DataTable.
El proveedor de datos .NET proporciona el eslabn
entre la fuente de datos y el DataSet. Ejemplos de
estos objetos que son proporcionados por el proveedor
de datos .NET son listados en la siguiente tabla.

Objetos del proveedor


de datos.NET
Connection
Command
DataReader
DataAdapter

Propsito

Proporciona conectividad con la fuente de datos.


Proporciona acceso con comandos a la base de datos.
Proporciona los datos que vierten de la fuente.
Usa el objeto Connection para proporcionar una
enlace entre el DataSet y el proveedor de datos. El

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

92

Programacin Web
objeto DataAdapter tambin ajusta cambios que se
hacen a los datos en el DataSet.
Usando los objetos

El Microsoft .NET framework incluye el proveedor de


datos SQL Server .NET (para la versin SQL Server
versin 7.0 o superiores), y el proveedor de datos
OLE DB .NET.
T usas los objetos SqlConnection, SqlCommand,
SqlDataReader, y SqlDataAdapter para leer y
manipular datos en bases de datos SQL Server 7.0 o
superiores. Y utilizas los objetos OleDbConnection,
OleDbCommand,
OleDbDataReader
y
OleDbDataAdapter para leer y manipular datos en
todos los otros tipos de bases de datos.

Qu es un DataSet?

Introduccin

Objeto DataSet

Un DataSet almacena informacin en un ambiente


desconectado. Despus de que tu establezcas una
conexin a una base de datos, entonces tu puedes
acceder a sus datos. El objeto DataSet es la principal
forma de almacenar datos cuando estas usando
ADO.NET.
El objeto DataSet permite almacenar datos, los cuales
han sido recolectados de una fuente de datos, en tu
Aplicacin Web (Web Application).
Los datos almacenados en un DataSet pueden ser
manipulados sin que la Forma Web ASP.NET
mantenga una conexin a la fuente de datos. Una
conexin solo se restablece cuando la fuente de datos
actualiza los cambios.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

93

Programacin Web
DataTables y
DataRelations

El objeto DataSet almacena los datos en una o mas


DataTables. Cada DataTable puede poblarse con
datos de una nica fuente de datos. Puedes tambin
establecer relaciones entre dos DataTables usando un
objeto DataRelation.

Leccin: Creando una conexin a una base de datos.

Introduccin

ADO.NET es usado para conectar una Forma Web a


una base de datos. En esta leccin, t aprenders
como conectarte a diferentes tipos de bases de datos
usando objetos ADO.NET.
T tambin aprenders como almacenar datos en una
DataSet.

Objetivos de la
Leccin

Despus de completar la leccin, seras capaz de:


? Generar una conexin a una base de datos
usando el explorador de Servidores.
Explicar como trabaja un DataAdapter.
Generar y un DataSet tipificado desde un
DataAdapter.

Usando el Explorador de Servidores para generar una conexin.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

94

Programacin Web

Introduccin

T puedes establecer una conexin a una fuente de


datos desde adentro del ambiente de desarrollo
integrado (IDE) Visual Studio.NET. Usando el IDE de
Visual Studio .NET, se simplifica el proceso de
establecer una conexin a una fuente de datos y tienes
la oportunidad de verificar la conexin durante la etapa
de diseo.

Creando una conexin

El Explorador de Servidores, el cual es parte del IDE de


Visual Studio .NET, te permite examinar los servidores
que estn corriendo en SQL Server y otras bases de
datos.
? Para conectarse a una tabla de una base de datos
1. En el Explorador de Servidores, expandir la lista de
servidores, expandir la base de datos que quieres
utilizar, y expandir la lista de tablas.
El Explorador de Servidores muestra la lista de
tablas de la base de datos seleccionada, como se
muestra en la siguiente ilustracin. La lista de
servidores en el Explorador de Servidores
nicamente muestra los servidores que estn
corriendo en el SQL Server 7.0 o superior. Si
necesitas conectar un tipo diferente de base de
datos, usa la caja de dialogo Propiedades de Enlace
de Datos (Data Links Properties).

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

95

Programacin Web

2. Dentro de la lista de tablas, dale clic a la tabla


especifica a la que te quieres conectar y arrstrala
al proyecto abierto.
Visual Studio .NET configura automticamente una
conexin y un DataAdapter para conectar a la tabla.
Un objeto SqlConnection o OleDbConnection es
agregado al proyecto, y entonces el objeto es mostrado
en la parte inferior de la forma Web, como se muestra
en la siguiente ilustracin.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

En la caja de dialogo Propiedades de Enlace de datos


resultante, selecciona el tipo de datos a la que deseas
conectarte como se muestra en la siguiente ilustracin.

Despus de seleccionar el tipo de datos, haz click a


Siguiente o selecciona la etiqueta Conexin y da la

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

97

Programacin Web
informacin necesaria para conectar a la base de datos,
tal como se muestra en la siguiente ilustracin.

Despus de que hayas creado la conexin desde la


caja de dialogo Propiedades de Enlace de datos,
puedes dar clic a la conexin y arrastrarla hasta el
proyecto, de la misma forma que lo haras desde la lista
de servidores SQL en el Explorador de Servidores.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

98

Programacin Web
El modelo del Objeto DataAdapter

Introduccin

Cuando un DataAdapter se conecta a una base de


datos, este usa muchos otros objetos para comunicarse
con la base de datos.

Definicin del
DataAdapter

El objeto DataAdapter usa el objeto Connection


para conectarse a una base de datos, y luego usa el
objeto Command para recuperar datos y realizar
cambios a la base de datos.
El objeto DataAdapter
tiene propiedades. Estas
propiedades son los objetos SqlCommand
o
OleDbCommand que contienen sentencias SQL. El
objeto DataAdapter tiene las siguientes cuatro
propiedades tipo comando (Command-typed).

SelectCommand. Esta
sentencia SQL SELECT.
UpdateCommand. Esta
sentencia SQL UPDATE.
InsertCommand. Esta
sentencia SQL INSERT.
DeleteCommand. Esta
sentencia SQL DELETE.

propiedad emite una


propiedad emite una
propiedad emite una
propiedad emite una

Cada una de estas propiedades del DataAdapter


pueden tener sentencias SQL o pueden llamar a
procedimientos almacenados (stored procedures) en la
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

En esta leccin, t aprenders como mostrar, en una


Forma Web, los datos de una conexin ADO.NET. T
especficamente aprenders acerca de los controles
lista - enlazada (list-bound), los cuales son controles
que pueden ser automticamente poblados con los
datos de una fuente de datos.

Objetivos de la
leccin

Despus de completar esta leccin, sers capaz de:

Describir que son los controles lista -enlazada


(list-bound) y como se utilizan.
Usar un DataGrid para mostrar datos.
Personalizar la apariencia de un DataGrid.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

100

Programacin Web
Qu son los controles de enlace de datos?

Qu son los controles de


enlace de datos?
Controles que conectan a una fuente de
datos y muestran los datos
Los controles de enlace de datos son:
DropDownList

Datagrid

ListBox

Data List

CheckBoxList

Repeater

RadioButtonList

Introduccin

Se puede ligar directamente controles de enlace de


datos que estn en un Web Form a una fuente de
datos. Existen dos tipos de controles de enlace de
datos:

Control de enlace sencillo


Control de listas enlazadas

Definicin

Los controles de listas enlazadas son controles que se


conectan a una fuente de datos y luego muestran los
datos obtenidos de esta fuente. Los controles de listas
enlazadas son ligados directamente a la fuente de los
datos. ASP .NET llena automticamente los controles
de listas enlazadas con datos.

Ejemplos

La siguiente tabla muestra los controles Web que son


controles de listas enlazadas.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Mostrando los Datos de un en DataSet en Controles de Listas Enlazadas

Introduccin.

Puedes conectar un DataSet con un control de lista


enlazada, el cual automticamente llena le control de
lista enlazada con los datos del DataSet.

Estableciendo las propiedades del control.


Cada control de lista enlazada en Visual Studio .NET
tiene propiedades que son especficas a cada control.
La siguiente tabla describe la s propiedades que t

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Las propiedades DataTextField y DataValueField son


usadas por los controles ListBox, DropDownList,
CheckBoxList y RadioButtonList porque estos
controles pueden mostrar solo un campo de una fila del
DataSet.
Ligar los datos.

Despus de que y DataSet ha sido llenado con datos,


t llamas al metodo DataBind del control para conectar
el conectar dicho control con el DataSet. El siguiente
codiogo liga los datos que son especificados desde la
propiedad DataSource a la ListBox lstEmployees:

C#

lstEmployees.DataBind();

Usando DataSet vs DataReaders

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

103

Programacin Web
Introduccin

Los objetos DataSet son objetos complejos que


permiten almacenar mltiples DataTables de datos de
una fuente de datos. El objeto DataSet es similar a una
base de datos virtual que esta dentro de la Aplicacin
Web. El objeto DataSet puede tambin contener
relaciones entre los datos en las DataTables, y puede
usar estar relaciones para regresar datos.
El objeto DataReader es un objeto ms sencillo que es
usado para leer datos de una fuente de datos; el objeto
DataReader provee servicios solo-hacia-adelante, y
nicamente de lectura para acceder a los datos en la
base de datos.

Usando DataSets
y DataReaders

La eleccin entre usar un objeto DataSet o un


DataReader debe estar basada en la intencin de como
se quieran usar los datos. Generalmente, el objeto
DataReader es usado para leer datos una sola vez, en
situaciones de solo lectura, como cuando accedemos a
una contrasea almacenada, o llenamos un control
lista-enlazada (list-bound). El objeto DataSet es usado
para accesos a datos ms complicados, como el
acceder al historial de rdenes de un cliente.
Algunos de los puntos que debes considerar cuando
eligas entre un objeto DataSet o DataReader son:

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.

Acceso a mltiples bases de datos


Si t intentas combinar tablas de una o mas
bases de datos, t debes usar un objeto DataSet.
El objeto DataReader esta basado para
sentencias SQL simples, para bases de datos
simples.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

105

Programacin Web
Seguridad del Servidor SQL

Introduccin. Desde la perspectiva del usuario, acceder a datos de una base de


datos en SQL Server es un proceso de dos pasos. Primero, el
usuario manda una solicitud desde la aplicacin Web, y luego la
aplicacin Web conecta a la base de datos en SQL Server para
completar la solicitud. Existen dos mtodos principales para conectar
una aplicacin Web para conectar una aplicacin Web a una base de
datos en SQL Server: modo de autenticacin mezclado (mixed-mode
authentication) y autenticacin solo Windows (Windows-only
authentication).
Modo de autenticacin mezclado. El modo de autenticacin mezclado usa la
configuracin predeterminada de ASP .NET y de la aplicacin Web.
Cada usuario de la aplicacin Web debe tener una cuenta de usuario
en el Grupo de Logins del SQL Server. La debilidad del modo de
autenticacin mezclado es que el nombre de usuario y su contrasea
son mandados a la computadora donde corre SQL Server en HTML
no encriptado. Esto expone los datos que se envan a una tercera
parte que puede obtener los datos de acceso. Adems, se tiene
administrar la cuenta del usuario tanto en el servidor Web como en la
computadora que este corriendo SQL Server.
Para usar el modo de autenticacin mezclado, establece el SQL
Server a modo de autenticacin mezclado (SQL Server y Windows).
El siguiente cdigo puede usarse para conectarse a SQL Server
mediante el modo de autenticacin mezclado:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

106

Programacin Web
C#

string strConn =
"data source=localhost; " +
"initial catalog=northwind; " +
"user id=CohoUser; " +
"password=1Coho";
SqlConnection conn = new SqlConnection(strConn);

Advertencia: Usar el modo de autenticacin mezclado para acceder a SQL


Server desde una aplicacin Web tiene riesgos de seguridad y no es
recomendado. El modo de autenticacin mezclado solo es discutido
aqu como una tcnica que puede ser usada durante el desarrollo de
aplicaciones Web.
Autenticacin Solo Windows: El modo de autenticacin solo Windows es el
mtodo mas usado cuando una aplicacin Web desea conectarse a
una base de datos en SQL Server. Cuando se usa el modo de
autenticacin solo Windows, SQL Server no requiere de un nombre
de usuario y contrasea. Solo una confirmacin de que el usuario ha
sido autenticado por un recurso seguro es necesaria durante el
proceso de consulta a la base de datos.
El modo de autenticacin solo Windows usa una sola cuenta llamada
ASPNET para todos los accesos que se hagan desde la aplicacin
Web. Esta cuenta elimina los asuntos inseguros relacionados con
transmitir nombres de usuario y contraseas no encriptadas entre la
aplicacin Web y SQL Server, junto con la necesidad de mantener
cuentas de usuario en ambos servidores.
Con el modo de autenticacin solo Windows, los usuarios acceden a
la forma Web como usuarios annimos. ASP .NET conecta a SQL
Server y es autenticado usando la cuenta del usuario ASPNET. Los
datos solicitados son regresados de SQL Server y son usados por la
aplicacin Web. Finalmente, la forma Web que incluye los datos
solicitados es regresada al usuario.

C#

Para usar el modo de autenticacin solo Windows, debes establecer


el SQL Server con el modo de autenticacin solo Windows
(Windows -only authentication). El siguiente cdigo puede usarse
para conectarse a SQL Server usando el modo de autenticacin solo
Windows:
string strConn =
"data source=localhost; " +
"initial catalog=northwind; " +
"integrated security=true";
SqlConnection conn = new SqlConnection(strConn);

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Introduccin. Para mover datos entre la base de datos y la aplicacin Web,


primero se debe tener una conexin a la base de datos, Para crear
una conexin a la base de datos, se necesita identificar el nombre
del servidor que contiene la base de datos, el nombre de la base de
datos y se requiere la informacin de acceso (nombre de usuario y
contrasea si son necesarios).

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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);

Parmetros de la cadena de conexin. La siguiente tabla describe algunas de


los parmetros ms comunes usados en el objeto de conexin:
Parmetro
Connection
Timeout

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

109

Programacin Web
Leccion: Accediendo a datos con DataSets

Introduccin

El objeto DataSet representa una copia local de datos


que vienen de una o ms fuente de datos. Usando un
objeto DataSet permites a la Forma Web corre semiindependientemente de la fuente de datos. El objeto
DataSet puede usar un objeto DataAdapter para
cargar datos desde una fuente de datos y puede
entonces desconectarse de la fuente de datos. El
usuario puede entonces usar y manipular los datos.
Cuando los datos necesiten ser actualizados en la
fuente de datos, un objeto DataReader es usado para
reconectar y actualizar la fuente de datos.
En esta leccin, t aprenders como usar objetos
DataSet para mantener el almacenamiento local de
datos y a manipular los requerimientos de la Forma
Web.

Objetivos de la
Leccin

Despus de completar la leccin sers capaz de:

Crear un objeto DataAdapter para unirse a un


objeto DataSet a una fuente de datos.
Crear un objeto DataSet para retener datos de
una fuente de datos.
Usar un objeto DataView para retene r un
conjunto de datos de un objeto DataSet.
Ligar un objeto DataSet y un objeto DataView a
un control lista -enlazada (list-bound).
Manejar los errores tpicos que se encuentran
mientras se accede a los datos.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

110

Programacin Web
Creando un DataAdapter

Introduccin

El objeto DataSet representa una copia local de datos


de una fuente de datos. Cuando es usado sin una
fuente de datos, es muy til para mantener datos
locales que la Forma Web pueda acceder. Sin embargo,
para servir como una herramienta administradora de
datos, un objeto DataSet debe poder interactuar con
una o ms fuente de datos.
Para lograr esta interaccin, el framework de
Microsoft.NET provee las clases SqlDataAdapter y
OleDbDataAdapter.

DataAdapter

Un objeto DataAdapter sirve como un enlace entre el


objeto DataSet y una fuente de datos que puede ser
usada para recuperar y salvar datos. La clase
DataAdapter representa un conjunto de comandos de
bases de datos y conexiones de bases de datos que t
usas para llenar un objeto DataSet y actualizar la fuente
de datos. Cada objeto DataAdapter intercambia datos
entre un simple objeto DataTable en un objeto objeto
DataSet y un resultado simple de una sentencia SQL o
un procedimiento almacenado.
Visual Studio.NET hace dos clases primarias de
DataAdapter disponibles para utilizar con bases de
datos:
Clase OleDbDataAdapter
Esta clase es conveniente para usar con
cualquier fuente de datos que es expuesta por
un proveedor de datos OLEDB.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Cuando usas objetos DataAdapater para


intercambiar datos entre un objeto DataSet y una
fuente de datos, puedes especificar las acciones que
quieres realizar usando una de la cuatro propiedades
DataAdapter. Entonces las propiedades DataAdapter
ejecutan una sentencia SQL o llaman a un
procedimiento almacenado.
Las propiedades que estan disponibles con la clase
DataAdapter se muestran en la siguiente tabla.
Propiedad
SelectCommand

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

El siguiente cdigo de ejemplo muestra como crear


un objeto SqlDataAdapter llamado da que contiene una
sentencia de consulta.

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);

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

112

Programacin Web
Creando un DataSet

Introduccin

Para crear una copia local de una base de datos, creas


y llenas un objeto DataSet usando objetos DataTable.

Creando un DataSet

El primer paso para crear un objeto DataSet es declarar


el objeto DataSet. El siguiente codigo crea un objeto
DataSet llamado ds:

C#

DataSet ds = new DataSet();

Llenar el DataSet

Despus de que creaste el objeto DataSet, llenas el


objeto DataTable creando un objeto DataAdapter.
Llamas al mtodo Fill en el objeto DataAdapter y
entonces especificas el objeto DataTable que quieres
llenar. El siguiente codigo llena la tabla Authors del
objeto DataSet ds usando un DataAdapter llamado da:

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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");

El segundo argumento del mtodo Fill es el nombre


para el objeto DataTable que es creado. Usa este
nombre para acceder a los datos devueltos.
Accesando a un
DataTable

Despus de que hayas puesto datos en un objeto


DataSet, puedes acceder a los datos programtica
mente. Como se muestra en el siguiente cdigo, cada
objeto DataSet esta comprendido de uno o mas
objetos DataTables a los que te puedes referir por
nombre o por posicin.

C#

ds.Tables["Authors"];
-ods.Tables[0];

Las clases DataRow y DataColumn son componentes


primarios de la clase DataTable. Podrias usar el objeto
DataRow,
sus propiedades y sus metodos para
regresar y evaluar los valores en un objeto DataTable.
El DataRowCollection representa los objetos actuales
DataRow que estan en el objeto DataTable, y el
DataColumnCollection
contiene
los
objetos
DataColumn que describen el esquema del objeto
DataTable. La propiedad Rows del objeto DataTable
provee acceso programatico al DataRowCollection. La
propiedad Columns del objeto DataTable provee
acceso programatico al DataColumnCollection.
El siguiente codigo agrega una columna de un objeto
DataSet a un control ListBox llamado IstItems
C#

foreach(DataColumn col in ds.Tables[0].Columns)


{
lstItems.Items.Add(col.ColumnName);
}

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.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;

Contando las filas y las columnas del objeto DataTable


permite acceder a campos individuales en el objeto
DataTable. T puedes acceder a campos por posicin
ordinaria, o por nombre. En el siguiente codigo, X es el
indice de la fila a la que quieres acceder:
C#

ds.Tables["Authors"].Rows[x][1];
ds.Tables["Authors"].Rows[x]["fieldname"];

El siguiente codigo itera atravez de cada fila en el objeto


DataTable llamado Authors y crea una cadena usando
el segundo campo (au_lname) en Authors:
C#

string str = "";


foreach(DataRow r in ds.Tables["Authors"].Rows)
{
str += r[1];
str += r["au_lname"];
}

Usando un DataView

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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;

DataView Personalizado: Se puede crear tambin un objeto DataView que est


basado en un subconjunto de tablas que estn en un objeto
DataTable. Por ejemplo, se puede establecer la propiedad
DataViewRowFilter usando una expresin para filtrar datos. La
expresin para filtrar datos se debe evaluar a True o False. Tambin
se puede establecer la propiedad Sort del objeto DataView usando
una expresin para ordenar los datos. La expresin para ordenar los
datos puede incluir los nombres de objetos DataColumn o un
clculo.
En el siguiente cdigo, la propiedad RowFilter, del objeto DataView
dv, esta establecido para regresar solo los autores del estado de
California (CA), y luego ordenar los resultados por apellido
(au_lname):

C#

DataView dv = new DataView(ds.Table[Authors]);


dv.RowFilter = state = CA
dv.Sort = au_lname;

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

116

Programacin Web

Leccin: Usando mltiples Tablas

Introduccin

Una de las ventajas de los objeto DataSet es que ellos


pueden contener mltiples objetos DataTables, y cada
uno de los objetos DataTable puede venir de diferentes
tipos de fuentes de datos.
En esta leccin t aprenders como almacenar
mltiples tablas de datos en un objeto DataSet y
aprenders como desplegar los datos en controles
DataGrid.

Objetivos de la
Leccin

Despus de completar la leccin, sers capaz de:

Almacenar datos en mltiples tablas de mltiples


fuentes de datos.
Crear relaciones entre datos de mltiples fuentes
de datos.
Usar las relaciones para navegar entre tablas de
datos de mltiples fuentes.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

117

Programacin Web
Almacenando Multiples Tablas

Introduccin

Para llenar un objeto DataSet con mltiples objetos


DataTable que vienen de una o mas fuentes de datos,
t necesitas usar mltiples objeto DataAdapter. Cada
objeto DataAdapter llena por separado una tabla en el
objeto DataSet porque el orden del objeto DataTable
controla el orden de implementacion, t puedes
controlar el orden en el cual las actualizaciones son
escritas hacia y desde la base de datos. Este control
sobre el orden de la implementacion te ayuda a
preservar la integridad referencial entre las tablas
relacionadas en la base de datos.

Agregar la primera
Tabla

Un ejemplo del control del orden en el cual los


objetos DataTable son creados es un vendedor que
necesita recuperar informacin de los clientes, y la
informacin acerca de las ordenes de compra que
fueron hechas por cada cliente, de una base de datos
central. Para cumplir este requerimiento, t puedes
crear una aplicacin Web que contenga dos objetos
DataAdapter, el primero que regrese los registros del
cliente, y el segundo que retorne las rdenes de
compra. Para cargar los datos del cliente primero, t
debes preservar la integridad de referencia entre los
clientes y sus rdenes de compras.
El siguiente cdigo llena el objeto DataTable con los
clientes usando un objeto DataAdapter llamado
daCustomers:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Despus de que el primer objeto DataTable se


carga, puedes llenar un objeto adicionales DataTable y
definir las relaciones entre los objetos basados en el
objeto inicial DataTable. Continuando con el ejemplo
anterior, t llenaras el Objeto DataTable con las
rdenes.
El siguiente cdigo llena el objeto DataTable con las
ordenes, usando un objeto DataAdapter llamado
daOrders:

C#

Create the second DataTable


daOrders = New SqlDataAdapter _
("select CustomerID, OrderID, OrderDate, ShippedDate " & _
"from Orders", conn)
daOrders.Fill(ds, "Orders")
// Create the second DataTable
daOrders = new SqlDataAdapter
("select CustomerID, OrderID, OrderDate, ShippedDate " +
"from Orders", conn);
daOrders.Fill(ds, "Orders");

Nota: T debes usar un nuevo objeto DataAdapter para


cada objeto DataTable en el objeto DataSet.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

119

Programacin Web
Creando Relaciones

Introduccin

Un objeto DataRelation es usado para referenciar dos


objetos DataTable. Por ejemplo, en una relacin
cliente/ordenes, la tabla de clientes es padre de la
relacin y la tabla ordenes es el hijo de la relacin. Esta
relacin es similar a una relacin llave primaria/llave
externa. Las relaciones se crean entre parejas
de
columnas en las tablas de padre e hijo. El valor de Data
Type debe ser idntico para ambas columnas.
Los objetos DataRelation estn contenidos en el
objeto DataRelationCollection, en el cual puedes tener
acceso no solo a travs de la propiedad Relations del
objeto DataSet, sino tambin a travs de las
propiedades ChildRelations y ParentRelations de el
objeto DataTable.
Para crear un objeto DataRelation, usa el constructor
DataRelation
y el metodo Add de la coleccin
Relations de un objeto DataSet.

Ejemplo del
Objeto
DataRelation

El siguiente ejemplo crea un objeto DataRelation


llamado dr y lo agrega al objeto DataSet ds.

C#

// Create DataRelation: each publisher publishes many titles


DataRelation dr;
DataColumn parentCol;
DataColumn childCol;
parentCol = ds.Tables["Customers"].Columns["CustomerID"];
childCol = ds.Tables["Orders"].Columns["CustomerID"];
dr = new DataRelation("CustOrders", parentCol, childCol);
ds.Relations.Add(dr);

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

120

Programacin Web
Navegando Programticamente entre Tablas Usando Relaciones

Introduccin

En muchos escenarios de Aplicacin Web, t quisieras


trabajar con datos de ms de una tabla, y a menudo
desearas trabajar datos de tablas relacionadas. Las
relaciones entre una tabla padre y una tabla hijo es
llamada master-detail. Un ejemplo de estas relaciones
seria regresar los registros de un cliente y adems ver
la informacin de las rdenes asociadas a ese cliente.
El modelo desconectado del objeto DataSet permite
que trabajes con mltiples objetos DataTables en
aplicacin Web y definir relaciones entre los objetos
DataTable. Entonces t puedes usar las relaciones
para navegar entre los registros relacionados en las
tablas.

Navegando
Programticamente

Una de las principales funciones de una clase


DataRelation es permitir navegar de un objeto
DataTable a otro objeto DataTable sin un objeto
DataSet. Esta habilidad de navegacin permite que t
retornes todos los objetos DataRow de un objeto
DataTable cuando estas dando un objeto DaraRow de
un objeto DataTable relacionado. Por ejemplo, despus
de establecer un objeto DataRelation entre un objeto
DataTable de consumidore s y un objeto DataTable de
orden de compras, se puede recuperar todas las filas de
ordenes para una fila de consumidor en particular
usando el mtodo DataRow.GetChildRows.
El mtodo GetChildRows de un objeto DataRow,
devuelve las filas relacionadas que son hijos del objeto
DataTable. El mtodo GetParentRow de un objeto
DataRow regresa la fila padre de un objeto DataTable.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

121

Programacin Web

Por ejemplo, puedes tener un control DataGrid llamado


dgCustomers que esta mostrando datos obtenidos del
objeto DataTable Customers, el cual esta en un objeto
DataSet ds. El siguiente cdigo muestra un ciclo a
travs de todos los registros childOrder para obtener
una lista de nmeros de orden
C#

currentParentRow = ds.Tables["Customers"].
Rows[dgCustomers.SelectedIndex];
foreach(DataRow r
in currentParentRow.GetChildRows("CustOrders"))
{
Label1.Text += r["OrderID"] + ",";
}

Navegando visualmente entre tablas usando relaciones

Navegando
relaciones
Visualmente

Con Visual Studio .NET tambin se puede mostrar


arrastrand o controles desde la barra de herramientas.
Si deseas mostrar las filas hijo de de una relacin en un
control de listas enlazadas por separado, se puede
usar el mtodo CreateChildView y luego enlazar el
control al objeto DataView resultante.
Para conectar dos controles de listas enlazadas a
travs de un objeto DataRealtion, se necesita obtener
el objeto DataRowView de la fila seleccionada del
control padre de listas enlazadas, y luego llamar al
mtodo CreateChildView del objeto DataRowView.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

122

Programacin Web
El siguiente cdigo crea un objeto DataView desde in
objeto DataRelation para mostrar los registros hijos en
un control DataGrid:
C#

DataView parentTableView = new


DataView(ds.Tables["Customers"]);
DataRowView currentRowView =
parentTableView[dgCustomers.SelectedIndex];
dgChild.DataSource =
currentRowView.CreateChildView("CustOrders");
dgChild.DataBind();

Leccin: Accediendo a Datos con DataReaders

Introduccin. El benfico que da el usar un objeto DataSet es que este da una


copia de la base de datos sin conexin alguna. Para las aplicaciones
Web que correr durante mucho tiempo, el usar objetos DataSet es
normalmente el mejor enfoque. De cualquier forma, los
desarrolladores a veces usan operaciones simples y cortas, tales
como mostrar un conjunto de datos directamente al usuario. Para
ese tipo de operaciones los desarrolladores no necesitan mantener
un objeto DataSet, en vez de ello, se puede usar un objeto
DataReader.
En esta seccin, aprenders como leer datos usando la clase
DataReader.
Objetivos de la leccin: Despus de completar esta leccin, sers capaza de:
Explicar como trabaja la clase DataReader.
Crear un objeto DataReader.
Leer datos desde un objeto DataReader.
Enlazar un control de servidor de listas enlazadas a un objeto
DataReader.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Introduccin. Para usar un objeto SqlDataReader, se necesita crear un objeto


SqlCommand en vez de un objeto SqlDataAdapter, que era
necesitado para el objeto DataSet. El objeto SqlCommand expone
un metodo ExecuteReader que regresa un objeto SqlDataReader.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Crear y abrir la conexin a la base de datos.


Crear un objeto Command.
Crear el objeto DataReader desde el objeto Command.
Llamar al mtodo ExecuteReader.
Usar el objeto DataReader.
Cerrar el objeto DataReader.
Cerrar el objeto Connection.

El siguiete cdigo ejemplo abre la conexin a una base de datos,


crea un objeto DataReader desde el objeto Command, y luego itera
a travs del objeto DataReader y agrega campos desde los registro
a un control ListBox:
C#

// Open Connection and create command


SqlConnection conn = new SqlConnection
("data source=localhost; integrated security=true; " +
"initial catalog=pubs;");
SqlCommand cmdAuthors = new SqlCommand
("select * from Authors", conn);
conn.Open();
// Create DataReader and read data
SqlDataReader dr;
dr = cmdAuthors.ExecuteReader();
while (dr.Read())
{
lstBuiltNames.Items.Add(dr["au_lname"] + ", " +
dr["au_fname"]);
}
// Close DataReader and Connection
dr.Close();
conn.Close();

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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();
}

Leyendo datos de un DataReader

Llamando registros para cada registro. Despus de haber llamado al mtodo


ExecuteReader del objeto Command, se tiene acceso a los
registros en el objeto DataReader llamando al mtodo Read. La
posicin predeterminada en el objeto DataReader es antes del
primer registro; por consiguiente, se debe llamar al mtodo Read
antes de acceder a cualquier dato. Cuando se han agotado los
registros, el mtodo Read regresa el valor null.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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"];
}

Accesando a campos. Para obtener los datos de los campos en el actual


registro, se necesita acceder al campo por su posicin ordinal, por su
nombre, o llamando a la mtodo Get adecuado, que puede ser
GetDateTime, GetDouble, GetInt32 o GetString.
Tip. Usar un mtodo Get especfico es ms rpido que hacerlo por la posicin
ordinal o el nombre debido a que el DataReader no necesita checar
el formato de los datos.
Por ejemplo: el siguiente cdigo lee los campos nombre y apellido,
ambos de tipo cadena, de el primer registro del objeto DataReader
dr, usando el mtodo GetString():
C#

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"];

Cerrar el DataReader. Cuando el objeto DataReader esta en uso, la conexin


asociada est ocupada sirviendo al objeto DataReader. Por lo tanto,
se debe llamar al mtodo Close para cerrar el objeto DataReader
cuando este se ha acabado de usar, como se muestra en el
siguiente ejemplo:
C#

myReader.Close();

Cerrar la conexin. El DataReader no cierra la conexin automticamente. Se


tiene que hacer un llamado al mtodo Close para cerrar la conexin
explcitamente cuando se ha terminado de usar el objeto, tal como se
muestra en el siguiente ejemplo:
C#

conn.Close();

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

128

Programacin Web
Enlazando un DataReader a un Control de Listas Enlazadas

Introduccin. Adems de iterar a travs del objeto DataReader y mostrarlo


programaticamente, se puede ligar un objeto DataReader a un
control de listas enlazadas.
Para enlazar un objeto DataReader al control, se debe establecer la
propiedad DataSource del control al objeto DataReader. El siguiente
cdigo crea un objeto DataReader dr, lo enlaza a un control
ListBox, y luego cierra los objetos DataReader y Connection:
C#

SqlConnection conn = new SqlConnection


("data source=localhost; integrated security=true; " +
"initial catalog=pubs");
conn.Open();
SqlCommand cmdAuthors = new SqlCommand
("select * from Authors", conn);
//bind the datareader to a listbox
SqlDataReader dr;
dr = cmdAuthors.ExecuteReader();
lstBoundNames.DataSource = dr;
lstBoundNames.DataTextField = "au_lname";
lstBoundNames.DataBind();
//close the datareader and the connection
dr.Close();
conn.Close();

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

129

Programacin Web
Qu es un Procedimiento Almacenado?

Introduccin

Un procedimiento almacenado es un procedimiento de


una base de datos que un desarrollador de bases de
datos escribe junto con una base de datos especfica.
Otras aplicaciones Web pueden entonces invocar a
esos procedimientos almacenados para acceder o
manipular datos de la base de datos.

Acceso Programtico

Los procedimientos almacenados permiten acceder a la


base
de datos llamando a un procedimiento existente en vez
de escribir una sentencia SQL propia. Los
procedimientos almacenados estn construidos con
secuencias de sentencias de Transact-SQL, y
funcionan de manera similar a los procedimientos en
una aplicacin Web en donde las sentencias son
llamados por nombre, y pueden tener parmetros de
entrada y de salida.

A una Base de Datos

Los tres tipos de procedimientos almacenados son:


Procedimientos almacenados que regresan registros
Los procedimientos almacenados que regresan
registros son usados para localizar registros
especficos, ordenar y filtrar dichos registros, y luego
regresar los resultados de la bsqueda, ordenamiento o
filtrado de las operaciones a un objeto DataSet o a un
control de listas enlazadas. Estos procedimientos

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

131

Programacin Web
Por qu usar procedimientos almacenados?

Introduccin

Resulta ser mas fcil, mas eficiente y mas seguro usar


procedimientos almacenados que escribir cdigo
requerido para conectarse y ejecutar sentencias
Transact-SQL directamente a la base de datos. Llamar
un procedimiento almacenado no requiere que se
entienda como esta diseada la base de datos, y la
base de datos es accedida por un procedimiento
probado.

Programacin modular

Los procedimientos almacenados son un clsico


ejemplo de programacin modular. Se crea un
procedimiento una vez, se prueba una vez, se
almacena en la base de datos, y luego se invoca
cualquier cantidad de veces desde mltiples
aplicaciones. Cualquier cambio o actualizacin a la
base de datos estn ocultos de las aplicaciones que
acceden a esta mediante el procedimiento almacenado.

Distribucin del trabajo Los procedimientos almacenados pueden ser creados


independientemente por un desarrollador especializado
en la programacin de base de datos, mientras la
aplicacin Web que usara el procedimiento
almacenado puedes estar siendo creada en paralelo
por otros desarrolladores. Esta distribucin del trabajo
permite a los desarrolladores enfocarse en sus
especialidades.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

132

Programacin Web
Incrementar la
Seguridad de la
Base de datos

El uso de procedimientos almacenados


incrementa la seguridad de la base de datos limitando
el acceso directo.
Solo los procedimientos almacenados probados por el
dueo de la base de datos tienen acceso directo a la
base de datos. Existe menor riesgo de dao accidental
a la estructura o el contenido de la base de datos
debido
a que otras aplicaciones Web y
el
desarrollador no tienen acceso directo a la base de
datos.
El usar sentencias Transact SQL o SQL directamente
en el cdigo Microsoft ASP.NET es tambin un riesgo
de seguridad ya que las sentencias pueden dar
informacin a un hacker acerca de la base de datos y
su estructura. Adems con el acceso directo a la base
de datos, tambin se tiene el problema de seguridad
de intentar determinar que tipo de permisos deberan
ser dados a la cuenta del Webuser en cada tabla.

Ejecucin ms
Rpida

Si un procedimiento requiere una gran cantidad de


cdigo
Transact-SQL o si este se ejecuta repetidamente, el
uso de procedimientos almacenados puede ser mas
rpido que acceder a la base de datos directamente por
cdigo. Los procedimientos almacenados son
analizados sintcticamente y optimizados cuando son
creados, y una versin en memoria del procedimiento
es usada si se ejecuta el despus de la primera vez.
El acceso directo a travs de sentencias Transact-SQL
requiere que las sentencias sean enviadas desde el
cliente cada vez que se van a correr. Las sentencias
son entonces compiladas y optimizadas cada vez que
son ejecutadas del lado del servidor.

Reduccin del
Trafico en la Red

Una operacin que requiere de cientos de lneas de


cdigo en
Transact-SQL puede ser realizada mediante una
sencilla sentencia que llama a un procedimiento
almacenado. Enviando solo una llamada a travs de la
red, en vez de cientos de lneas de cdigo.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

133

Programacin Web
Provee Flexibilidad

Debido a que el acceso a la base de datos es a travs


de un procedimiento almacenado, el programador de la
base de datos puede cambiar la estructura de esta sin
estropear la aplicacin Web que esta usando la base
de datos. Esta proteccin permite mejorar la base de
datos sin poner en riesgo el resto del sistema.

Leccin: Llamando a Procedimientos Almacenados

Introduccin: Antes de poder invocar un procedimiento almacenado (stored


procedure), se necesita tener identificado el nombre del
procedimiento y los parmetros que este necesita. Despus de haber
identificado el procedimiento, se puede invocar el procedimiento,
pasar los parmetros necesarios que son necesarios para procesar
la solicitud, y manejar los parmetros de salida que arroja la
respuesta.
En esta leccin, aprenders como llamar procedimientos
almacenados, pasar parmetros de entrada y manejar los
parmetros de salida.
Objetivos de la leccin. Despus d e completar esta leccin, sers capaz de:

Llamar a procedimientos almacenados desde una forma Web.


Identificar el tipo de parmetros que son necesarios cuando se
llama aun procedimiento almacenado.
Pasar parmetros de entrada cuando se llama a un
procedimiento almacenado desde una forma Web.
Usar los parmetros de salidas de un procedimiento almacenado.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

134

Programacin Web
Llamando a Procedimientos Almacenados

Introduccin. Para llamar a procedimientos almacenado, primero se tiene que


identificar el procedimiento almacenado, crear un objeto
DataAdapter, y apuntar el objeto DataAdapter a una conexin a la
base de datos. Despus establecer la propiedad CommandText a
CommandType.StoredProcedure.
Identificar el procedimiento almacenado. El primer paso para usar un
procedimiento almacenado es identificar el tipo y el nombre de este.
Se puede usar un objeto DataAdapter o un objeto DataReader para
llamar a cualquiera de los tres tipos de procedimientos almacenados.
El mtodo que se invocar para ejecutar el procedimiento
almacenado variara dependiendo del tipo de procedimiento
almacenado que se este llamando:

Regresar registros de un procedimiento almacenado.

Cuando se llama a un procedimiento almacenado que regresa un


conjunto de registros, se necesita almacenar ese conjunto de
registros en un DataSet o directamente a un control de listas
enlazadas usando un DataReader. Si se desea usar un DataSet, se
necesita usar el DataAdapter y el mtodo Fill. Si se desea usar un
DataReader, se necesita usar el objeto Command y el mtodo
ExecuteReader, y entonces ligar el registro regresado a un control.

Regresar valores de un procedimiento almacenado.

Cuando se invoca a un procedimiento almacenado que regresa un


valor, se necesita llamar al mtodo ExecuteScalar del objeto

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

135

Programacin Web
Command, y guardar los resultados en una variable apropiado para
el tipo de dato retornado.

Realizar acciones mediante procedimiento almacenado.

Cuando se invoca a un procedimiento almacenado que realiza


alguna accin sobre la base de datos pero no regresa un conjunto de
registros o un valor, se usa el mtodo ExecuteNonQuery del objeto
Command.
Establecer la propiedad SelectCommand. Para establecer el llamado al
procedimiento almacenado, se necesita un objeto SqlCommand y
guardarlo como la propiedad SelectCommand de un DataAdapter.
Luego se necesita establecer las propiedades Connection,
CommantText y CommandType.
Se puede establecer el llamado al procedimiento almacenado
visualmente usando las herramientas de Microsoft Visual Studio .Net,
o escribiendo el cdigo necesario para llamar al procedimiento
almacenado. Los siguientes ejemplos muestran los procesos
completos tanto el cdigo como el proceso lgico para llamar a
procedimientos almacenados.
El siguiente ejemplo llama al procedimiento almacenado
ProductCategoryList.
El
procedimiento
almacenado
ProductCategoryList regresa una lista de los IDs y los nombres de
las categoras de la tabla Categories :
Procedure ProductCategoryList
As
SELECT CategoryID,CategoryName
FROM Categories
El siguiente cdigo usa un objeto Conecction y un objeto
DataAdapter para llamar a los registros retornados por el
procedimiento almacenado ProductCategoryList:
C#

SqlDataAdapter daCategory = new SqlDataAdapter();


daCategory.SelectCommand = new SqlCommand();
daCategory.SelectCommand.Connection = conn;
daCategory.SelectCommand.CommandText =
"ProductCategoryList";
daCategory.SelectCommand.CommandType =
CommandType.StoredProcedure;

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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#

SqlDataAdapter daCategory = new SqlDataAdapter


("ProductCategoryList", conn);
daCategory.SelectCommand.CommandType =
CommandType.StoredProcedure;

Ejecutar el Procedimiento almacenado. Para ejecutar el procedimiento


almacenado y guardar los registros regresados en un DataSet, se
llama al mtodo Fill del objeto SqlDataAdapter. Este mtodo llena
un objeto DataTable con los registros regresados por el
procedimiento almacenado.
Por ejemplo, el siguiente ejemplo llena el objeto DataSet ds con los
registros que fueron regresados del procedimiento almacenado
ProductCategoryList usando el SqlDataAdapter daCategory:
C#

daCategory.Fill(ds, "Categories");

Despues de haber llenado un DataTable con los resultados de un


procedimiento almacenado de tipo Select, se puede anlazar el
DataTable a un control de lista enlazada para mostrar los datos.
Usando Parmetros

Introduccin: Cuando se usan procedimientos almacenados en una base de


datos de SQL Server o cualquier otro tipo de base de datos, se

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

137

Programacin Web
pueden usar parmetros para
procedimientos almacenados.

recupero

informacin

de

los

Cuando se usa parmetros con una base de datos en SQL Server,


los nombres de los parmetros que son agregados a la coleccin
Parameters del objeto Command debe coincidir con los nombres de
los parmetros que estn en el procedimiento almacenado; de
cualquier forma, el orden de los parmetros es flexible.
Nota: Cuando se usan parmetros en una base de datos OL DB, el orden de los
parmetros tambin debe coincidir en la coleccin Parameters con
el orden de los parmetros que estn definidos en el procedimiento
almacenado.
La siguiente tabla describe los tipos de parmetros disponibles con
los procedimientos almacenados.
Parmetro
Input

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

138

Programacin Web
Pasando Parmetros de Entrada

Introduccin. Despus de haber identificado los parmetros que un


procedimiento almacenado soporta, se necesita agregar los
parmetros que se usaran en la coleccin Parameters del objeto
Command.
Para crear un parmetro, se crea un objeto SqlParameter nuevo con
el nombre y el tipo de dato del parmetro, igual que el especificado
en el procedimiento almacenado. Lo siguiente es establecer la
propiedad Direction del parmetro para indicar al procedimiento
almacenado como usar el parmetro. Si el procedimiento
almacenado regresa algn valor, se crea un parmetro llamado
returnValue. Si el parmetro es de entrada, la propiedad Value se
establece para especificar el dato que debe ser enviado al SQL
Server.
Por ejemplo, el procedimiento almacenado ProductsByCategory
toma un parmetro de entrada, llamado @CategoryId del tipo int,
como se muestra en el siguiente cdigo:
Procedure ProductsByCategory (
@CategoryID int )
As
SELECT ProductID, ModelName, UnitCost, ProductImage,
Chairman
FROM Products
WHERE CategoryID=@CategoryID

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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#

SqlParameter workParam1 = new SqlParameter


("@CategoryID", SqlDbType.Int);
workParam1.Direction = ParameterDirection.Input;
workParam1.Value = Convert.ToInt16(txtStartDate.Text);

Nota: Siempre se debe validar el contenido de la caja de texto antes


de enviar la entrada al procedimiento almacenado. Por sencillez, el
cdigo anterior no lo hace.
Despus de haber creado el objeto Parameter, se usa el mtodo
Add de la coleccin Parameters del objeto SellectCommand. Si un
procedimiento almacenado tiene ms de un parmetro, no importa
en que orden se agreguen porque se estn creando por nombre:
C#

SqlDataAdapter daSales = new SqlDataAdapter();


daSales.SelectCommand = new SqlCommand();
daSales.SelectCommand.Connection = conn;
daSales.SelectCommand.CommandText
"ProductsByCategory";
daSales.SelectCommand.CommandType =
CommandType.StoredProcedure;
daSales.SelectCommand.Parameters.Add(workParam1);

Corriendo un procedimiento almacenado: Despus de haber creado el objeto


Command, se usa el mtodo Fill para correr el procedimiento
almacenado y recuperar los registros:
C#
ds = new DataSet();
daSales.Fill(ds, "Products");

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

140

Programacin Web
Usando Parmetros de Salida

Introduccin. Para leer el valor de un parmetro de salida, o leer el valor


regresado desde un registro que arrojo el procedimiento
almacenado, se necesita acceder al valor del parmetro de salida de
la coleccin Parameters despus de haber ejecutado el
procedimiento almacenado.
Ejemplo del uso de parmetros de salida: El procedimiento almacenado
OrdersCount toma un ID de cliente y regresa el nmero de ordenes
destacado que un cliente tenga, pero no de las ordenes actuales. El
procedimiento almacenado usa los parmetros de entrada
@CustomerID y el de salida @ItemCount, ambos de tipo int, como
se muestra en el siguiente procedimiento almacenado:
Procedure OrdersCount (
@CustomerID int,
@ItemCount int OUTPUT )
As
SELECT @ItemCount=COUNT(OrderID)
FROM Orders
WHERE CustomerID=@CustomerID
Debido a que el anterior procedimiento almacenado regresa un
nmero de filas, y este no regresa los datos en esas filas, no se
necesita usar un objeto DataAdapter. En vez de ello, se puede usar
un objeto Command directamente, y llamar al mtodo
ExecuteNonQuery para correr el procedimiento almacenado.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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();

Leyendo parmetros de salida. Si se estn recuperando valores de


un procedimiento almacenado que regresa un valor o un conjunto de
parmetros de salida, se necesita usar el mtodo Value en la
coleccin Parameters regresada. Se puede hacer referencia al valor
del parmetro de salida mediante el nombre o el ndice. El siguiente
ejemplo devuelve el valor del parmetro de salida @ItemCount por
nombre:
C#
curSales =
myCmd.Parameters["@ItemCount"].Value;

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

142

Programacin Web
Quizz3
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.

Qu ventaja tiene utilizar ADO.NET?


Para qu sirven los espacios de nombres?
Cules son los pasos para crear una conexin?
Cules son las funciones de un DataSet?
Para qu sirve un DataAdapter?

Quizz4
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.

Qu son los controles de enlace de datos?


Enumera al menos cinco controles de enlace de datos que no aparezcan en
el material de apoyo (sug ve la ayuda de .Net)?
Cules son las propiedades que poseen todo control de enlace de datos y
para qu sirven?
Cmo se realizan las conexiones entre un DataAdapter y un control de
enlace de datos?

Quizz6
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.

Escribe cules son la s diferencias entre utilizar un DataSet y un


DataReader?
Por qu consideras que es importante establecer modos de autenticacin
en tus aplicaciones Web?
Cmo se crean las conexiones y qu parmetros intervienen?
Qu metodologa se utiliza para crear un objeto DataSet?
Explica brevemente los mtodos del objeto Tables del objeto DataSet?

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?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

143

Programacin Web
Quizz8
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.

Con tus palabras como definiras el DataReader?


Qu ventajas tiene tu aplicacin Web al usar un DataReader?
Cules son los pasos para crear y utilizar un DataReader?
Cmo se manejan los errores para un DataReader?
Cmo lees los datos desde un DataReader, enumera y explica los
mtodos?

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:

Crea una forma Web y nmbrala Prctica8.aspx


Abre el Explorador de Servidores, expande el directorio Servidores
Escoge el icono con el nombre con el que identificas a la mquina
Elige la opcin pubs y selecciona alguna de las tablas y arrstrala hacia la
forma Web (en ese momento se crearn dos objetos sqlConnection1 y
sqlDataAdapter1, automticamente).
Haz clic derecho en el objeto sqlDataAdapter1 y selecciona la opcin Ver
Datos.
En ese cuadro de dilogo, selecciona la opcin Llenar el Conjunto de Datos
(DataSet), para que se muestren los registros existentes en la Base de Datos.
Cierra el cuadro de dilogo.
Observa el cdigo detrs del formulario (recuerda que tiene extensin cs.aspx),
se ha generado cdigo de recuperacin, modificacin y borrado de los datos
sobre el objeto DataAdapter.

Poscondiciones: Se cuenta con un formulario Web, listo para la insercin y enlace


de otros objetos para darle una presentacin estilizada a los datos.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

144

Programacin Web
Prctica 9
Controles de Enlace de Datos
Precondiciones: Haber realizado la forma Web Prctica8.aspx.
Instrucciones:

Abre la forma Prctica8.aspx y renombrala Practica9.aspx


Haz clic derecho en el objeto sqlDataAdapter1, y a continuacin haz clic en
la opcin Generar el Conjunto de Datos (DataSet), en el cuadro de dilogo
que aparece, nombra al DataSet DataSet1.
Utiliza la barra de herramientas, arrastra un control de tipo Button y un
control DataGrid a esta forma.
Selecciona el control DataGrid y establece la propiedad DataSource a
DataSet1 y establece la propiedad DataMember, con el nombre de la tabla
que seleccionaste en la Prctica8.
Crea un procedimiento del evento Click para el control Button y agrega el
siguiente cdigo para llenar el objeto DataSet y enlazar la tabla que
seleccionaste para el control DataGrid.
sqlDataAdapter1.Fill(dataSet1);
DataGrid1.DataBind();

En el Explorador de Proyectos, haz clic derecho en Practica9.aspx y luego


haz click en la opcin Generar y Explorar.
Haz doble click en la forma y localiza el evento Page_Load .
Retira las dos lneas del evento Click d el control button, de forma que luzca
de la siguiente forma:
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
sqlDataAdapter1.Fill(dataSet1);
DataGrid1.DataBind();
}
}

En el Explorador de Proyectos, haz clic derecho en Practica9.aspx y luego


haz click en la opcin Generar y Explorar.
Haz clic en el control Button, el control DataGrid muestra los datos sin tener
que leer cada vez stos, desde la base de datos.
Observa el cdigo detrs del formulario (recuerda que tiene extensin
cs.aspx), se ha generado cdigo de recuperacin, modificacin y borrado
de los datos sobre el objeto DataAdapter.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

145

Programacin Web
Prctica 10
Estableciendo la seguridad en SQL Server
Instrucciones:

En el men Inicio , haz clic derecho en MiPC, y haz clic en administrar


En la seccin Administracin del Equipo expande Servicios y dirigete a los
directorios de SQL.
Haz clic derecho en la ubicacin local de SQL Server y entonces selecciona
Propiedades.
En el cuadro de dilogo anterior en la pestaa Seguridad, selecciona la
opcin Autenticacin solo de Windows, y da clic en aceptar.
Abre la forma SQLSecurityModes.aspx, en el proyecto Mod10Cs en
la solucin 2310Demos y haz clic derecho en Generar y Examinar.
Haz clic en Utilizar Seguridad Integrada, y haz clic en Conseguir Datos, se
genera un error porque el usuario no existe en el SQL Server.
Por lo que es necesario, crear un nuevo usuario para SQL Server, para eso
selecciona Administracin del Equipo, expande SQL Server y expande la
seccin Seguridad.
Haz clic derecho en usuarios y selecciona nuevo usuario.
En el cuadro de dilogo de Usuarios de SQL Server, escribe CohoUser, en
el campo nombre, selecciona Autenticacin SQL Server en la seccin
Autenticacin, y escribe como password lCoho, y da clic en Aceptar.
Abre nuevamente la forma SQLSecurityModes.aspx y haz clic derecho en
Generar y Examinar.

Prctica 11
Estableciendo la seguridad en SQL Server
Instrucciones:

Abre la forma UseRelations.aspx en el Mod10CS y ha z clic derecho en


Generar y Examinar.
Revisa el cdigo detrs de la pgina.
Haz clic derecho en el proyecto Mod10, haz clic en Agregar y selecciona
Agregar Nuevo Elemento.
Selecciona Asistente para crear una Forma de Datos, y entonces haz clic
en Abrir.
Sigue las instrucciones, y establece las siguientes propiedades:
o Nombra el DataSet dsCustOrders
o Selecciona la conexin existente o crea una nueva en la Base de
Datos NorthWind.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

146

Programacin Web

o Agrega las tablas Customers y Orders, en la lista de artculos


seleccionados.
o Crea una relacin entre las tablas Customers y Orders, nombra la
forma CustOrders, y selecciona CustomerID como la llave para
ambas tablas.
Haz clic en la forma CustOrders.aspx en el Explorador de Soluciones, y
dale Generar y Examinar.
En el explorador haz clic en Cargar (Load), as el control DataGrid
almacenar los registros de la tabla Customers.
Haz clic en Show Details.

Prctica 12
Mostrando datos a travs de DataReaders
Instrucciones:

Abre la forma DataReader.aspx en el Mod10CS y haz clic derecho en


Generar y Examinar.
Lee el cdigo detrs de la pgina, y observa las dos formas en que se
pueden llenar los controles listbox con la informacin del objeto
DataReader.
Indica con un comentario sobre el objetivo del cdigo, dentro de la forma, y
localiza, las siguientes secciones de cdigo en el evento Page_Load:
o Donde se crea el objeto SqlConnection.
o Donde se crea el objeto SqlCommand
o Donde se crea el objeto DataReader.
o Donde se enlaza el objeto DataReader al primer control listbox.
o Donde se cierra el objeto DataReader, y se crea de nuevo.
o Donde se agrega paso a paso los registros del DataReader a la
segundo control listbox.

Prctica 13
Mostrando datos desde un procedimiento almacenado
Instrucciones:

Crea una nueva Aplicacin Web y establece su localizacin a


http://localhost/Mod11PracticeCS.
Abre la forma WebForm1.aspx
Abre el Explorador de Servidores y expande los siguientes directorios,
primero el nombre de t mquina, luego Servidores SQL, luego selecciona
la Base de Datos Northwind y luego selecciona Procedimientos
Almacenados.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

147

Programacin Web

Selecciona el procedimiento Ten Most Expensive Products, y arrstralo a la


forma Web.
Usa el cuadro de dilogo, para agregar un control DataGrid.
Crea en el evento Page_Load, y agrega el cdigo siguiente, para crear el
objeto DataReader, desde el objeto SqlCommand, para enlazarlo al
DataGrid.
using System.Data.SqlClient;
SqlDataReader dr;
sqlConnection1.Open();
dr = sqlCommand1.ExecuteReader();
DataGrid1.DataSource = dr;
DataGrid1.DataBind();
dr.Close();
sqlConnection1.Close();

Genera y examina la forma.

Prctica 14
Pasando Parmetros
Instrucciones:

Abre la forma SPUseParameters.aspx, en el Modulo11CS y selecciona


Generar y Examinar.
Introduce los datos para los campos Beginning Date y Ending Date, y haz
clic en la opcin Sales by Year.
Revisa el cdigo detrs de pgina de la forma SPUseParameters.aspx
En el evento cmdSale_Click, indica entre comentarios el cdigo donde se
hace lo siguiente:
o Se crea el objeto SqlConnection.
o Se crea el objeto SqlDataAdapter, y coloca las propiedades del
SelectCommand, para llamar al procedimiento almacenado Sales by
Year.
o Se crean dos parmetros de entrada
o Se crea un nuevo DataSet y se llena desde el DataAdapter.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

148

Programacin Web

3.5. Trabajo con Objetos


Objetivos
En este tema estudiars la forma de encapsular funcionalidades desde la
perspectiva de componentes empresariales y utilizarlos en el desarrollo de
cualquier Aplicacin Web.
Actividad
Exposicin 1: Componentes en .Net
Objetivos
En este tema estudiars la forma de encapsular funcionalidades desde la
perspectiva de componentes empresariales y utilizarlos en el desarrollo de
cualquier Aplicacin Web.
Instrucciones
a. Revisa el material del documento Objetos (1-7) para que conozcas como
funcionan las jerarquas de clases en ASP.NET, as como la forma en que se
realiza un componente para su uso posterior en una Aplicacin Web.
b. Contesta el cuestionario correspondiente Quiz10.doc.
c. Realiza el ejercicio Prctica15.doc, para comprobar tus conocimientos sobre la
elaboracin de componentes en tus aplicaciones.

Productos esperados / Evaluaciones


Este tema se evaluar con el cuestionario enviado y la Prctica15, contar con el
2% de la calificacin final, siempre y cuando lo entregues en la fecha y con el
formato adecuado (pdf).

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

153

Programacin Web
4.

En la caja Nombre, escribe el nombre de tu nueva librera de clases, y


entonces da clic en Aceptar.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Qu son los espacios de nombres?


Cul es la diferencia entre la declaracin de objetos implcita y explcita?
Cul es la diferencia entre clase y componente?
Cmo creas una clase en .NET?
Cul es la metodologa para usar componentes en una forma Web?

Prctica 15
Creando una clase
Instrucciones:

Crea un nueva librera de clase en C#, llamada HolaMundo.


Observa como se ha creado el archivo Class1.cs
Crea el mtodo Hola
public string Hola()
{
return "Hola desde un componenteC# .";
}

Genera el proyecto
Crea una nueva Aplicacin Web y agrgala a tu solucin actual.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

156

Programacin Web

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
Localiza el control Button y genera su evento Clic y agrega el siguiente
cdigo.
HelloWorld.Class1 x = new HelloWorld.Class1();
Button1.Text = x.Hello();

Genera y examina la forma WebForm1.aspx y haz click en el botn.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Cuando accedes a la pgina de descripcin de un servicio Web XML, el


navegador despliega los mtodos disponibles del servicio Web XML. Selecciona
un mtodo Web para ver los parmetros requeridos para un mtodo Web.
La siguiente ilustracin muestra una vista del navegador resultante de la seleccin
del mtodo Web GetRating del servicio Web XML Stocks.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

163

Programacin Web

Adems puedes seleccionar la liga de Descripcin del Servicio en la parte superior


la pgina de descripcin HTML para ver el contrato WSDL, el cual contiene una
descripcin XML del servicio Web XML y su contenido.
Para llamar un mtodo Web, llenas la forma y entonces das clic en Invoke. La
forma Web pasa el nombre del mtodo, los parmetros requeridos y los valores de
los parmetros del URL del servicio Web XML.
Los servicios Web XML siempre regresan datos en un formato XML. La siguiente
ilustracin muestra una vista del navegador donde muestra el resultado de invocar
el servicio Web XML Stock con el parmetro Contoso.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

164

Programacin Web
LECCIN: USANDO UN PROXY PARA LLAMAR UN SERVICIO WEB XML

Usando Proxies para llamar Servicios 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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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>

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Miembros construidos dentro del Proxy

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.

Miembros heredados de SoapHttpClientProtocol

Un Proxy hereda un nmero de mtodos y propiedades de la clase


System.Web.Services.Protocols.SoapHttpClientProtocol que puede ser usada
para manejar interacciones con el servicio Web XML. Algunas de las propiedades
del Proxy incluyen las propiedades: Timeout, Url.
CMO USAR UN PROXY PARA LLAMAR UN SERVICIO WEB XML?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

1. Abre la aplicacin Web y la forma Web desde la cual llamars a el servicio


Web XML, y entonces crearas una referencia Web para el servicio Web
XML:
a. En el men Proyecto, clic a Agregar Referencia Web.
b. En el campo Direccin de la caja de dialogo Agregar Referencia Web,
escribe el URL del servicio Web XML que estas accesando, presiona
ENTER y entonces da clic en Agregar Referencia.
Visual
Estudio
.NET
crea
una
referencia
Web
a
http://localhost/Stocks/Service1.asmx, Visual Studio .NET nombrar a la referencia
Web localhost por default.

2. En un procedimiento de evento en la Forma Web, crea una instancia del


Proxy del servicio Web XML.
Por ejemplo, si tienes un botn para llamar al mtodo GetRating del servicio Web
XML Stocks, usa el siguiente cdigo en el evento Clic:
Dim ProxyGetStocks As New GetStocks.localhost.Service1()
GetStocks es el nombre de la aplicacin Web, localhost es el nombre de la
referencia Web y Service1 es el nombre del S ervicio Web.

3. Llama a el mtodo Web del servicio Web XML:


Label1.Text = ProxyGetStocks.GetRating("Contoso")
El cdigo completo en el procedimiento de evento button_Click quedara as:
Sub Button1_Click(s As Object, e As EventArgs) _
Handles Button1.Click
Dim ProxyGetStocks As New _
GetStocks.localhost.Service1()
lblResults.Text = ProxyGetStocks.GetRating("Contoso")
End Sub

4. Construye el Proyecto de Aplicacin Web de ASP.NET


Compila la aplicacin Web seleccionando Construir en el men Construir.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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?

XML es un formato universal que es usado para describir e intercambiar


documentos estructurados y datos en Internet. Adems se considera un
subconjunto de SGML (Standard Generalizad Markup Language), esto es debido a
que asegura que la estructura de los datos ser uniforme e independiente de las
Aplicaciones Web.
XML describe como son estructurados los datos, ms no como deben ser
mostrados o usados, adems es muy parecido al lenguaje HTML, los documentos
XML contienen etiquetas que le asignan el significado al contenido del documento.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

174

Programacin Web
Un documento XML se compone de los siguientes elementos:

Instrucciones de Procesamiento : en este apartado se le indican todas las


instrucciones pertinentes al motor XML.
Elementos: se componen de etiquetas de inicio y fin, as como todo tipo de
etiquetas anidadas del mismo estilo (elementos hijos)
Atributos: se encargan de definir los datos que pertenecen a un elemento
simple, por lo regular se declaran seguidos de un valor determinado.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

175

Programacin Web

As XML se utiliza en los DataSets de las formas siguientes:

Datos Serializados: La informacin almacenada en un DataSet, con toda su


estructura (tablas, columnas, tipos de datos y restricciones), se puede
guardar como un documento XML.
Esquemas (Schemas): La versatilidad y flexibilidad de XML, provee un
formato conveniente para transmitir el contenido de un DataSet hacia y
desde clientes remotos, es decir se pueden generar esquemas teniendo un
DataSet y viceversa.
Sincronizar y transformar datos: utilizando distintos objetos XML, con los
datos provistos por los DataSets.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

As en la primera seccin de cdigo, se indica la manera de llenar ds, que es una


instancia de la clase DataSet, a continuacin se solicita al mtodo ReadXml que
lea la informacin a partir del archivo filename.xml proveniente del servidor, as el
mtodo Server.MapPath regresa la direccin fsica del archivo que corresponde a
la ruta virtual especfica en el Servidor Web.
Si lo que se desea es escribir el contenido del DataSet a un archivo, entonces se
realizan las operaciones de la segunda seccin, es decir primero se declara el
objeto ds, posteriormente es necesario declarar da, que es una instancia de la
clase SqlDataAdapter, cuyo objetivo es ser un punto de enlace entre la conexin a
una Base de Datos y el DataSet, as da(SqlDataAdapter), realiza la consulta SQL
con una cierta conexin conn, despus mediante su mtodo fill, llena ds con la
informacin correspondiente, y posteriormente ds vaca su informacin a travs de
su mtodo WriteXml, en el archivo filename.xml.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

La Plataforma .Net mantiene independientes los objetos de acceso a datos de los


que generan y manipulan documentos XML, para mantener mayor flexibilidad;
ms habilita el acceso sncrono en tiempo real, estableciendo una comunicacin
directa entre el objeto DataSet y sus componentes, con el objeto
XmlDataDocument.
Cuando un DataSet es sincronizado con un objeto XmlDataDocument, ambos
objetos se encuentran trabajando con el mismo conjunto de datos, y esto es una
gran ve ntaja debido a que se preserva la fidelidad del documento XML, razn que
no resulta tan efectiva al utilizar los mtodos ReadXml y WriteXml, puesto que los
datos pueden diferir del documento XML original, pues el DataSet no mantiene el
formato (espacios en blanco o informacin jerrquica), adems de que ignora
elementos de XML que no se enlacen con el esquema del DataSet.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

178

Programacin Web
La forma de sincronizar estos dos objetos se presenta a continuacin:

En el segundo prrafo de la primera seccin, aparece el cdigo en C#, aqu se


Indica como almacenar datos XML dentro de un XmlDataDocument, en la primera
lnea se declara una nueva instancia de tipo XmlDataDocument llamado
objXmlDataDoc, luego en la segunda lnea se carga el archivo file.xml a este
objeto. Cabe mencionar que tambin se puede utilizar la lnea alterna siguiente,
pues objXmlDataDoc tiene como componente un DataSet y por lo tanto puede
cargar el archivo mediante el mtodo ReadXml con sus respectivos argumentos.
En el segundo prrafo de la segunda seccin, tenemos el cdigo en C# para
almacenar un DataSet en un XmlDataDocument, simplemente se crean el DataSet
ds, despus se procede al llenado de ds, para despus crear el objeto
objXmlDataDoc y pasar como argumento a su constructor el objeto ds, y as
enlazar los dos objetos.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

179

Programacin Web

Como se muestra en la diapositiva anterior, con el XmlDataDocument podemos


desde mostrar datos en distintos controles Web, hasta extraer filas con el formato
XML. En la primera seccin se enlaza el origen de los datos que extraer el
control dg (DataGrid), para que muestre todos los registros provenientes del
DataSet del objeto objXmlDataDoc.
En la segunda seccin, aparece el cdigo que extrae el primer registro (fila), de la
primera tabla que pertenece al DataSet ds, esto se realiza mediante el mtodo
GetElementFromRow del objeto objXmlDataDoc, que regresa un objeto de tipo
XmlElement.
Quizz11
Fecha: ___________________
Tema: __________________________________________________
Alumno: __________________________________________________
Tutor: __________________________________________________
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.

Qu es un servicio Web XML?


Cul es la ventaja de usar servicios WebXML?
Explica que es UDDI
Explica que es el WSDL
Qu es un proxy?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

180

Programacin Web
Prctica 16
Usando un proxy para llamar un servicio Web
Instrucciones:

Crea una nueva Aplicacin Web, y llmala GetWeatherCS.


Agrega una Referencia Web al servicio Web XML localizado en
http://localhost/Mod13CS/WeatherService.asmx, esto crear un proxy y una
nueva referencia Web, llamada localhost en el Explorador de Soluciones.
Renombra la referencia Web como WeatherWebRef.
Abre la forma WebForm1.aspx en la forma vista diseo y agrega un control
Text Box, un control Button y un control Label a la forma.
Genera el evento clic para el control Button y agrega el cdigo siguiente:
private void Button1_Click(object sender,
System.EventArgs e)
{
GetWeatherCS.WeatherWebRef.WeatherService
ProxyGetWeather = new
GetWeatherCS.WeatherWebRef.WeatherService();
Label1.Text = ProxyGetWeather.WeatherByCity(TextBox1.Text);
}

Genera y examina la forma WebForm1.aspx


Prueba el servicio web, escribe Seattle en el control Text Box, y haz clic en
el botn, despus escribe el nombre de otra ciudad, como London, y
presiona el botn nuevamente.(tips: si introduces Seattle la respuesta debe
ser sun, mientras que si introduces otra ciudad la respuesta vara entre sun,
cloudy o rain).

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

181

Programacin Web

4.2. Escritura de Servicios Web


Objetivos
En este tema conocers la metodologa necesaria para crear un servicio Web de
XML sencillo.
Actividad
4.2 Escritura de Servicios Web
Objetivos
En este tema conocers la metodologa necesaria para crear un servicio Web de
XML sencillo.
Instrucciones
a. Revisa el material del documento ServiciosWeb para que conozcas la
metodologa a seguir para la realizacin de un ServicioWeb.
b. Contesta el cuestionario correspondiente Quiz12.doc.
c. Realiza el ejercicio Prctica17.doc, para que te des cuenta de lo fcil que resulta
crear un Servicio Web.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica17 y contar con el
2% de la calificacin final, siempre y cuando lo entregues en la fecha y con el
formato adecuado (pdf).
Quizz12
Fecha: ___________________
Tema: __________________________________________________
Alumno: __________________________________________________
Tutor: __________________________________________________
Instrucciones: contesta cada una de las preguntas brevemente.
1. Cuando creamos un servicio Web XML en .NET se crean dos tipos de archivos.
Cuales son ? y que contienen?
2.

Cul es la clase por default en un servicio Web XML?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

182

Programacin Web
3.

Cul es la pgina por default en un servicio Web XML?

4.

Explica para que se utiliza el atributo Language en las pginas .asmx

5.
Explica para que reutiliza el atributo Codebehind page en las pgina s
.asmx
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.
Crea la funcin GetRating de la siguiente forma:
[WebMethod]
public string GetRating(String Ticker)
{
if (Ticker == "Contoso")
return "Buy";
else
return "Sell";
}

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.

Nota: si surge un comentario acerca del espacio de nombres, establece como


espacio de nombres, el espacio de nombres por defecto.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

183

Programacin Web

4.3. Utilizacin de datos en Servicios Web.


Objetivos
En este apartado aprenders la forma en que se devuelven los conjuntos de
datos, desde los mtodos de Servicios Web.
Actividad
4.3 Utilizacin de datos en servicios Web XML
Objetivos
En este apartado aprenders la forma en que se devuelven los conjuntos de
datos, desde los mtodos de Servicios Web.
Instrucciones
a. Revisa el material del documento ServiciosWeb (21-23) para que conozcas la
Arquitectura de XML, as como la manera de manipular los datos con XML.
b. Contesta el cuestionario correspondiente Quiz13.doc.
c. Realiza el ejercicio Prctica18.doc, para que practiques la lectura y escritura
desde un DataSet hacia un documento XML.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica18 contar con el
2% de la calificacin final, siempre y cuando lo entregues en la fecha y con el
formato adecuado (pdf).
Materiales de apoyo
Quizz13
Fecha: ___________________
Tema: __________________________________________________
Alumno: __________________________________________________
Tutor: __________________________________________________
Instrucciones: contesta cada una de las preguntas brevemente.
1.
Qu es el formato XML?
2.
Lista los tipos de elementos de un documento XML
3.
Qu es un objeto DataSet?
4.
Explica el mtodo ReadXML
5.
Explica el mtodo WriteXML
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

184

Programacin Web

5. Optimizacin de Aplicaciones Web

5.1. Estado de la aplicacin


Objetivos
En esta seccin reconocers los estndares abiertos de Internet (HTTP, XML,
SOAP, WSDL) a travs de ejemplos.
Actividad
5.1 Estado de la Aplicacin
Objetivos
En esta seccin aprenders a utilizar las variables de estado de aplicacin y
sesin de una Aplicacin Web.
Instrucciones
a. Revisa el material del documento Optimizacin donde se explica la importancia
de las variables de Aplicacin para almacenar datos con modificaciones poco
frecuentes, as como las ventajas de las variables de sesin para almacenar la
informacin temporal de un usuario.
b. Contesta el cuestionario correspondiente Quiz14.doc.
c. Realiza el ejercicio Prctica19.doc y la Prctica20.doc, para que practiques la
utilizacin de las variables de sesin, as como el uso de los archivos cookies.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado, la Prctica19 y la Prctica20 y
contar con el 2% de la calificacin final, siempre y cuando lo entregues en la
fecha y con el formato adecuado (pdf).

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Al utilizar la tecnologa http, slo se cuenta con formularios estticos, es


decir las pginas Web son destruidas y recreadas cada vez que se realiza una
nueva peticin al Servidor Web. Afortunadamente ASP.NET provee el manejo
del estado que mantiene la informacin en el servidor entre las pginas, lo que
permite conservar la continuidad de la informacin del cliente, cada vez que
visita un sitio Web, as el cliente no necesita, registrarse cada vez que accede
a la pgina.
Existen dos tipos de manejo de estado, del lado del cliente y del lado del
servidor como se muestra a continuacin:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Estado de la Aplicacin: en este caso la informacin se encuentra


disponible para todos los usuarios de la Aplicacin Web, y se conserva
su valor en las variables de Aplicacin provistas por ASP.NET, cuyos
datos idneos para almacenar son los datos compartidos por sesiones
mltiples y que varen con muy poca frecuencia .
Estado de la Sesin: la informacin slo se encuentra disponible para el
usuario de la sesin actual, si este abandona la Aplicacin Web
temporalmente, al retomarla tendr un nuevo estado de sesin, este
estado conserva su valor mediante las variables de Sesin, cuyos datos
ideales a almacenar son datos temporales de las sesiones individuales.
Adems cada sesin se identifica mediante un identificador de sesin
(SessionId), que se almacena en una cookie del lado del cliente y que
se mantiene con vida mientras dure la sesin.
Bases de Datos: con esta opcin si la informacin a almacenar es muy
extensa, se puede almacenar en servidores del estilo SQL Server.

As la informacin se mantiene mediante las variables de Aplicacin,


Del lado del cliente se tienen las opciones siguientes:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

187

Programacin Web

Cookies: es un archivo de texto que permite almacenar datos


esenciales que sean requeridos en la ejecucin, y son ms inseguras
que cualquiera de las opciones manejadas en el lado del servidor.
Propiedad ViewState: al activarse permite retener valores entre las
distintas peticiones de la misma pgina.
Cadenas de Consulta (Query Strings): son cadenas que aparecen al
final del Url, indica ciertos parmetros a considerar.

El archivo Global.asax

El archivo global.asax es un archivo declarativo que es usado para manejar


eventos mientras la Aplicacin Web esta corriendo, y cuenta con las siguientes
caractersticas:

Solo se admite un archivo Global.asax por Aplicacin Web y se almacena


en el directorio virtual de la aplicacin y es opcional.
En este archivo es donde se manipulan los eventos de aplicacin y sesin,
as como sus respectivas variables.
A continuacin se muestra el funcionamiento,
manejan desde el archivo global.asax:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Variables de Sesin y Aplicacin

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";
}

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Se pueden crear estas cookies usando la propiedad Cookies del objeto


Response y la clase Request, as la propiedad Cookies representa una coleccin
de cookies y es una instancia de la clase HttpCookieCollection. El cdigo
siguiente crea una nueva cookie llamada myCookie.
HttpCookie objCookie = new HttpCookie("MyCookie");
DateTime now = DateTime.Now;
As el cdigo que sigue agrega un par de llaves y valores:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

En el modulo14CS, abre el cdigo detrs de pgina de global.asax.


Inicializa una variable de sesin llamada intNumber a 3 para agregar el
cdigo siguiente a l procedimiento Session_Start.
Session["intNumber"] = 3;

Abre las formas UsingSessionVar1.aspx y UsingSessionVar2.aspx, observa


que la variable de sesin es recuperada y desplegada en el evento
Page_Load.

Genera y examina la forma UsingSessionVar1.aspx, el valor de la variable


de sesin 3 es desplegado.

Haz clic en la pgina siguiente, entonces se abrir la pgina


UsingSessionVar2.aspx, que incrementar el valor de la variable de sesin
por 4 y desplegar su nuevo valor 7.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

196

Programacin Web

Para comprobar que el valor de 7 no ha cambiado, da clic en Previous


Page, para que regreses a UsingSessionVar1.aspx y veas que en esa
pgina el valor ya se actualizo de 3 a 7.

Prctica 20
Usando Variables y Cookies
Instrucciones:

Abre Internet Explorer y examina el URL


http://instructorsmachine/Mod14CS/default.aspx.
Escribe tu nombre en el control Text Box, selecciona un color del control
List Box que aparece y haz clic en Submit.
As sers redireccionado a la forma results.aspx, la cual muestra tu nombre,
el color seleccionado y la fecha y hora de cuando fue tu ltimo acceso a la
forma default.aspx.
Presiona la opcin Actualizar del Explorador unas cuantas veces (lo que
ocasionar que en cada actualizacin se incremente el nmero de
visitantes ms el resto de la informacin se conservar igual).
Cierra Internet Explorer.
Vuelve a abrir Internet Explorer y examina el URL:
http://instructorsmachine/Mod14CS/results.aspx. Nota que todos los datos
apareen excepto el color q ue previamente seleccionaste no aparece.
Escribe como comentarios, las respuestas a las siguientes preguntas y
ubicalos en la seccin donde se encuentra la respuesta, anexando el
porque de ella.
1. Cul es la razn de que el nombre sea recordado cuando visitas
nuevamente la pgina y la eleccin del color no?
2. Gracias a que objeto se actualiza el nmero de visitantes?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

197

Programacin Web

5.2. Servicios de Cach


Objetivos
En este tema aprenders el funcionamiento de las clases de cach que dispone
ASP.NET para mejorar el rendimiento de las Aplicaciones.
Actividad 1

5.2.1. Usando el objeto cach


Objetivos
En esta seccin conocers las ventajas de utilizar el objeto Cach para almacenar
informacin a la que necesites acceder de forma continua.
Instrucciones
a. Revisa el material de apoyo donde se explican los conceptos bsicos del objeto
cach, as como su funcionamiento.
b. Contesta el cuestionario correspondiente Quiz15.doc.
c. Realiza el ejercicio Prctica21.doc, para que experimentes la diferencia entre
usar el objeto cach y no utilizarlo.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica21 y contar con el
2% de la calificacin final, siempre y cuando lo entregues en la fecha y con el
formato adecuado (pdf).
Actividad 2

5.2.2. Almacenamiento en cach de los resultados de pgina


Objetivos
En este tema mostrar las herramientas, para manipular los procesos solicitud/
respuesta almacenando en cach el contenido generado en pginas dinmicas.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

5.2.3. Almacenamiento en cach de fragmentos de pgina


Objetivos
En este tema se darn las herramientas, para mantener en el cach ciertas
secciones de la pgina en un periodo de tiempo especfico.
Instrucciones
a. Revisa el material de apoyo para que conozcas el funcionamiento del cach de
fragmentos de pgina, as como sus ventajas.
b. Contesta el cuestionario correspondiente Quiz17.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).

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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);

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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);

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Crea un nueva librera de clase en C#, llamada HolaMundo.


Observa como se ha creado el archivo Class1.cs
Crea el mtodo Hola
public string Hola()
{
return "Hola desde un componenteC# .";
}

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

204

Programacin Web

Localiza el control Button y genera su evento Clic y agrega el siguiente


cdigo.
HelloWorld.Class1 x = new HelloWorld.Class1();
Button1.Text = x.Hello();

Genera y examina la forma WebForm1.aspx y haz click en el botn.

Prctica 16
Usando un proxy para llamar un servicio Web
Instrucciones:

Crea una nueva Aplicacin Web, y llmala GetWeatherCS.


Agrega una Referencia Web al servicio Web XML localizado en
http://localhost/Mod13CS/WeatherService.asmx, esto crear un proxy y una
nueva referencia Web, llamada localhost en el Explorador de Soluciones.
Renombra la referencia Web como WeatherWebRef.
Abre la forma WebForm1.aspx en la forma vista diseo y agrega un control
Text Box, un control Button y un control Label a la forma.
Genera el evento clic para el control Button y agrega el cdigo siguiente:
private void Button1_Click(object sender, System.EventArgs e)
{
GetWeatherCS.WeatherWebRef.WeatherService
ProxyGetWeather = new
GetWeatherCS.WeatherWebRef.WeatherService();
Label1.Text = ProxyGetWeather.WeatherByCity(TextBox1.Text);
}

Genera y examina la forma WebForm1.aspx}


Prueba el servicio web, escribe Seattle en el control Text Box, y haz clic en
el botn, despus escribe el nombre de otra ciudad, como London, y
presiona el botn nuevamente.(tips: si introduces Seattle la respuesta debe
ser sun, mientras que si introduces otra ciudad la respuesta vara entre sun,
cloudy o rain).

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

Crea la funcin GetRating de la siguiente forma:


[WebMethod]
public string GetRating(String Ticker)
{
if (Ticker == "Contoso")
return "Buy";
else
return "Sell";
}

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.

Nota: si surge un comentario acerca del espacio de nombres, establece como


espacio de nombres, el espacio de nombres por defecto.
Prctica 22
Cach de resultados de pgina
Instrucciones:
En el modulo Mod15CS abre la forma OutputCache.aspx
Observa el cdigo que obtiene el tiempo y la fecha actual en una etiqueta.
Genera y examina la pgina
Recarga la pgina varias veces para que observes como los segundos va
cambiando.
Agrega la siguiente directiva a la pgina, despus de la lnea de cdigo que
contiene la directiva:
<%@ OutputCache Duration="10" VaryByParam="none"%>

Genera y examina la pgina


Recarga la pgina varias veces para mostrar que los segundos ahora van
cambiando despus de intervalos de 10 segundos.
Abre la forma OutputCacheVaryByParam.aspx
Observa la directiva OutputCache con la propiedad VaryByParam
Genera y examina la pgina
Despus del final del URL, agrega el parmetro ?Name=Someone
Observa el efecto del cach de salida cuando cambia el valor del parmetro
?Name=Someone a ?Name=Someone2

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

5.3.1. Formato del archivo de configuracin


Objetivos
En este tema aprenderemos los elementos y valores de configuracin incluidos en
los archivos de configuracin de ASP.NET.
Instrucciones
a. Revisar el tema en el material de apoyo para que conozcas como se realiza la
configuracin de una Aplicacin Web, as como el formato de los archivos
involucrados.
b. Contesta r el cuestionario correspondiente Quiz18.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).

Actividad 2

5.3.2. Recuperar la configuracin


Objetivos
En este tema se proveern los mecanismos para que utilices los valores de
configuracin ya sea como propiedades o mediante determinadas API.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

ENTENDIENDO LA HERANCIA DE LOS ARCHIVOS DE CONFIGURACIN

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Para que se utiliza el archivo Machine.config ?


Para que se utiliza el archivo Web.config ?
Cul es la ventaja de configurar el archivo Machine.config?
Para que se usa <appSettings> en la configuracin?
Que debe usarse para recuperar la configuracin del archivo Web.config?

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

214

Programacin Web
Quizz19
Fecha: ___________________
Tema: __________________________________________________
Alumno: __________________________________________________
Tutor: __________________________________________________
Instrucciones: contesta cada una de las preguntas brevemente.
1.
2.
3.
4.
5.

Qu es la Autenticacin en aplicaciones Web?


Qu es la Autorizacin en aplicaciones Web?
Lista los mtodos de Autenticacin en ASP.NET
Cul es el mtodo de autenticacin ms comn en ASP.NET?
Que sucede si establecemos el acceso como Anonymous?

5.4. Seguridad
Objetivos
Implementar mecanismos para identificar a los usuarios y controlar el acceso a los
recursos de la Aplicacin Web.
Actividad 1

5.4.1. Autenticacin y Autorizacin


Objetivos
En este tema se estuidarn los diferentes tipos de autenticacin y autorizacin de
usuarios en tus aplicaciones.
Instrucciones
a. Revisar en el material de apoyo los conceptos bsicos sobre la autenticacin, la
autorizacin y sus tipos.
b. Contesta el cuestionario correspondiente Quiz20.doc.
c. Realiza el ejercicio Prctica23.doc, para que practiques la forma de establecer y
mostrar los mecanismos de autenticacin.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

215

Programacin Web

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).
Actividad 2

5.4.2. Autenticacin basada en Windows


Objetivos
En esta seccin conocer la forma de uso de la autenticacin a travs de relacionar
un objeto WindowsPrincipal a la solicitud actual.
Instrucciones
a. Revisar en el material de apoyo el tema de autenticacin basada en Windows su
forma de trabajo y sus ventajas.
b. Contesta el cuestionario correspondiente Quiz21.doc.
c. Realiza el ejercicio Prctica24.doc, para que practiques la forma utilizar esta
autenticacin.
Productos esperados / Evaluaciones
Este tema se evaluar con el cuestionario enviado y la Prctica23 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

5.4.3. Autenticacin basada en formularios


Objetivos
En este tema aprenders como implementar la interfaz de inicio de sesin y la
verificacin de las credenciales respectivas.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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>

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

221

Programacin Web
El mtodo ms comn de autenticacin de seguridad en aplicaciones Web
ASP.NET es la autenticacin basada en formularios.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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:

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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";
}
}

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

230

Programacin Web

6. Aplicaciones de Sitios Web


Objetivos
En esta unidad se propone un proyecto, donde aplicars todos los conocimientos
aprendidos en las unidades anteriores.

Descripcin del proyecto


Se desea crear un sitio Web de consulta de Discos Compactos existentes en una
Tienda. Se debe presentar un men de CDs por gnero (al menos 5 gneros
diferentes), Al seleccionar un determinado gnero se deber mostrar los discos que
actualmente pertenecen a ese g nero. Y al seleccionar un CD de un determinado
gnero mostrara una descripcin del CD, incluyendo portada, los tracks, el ao de
edicin del CD, la duracin en tiempo de cada track, los autores, y el precio. Esta
informacin deber ser enviada a algn usuario va correo electrnico.
Consideraciones Importantes para la realizacin del proyecto:

El sistema debe contemplar una base de datos

La interfaz (pgina) debe ser amigable, con imgenes, frames y texto

El sistema debe llevar control del nmero de usuarios que visitan el sitio

La pgina debe contener un servicio Web que informe acerca de la cantidad


de usuarios que han visitado 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.

b. Elabora el prototipo 1 de tu sistema. Este debe incluir la base de datos y la


interfaz
c. Enva el prototipo a tu tutor para observaciones

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

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.

Productos esperados / Evaluaciones


a. Este tema se evaluar con la distribucin de la aplicacin en Internet, y contar
con el 40% de la calificacin final, siempre y cuando lo entregues en la fecha y con
el formato adecuado (pdf).
b. El proyecto deber estar montado en un servidor Web, para lo cual debes enviar
la direccin para revisar el proyecto.
c. Debes enviar a tu tutor el cdigo fuente (todo el proyecto) de la aplicacin.

Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.

232