Cliente (navegador)
Cliente (navegador)
Cliente (navegador)
Internet
Servidor con
Aplicacin web
Qu
es
ASP.NET?
Plataforma de para construir Aplicaciones Web y
Servicios Web que funcionan bajo IIS.
Parte del Framework .NET
Tecnologa del lado del servidor
Lenguajes ASP.NET
Orientados a Objeto
Dirigidos por Eventos
Compilados en el Servidor
C#
VB.NET
Jscript.NET
J#
Web
Forms
ASP.NET
C# VB.NET J# C++
Windows
Forms
Capa de clases
destinadas a servicios
web, pgs. web y form.
windows
Ejecucin
Cmo funciona?
Internet
Intranet
Extranet
Servidor
Cliente
(II)
Respuesta HTML
(II)
Generacin
Compilacin
Instancia
del proceso
Slo la
primera vez
Conjunto de cach
Datos de estado de sesin
Directorio virtual
IIS
Dominio aplicacin
Pginas web
Servicios web
Archivos de
configuracin
Datos de sesin
y aplicacin
</form>
En
VisualStudio
Sitio
Web
o
Proyecto
Web?
SiAo
Web:
conjunto
de
pginas
Web
independientes.
Para
pginas
Web
sencillas
(ej,
pgina
Web
personal)
En
Visual
Studio
Dnde
se
guarda
la
aplicacin?
File system
C:\Documents and Settings\aaaa\Mis documentos
\Visual Studio 2005\WebSites\WebSite2
http://localhost:3371/WebSite2/Default.aspx
Code-inline
vs
Code-behind
}
}
Etiquetas declarativas
nico archivo
(Code-inline)
cdigo
<etiquetas>
Form1.aspx
<etiquetas> cdigo
Form1.aspx
Form1.cs
Code-behind
El cdigo para manejar eventos se sita en un archivo
fsico separado de la pgina que contiene los
controles de servidor y las etiquetas.
Extensin .aspx
Extensin .cs, .vb (code-behind)
Expander, contraer
Indice
1.
2.
3.
4.
5.
Pginas
maestras
Controles
de
servidor
Eventos
Maquetacin
con
CSS
Navegacin
entre
WebForms
Pginas
maestras
Pgina
maestra
Las
pginas
maestras
permiten
crear
un
diseo
coherente
para
las
pginas
de
la
aplicacin.
Se
puede
denir
el
aspecto,
el
diseo
y
el
comportamiento
estndar
que
desea
que
tengan
todas
las
pginas
(o
un
grupo
de
pginas)
de
la
aplicacin
en
una
sola
pgina
maestra.
A
conAnuacin,
se
crean
pginas
de
contenido
individuales
que
incluyan
el
contenido
que
desea
mostrar.
Ventajas
Realizacin
de
cambios
de
diseo
en
una
sola
ubicacin;
los
cambios
se
vern
reejados
en
todas
las
pginas
que
usan
la
pgina
maestra.
ReuAlizacin
de
la
interfaz
de
usuario
Mejor
experiencia
del
usuario
nal:
pginas
ms
coherentes
Cmo
funciona
Master pages definen el contenido comn y los
contenedores de contenido (content placeholders)
Content pages hacen referencia a las paginas maestras y
llenan a los contenedores con su contenido.
Site.master
ContentPlaceHolder
default.aspx
Content
http://.../default.aspx
En
tiempo
de
ejecucin
IIS
controla
las
pginas
maestras
en
la
secuencia
siguiente:
Los
usuarios
solicitan
una
pgina
escribiendo
la
direccin
URL
de
la
pgina
de
contenido.
Cuando
se
captura
la
pgina,
se
lee
la
direcAva
@
Page.
Si
la
direcAva
hace
referencia
a
una
pgina
maestra,
tambin
se
lee
la
pgina
maestra.
Si
las
pginas
se
solicitan
por
primera
vez,
se
compilan
las
dos
pginas.
La
pgina
maestra
con
el
contenido
actualizado
se
combina
en
el
rbol
de
control
de
la
pgina
de
contenido.
El
contenido
de
los
controles
Content
individuales
se
combina
en
el
control
contentplaceholder
correspondiente
de
la
pgina
maestra.
La
pgina
combinada
resultante
se
representa
en
el
explorador.
Page.Master
Nueva propiedad (Master) de System.Web.UI.Page
Esta propiedad contiene una referencia a la pgina
maestra de la pgina de contenido, por tanto provee a
una pgina contenido de acceso programtico a la
pgina maestra
Determina si la pagina tiene asociada una maestra
Acceso a los controles definidos en la maestra pudiendo
escribir cdigo soporte en las pginas de contenido
Acceso a mtodos pblicos y propiedades definidas en la
maestra
Desde
el
navegador..
Desde
la
perspecAva
del
usuario,
la
combinacin
de
las
pginas
maestras
y
las
pginas
de
contenido
da
como
resultado
una
nica
pgina.
La
direccin
URL
de
esta
pgina
es
la
de
la
pgina
de
contenido.
En
Visual
Studio
Herencia visual
Master Page
Content Page
Controles de
servidor
Controles
de
servidor
Soporte para caractersticas avanzadas: enlace
de datos, plantillas..
Se emplea el prefijo asp: junto con el atributo
runat=server.
<asp:TextBox id=text runat=server/>
1. Controles HTML
2. Controles estndar (web)
3. Controles de validacin
4. Controles de login
5. Controles de navegacin
6. Controles Webparts
7. Controles de datos
8. Controles de usuario
Hyperlink
TextBox
Image
Button
LinkButton
ImageButton
Checkbox
RadioButton
ListBox
CheckBoxList
RadioButtonList
Panel
Table, TableRow,
TableCell
Controles
estndar
AdRotator
PlaceHolder
ImageMap
BulletedList
HiddenField
FileUpload
Wizard
Xml
MultiView
Substitution
TextBox
Pgina aspx
<form id="form1" runat="server">
<div>
<p>
Username: <asp:TextBox id="userTextBox"
TextMode="SingleLine"
Columns="30" runat="server" />
</p>
<p>
Password: <asp:TextBox id="passwordTextBox"
TextMode="Password" Columns="30"
runat="server" />
</p>
<p>
Comments: <asp:TextBox id="commentsTextBox"
TextMode="MultiLine" Columns="30" Rows="10
runat="server" />
</p>
</div>
</form>
Button
Pgina aspx
<form id="form1" runat="server">
<asp:Button id="BotonEnviar" Text="Enviar"
runat="server OnClick="WriteText" />
<asp:Label id="Label1" runat="server" />
</form>
Pgina aspx.cs
protected void WriteText(object sender, EventArgs
e)
{
Label1.Text = "Hola mundo";
}
ImageButton
Pgina aspx
<form id="form1" runat="server">
<div>
<asp:ImageButton id="BotonImagen" ImageUrl="~/
garfield.gif"
runat="server" OnClick="WriteText" />
<asp:Label id="Label4" runat="server" /></form>
Pgina aspx.cs
protected void WriteText(object sender, ImageClickEventArgs e)
{
Label4.Text = "Coordenadas:" + e.X + "," + e.Y;
}
Panel
Pgina aspx
<form id="form1" runat="server">
<asp:Panel id="myPanel" BackColor="Beige" Width="220" runat="server">
<p>Username: <asp:TextBox id="usernameTextBox" Columns="30
runat="server" /></p>
<p>Password: <asp:TextBox id="TextBox1 TextMode="Password"
Columns="30" runat="server" /></p>
</asp:Panel>
<asp:Button id="hideButton" Text="Hide Panel" OnClick="HidePanel
runat="server" />
<asp:Button id="showButton" Text="Show Panel" OnClick="ShowPanel
runat="server" />
</form>
Pgina aspx.cs
protected void HidePanel(object sender, EventArgs e)
{ myPanel.Visible = false; }
protected void ShowPanel(object sender, EventArgs e)
{ myPanel.Visible = true; }
Eventos de los
controles de
servidor
Modelo
de
eventos
En
las
pginas
Web
ASP.NET,
los
eventos
asociados
a
los
controles
de
servidor
se
originan
en
el
cliente
(explorador)
pero
los
controla
la
pgina
ASP.NET
en
el
servidor
Web.
La
informacin
del
evento
se
captura
en
el
cliente
y
se
transmite
un
mensaje
de
evento
al
servidor
mediante
un
envo
HTTP.
La
pgina
debe
interpretar
el
envo
para
determinar
el
evento
ocurrido
y,
a
conAnuacin,
llamar
al
mtodo
apropiado
del
cdigo
del
servidor
para
controlar
dicho
evento.
Eventos
y
delegados
El
objeto
que
provoca
el
evento
se
conoce
como
remitente
del
evento.
El
objeto
que
captura
el
evento
y
responde
a
l
se
denomina
receptor
del
evento.
En
las
comunicaciones
de
eventos,
el
remitente
del
evento
no
sabe
qu
objeto
o
mtodo
recibir
los
eventos
que
provoca.
Se
necesita
un
intermediario
(o
mecanismo
de
9po
puntero)
entre
el
origen
y
el
receptor.
.NET
Framework
dene
un
Apo
especial
(Delegate)
que
proporciona
la
funcionalidad
de
un
puntero
a
funcin.
Eventos
y
delegados
Un
delegado
es
una
clase
que
puede
guardar
una
referencia
a
un
mtodo.
A
diferencia
de
otras
clases,
una
clase
de
delegado
9ene
un
proto9po
y
puede
guardar
referencias
nicamente
a
los
mtodos
que
coinciden
con
su
proto9po.
Por
lo
tanto,
un
delegado
equivale
a
un
puntero
a
funcin
con
seguridad.
Por
convencin,
los
delegados
de
evento
de
.NET
Framework
Aenen
dos
parmetros,
el
origen
que
provoc
el
evento
y
los
datos
del
evento
Eventos
y
delegados
Los
delegados
de
evento
personalizados
slo
son
necesarios
cuando
un
evento
genera
datos
de
evento.
Muchos
eventos,
incluidos
algunos
eventos
de
interfaz
de
usuario,
como
los
clics,
no
generan
datos
de
evento.
En
estos
casos,
es
apropiado
el
delegado
proporcionado
en
la
biblioteca
de
clases
para
el
evento
sin
datos,
System.EventHandler.
delegate
void
EventHandler(object
sender,
EventArgs
e);
Los
delegados
de
evento
son
de
mulAdifusin,
lo
que
signica
que
pueden
guardar
referencias
a
ms
de
un
mtodo
de
control
de
eventos.
Manejadores
de
eventos
El prototipo de los mtodos manejadores de
eventos deben coincidir con el prototipo del
delegado EventHandler.
Por tanto, los manejadores de evento en ASPnet
devuelven void y tienen dos parmetros:
Objeto que lanza el evento
Argumentos del evento: informacin especfica del
evento (EventArgs o tipo derivado)
Consumir
eventos
En
las
pginas
Web
ASP.NET,
no
es
necesario
codicar
explcitamente
delegados
si
el
control
se
crea
mediante
declaracin
(en
el
marcado)
en
la
pgina.
Para
consumir
eventos
denidos
en
otra
clase,
se
debe
denir
y
registrar
un
controlador
de
eventos.
El
controlador
de
eventos
debe
tener
la
misma
rma
de
mtodo
que
el
delegado
declarado
para
el
evento.
Puede
registrar
su
controlador
de
eventos
agregando
el
controlador
al
evento.
Una
vez
agregado,
se
llama
al
mtodo
siempre
que
la
clase
provoca
el
evento.
Suponemos
el
delegado
de
eventos:
public
delegate
void
AlarmEventHandler(object
sender,
AlarmEventArgs
e);
Al
compilar
la
pgina,
ASP.NET
busca
un
mtodo
denominado
EventoClick
y
conrma
que
ste
Aene
la
rma
adecuada
(acepta
dos
argumentos,
uno
de
Apo
Object
y
otro
de
Apo
EventArgs).
A
conAnuacin,
ASP.NET
enlaza
automAcamente
el
evento
al
mtodo
Ejemplo
Bufon
b
=
new
Bufon;
b.Text
=
"Click";
b.Click
+=
new
System.EventHandler(BufonClick);
Placeholder1.Controls.Add(b);
Tipos
de
eventos
Eventos
de
envo
(POSTBACK).
Son
los
eventos
lanzados
por
controles
que
emiten
un
envo
(post)
al
servidor
de
manera
inmediata
para
procesar
el
Web
Form.
Por
ejemplo
al
enviar
un
formulario
pulsando
sobre
el
botn
de
aceptacin.
Estos
controles
son:
Bufon,
Link
Bufon
e
Image
Bufon.
Eventos
de
pgina
Las
pginas
ASP.NET
provocan
eventos
de
ciclos
de
vida
como
Init,
Load,
PreRender
y
otros.
De
manera
predeterminada,
los
eventos
de
pgina
se
pueden
enlazar
a
los
mtodos
uAlizando
la
convencin
de
nomenclatura
Page_nombreDeEvento.
Por
ejemplo,
con
el
n
de
crear
un
controlador
para
el
evento
Load
de
la
pgina,
se
puede
crear
un
mtodo
denominado
Page_Load.
En
Aempo
de
compilacin,
ASP.NET
buscar
los
mtodos
que
se
basen
en
esta
convencin
de
nomenclatura
y
realizar
el
enlace
automAcamente
entre
el
evento
y
el
mtodo.
Eventos
de
pgina
Las
pginas
ASP.NET
enlazan
automAcamente
los
eventos
de
pginas
a
los
mtodos
que
Aenen
el
nombre
Page_evento.
Este
enlace
automAco
lo
congura
el
atributo
AutoEventWireup
de
la
direcAva
@
Page,
cuyo
valor
se
establece
de
forma
predeterminada
en
true.
Si
establece
AutoEventWireup
en
false,
la
pgina
no
busca
automAcamente
los
mtodos
que
usen
la
convencin
de
nomenclatura
Page_evento.
Por
tanto,
se
pueden
crear
los
mtodos
con
cualquier
nombre
y
enlazarlos
a
los
eventos
de
pginas
explcitamente.
Propiedad IsPostBack
Maquetacin
con CSS
Qu
es
CSS?
CSS es una herramienta que permite definir la
presentacin de un documento
Permite crear un conjunto de estilos en una nica
localizacin
Las pginas a las que se aplica la misma hoja de
estilos tendrn las mismas fuentes, colores y
tamao
Proporcionan una esttica homognea en todas las
pginas de un sitio web
Selectores
de
estilos
En caso de utilizar hojas externas o internas cada
regla de estilo tiene un selector
Un selector es el tipo de elemento al que se va a
aplicar el estilo
Ejemplo:
a {
background-color: #ff9;
color: #00f;
}
En ASP.NET hay dos tipos de selectores:
Tipos de elementos y clases
Propiedades
de
estilo
Font: Tipo de fuente, tamao, color
Background: color de fondo, imagen de fondo
Block: espacio entre prrafos, lneas, palabras
Box: personalizar tablas, colores, bordes
Border: dibuja bordes alrededor de diferentes
elementos
CssClass
Asociar selector de tipo clase en Formularios Web en
ASP.NET:
<head runat="server">
<title>Probando CSS</title>
<link rel="Stylesheet" type="text/css" href=hoja.css />
</head>
<asp:TextBox ID="TextBox1" CssClass="textbox"
runat="server" />
hoja.css
.textbox { font-family:
Arial; background-color:
#0099FF; border: 1px
solid}
Divs
Las
capas,
layouts
o
divs
son
la
misma
cosa
con
disAnto
nombre,
para
tener
un
concepto
mental
de
lo
que
son,
podemos
imaginarlos
como
contenedores
o
bloques
donde
podemos
meter
lo
que
queramos
dentro
(imgenes,
texto,
animaciones,
otro
bloque,
o
todo
al
mismo
9empo)
a
los
que
se
le
asigna
un
ancho,
alto
y
posicin,
de
esta
manera
se
van
a
ir
posicionando
consiguiendo
la
estructura
que
queremos.
Formato
a
un
DIV
Para
darle
formato
a
un
DIV
tenemos
que
idenAcarlo
de
alguna
forma,
para
esto
existe
el
atributo
ID,
en
el
pondremos
el
nombre
del
DIV
para
luego
llamarlo
desde
la
hoja
de
esAlos,
la
forma
de
escribirlo
es
as:
<div
id="capa1">Esta
es
mi
primer
capa!</div>
#capa1{
width:210px;
height:300px;
background-color:green;
}
Class
o
id?
La
diferencia
entre
una
clase
(.)
y
un
bloque
(#)
es
que
el
bloque
es
nico
e
irrepeAble
en
la
pagina,
es
decir,
si
creamos
un
esAlo
de
bloque
"#busqueda"
para
mostrar
el
cuadro
de
bsqueda
no
podremos
usarlo
otra
vez
en
la
misma
pagina,
en
cambio
si
a
"#busqueda"
lo
converAmos
en
una
clase
".busqueda"
podremos
usarlo
cuantas
veces
queramos.
Propiedades
de
maquetacin
<div
style
=
"display:
table;
margin-lev:
auto;
margin-right:
auto;
width:
500px;">
<div
style
=
"height:
45px;
width:
500px;"></div>
<div
style
=
"oat:
lev;
height:
75px;
width:
150px;"></div>
<div
style
=
"oat:
right;
height:
75px;
width:
350px;"></div>
<div
style
=
"clear:
both;
height:
35px;
width:
500px;"></div>
</div>
Los
elementos
DIV
pueden
centrarse
uAlizando
los
atributos
margin-
le^:
auto;
margin-right:
auto;
La
propiedad
oat
ajusta
los
elementos
hacia
el
margen
indicado
(cuando
tenemos
capas
adyacentes).
A
veces
necesitars
tener
una
capa
o
bloque
que
no
tenga
capas
a
su/s
lados,
para
eso
esta
la
propiedad
CSS
Clear.
(ej
el
pie
de
pgina).
Esta
propiedad
se
uAliza
en
conjunto
con
oat
y
sirve
para
evitar
que
una
capa
se
posicione
a
cualquiera
de
los
lados
Cuidado
En
las
estructuras
clsicas
con
tablas,
podamos
uAlizar
tamaos
en
porcentaje.
Aunque
aqu,
tambin
podemos
uAlizar
porcentajes,
el
dibujado
de
la
pgina
puede
no
verse
como
se
esperaba.
Navegacin
entre
formularios
Navegacin
tradicional
En HTML:
En ASPx:
Mtodo Response.Redirect
Hipervnculos
y
Redireccin
Los hipervnculos responden a eventos click
mostrando la pgina especificada en la propiedad
NavigateURL del control.
Si quieres capturar un click en el cdigo, debes usar
los eventos de un LinkButton o ImageButton y utilizar
Response.Redirect(SiguientePagina.aspx);
Tambin podemos pasar parmetros a la nueva
pgina.
http://localhost:49999/Default4.aspx?
par1=22&par2=25
Caracteres especiales:
Solucin:
Objeto
Request
Request: proporciona informacin sobre la