Documentos de Académico
Documentos de Profesional
Documentos de Cultura
WEB
Ms cdigo
Siguiendo con el ejemplo vamos a aadir un poco ms de cdigo para comprobar hasta
que punto son compatibles las pginas ASPX con el cdigo ASP.
Si lo modificamos para que tenga el siguiente aspecto:
Si bien podemos escribir cdigo ASP.NET de la manera correcta slo con el bloc de
notas, la mejor forma de desarrollar pginas Web con ASP.NET es usando Visual
Studio 2010, que como veremos enseguida nos ofrece una forma visual de trabajo
junto con una separacin estricta entre el cdigo y la interfaz de usuario, que es lo que
pretendamos.
Nota:
Las plantillas disponibles en el dilogo de nuevo proyecto web puede
diferir dependiendo de la versin de Visual Studio 2010 que utilice. Por
simplicidad se muestra el dilogo de la versin Visual Web Developer
Express, el ms simple.
En l tenemos la oportunidad de elegir qu tipo de proyecto vamos a crear (por
defecto un sitio web de ASP.NET), en qu ubicacin fsica queremos crearlo (lo
normal ser en nuestro disco duro pero podramos elegir un sitio gestionado por FTP o
HTTP) y con qu lenguaje de programacin.
Existen diferentes lenguajes que nos sirven para crear el cdigo de nuestras pginas.
Dado que en la prctica todos tienen las mismas capacidades escoger uno u otro es
una cuestin de eSeccin personal. Dado que este curso est orientado
fundamentalmente a programadores que vienen de ASP o VB6, vamos a elegir Visual
Basic 2010 como lenguaje de todos nuestros ejemplos. En cualquier caso todo lo
explicado para ste es perfectamente vlido para los otros lenguajes y le servir igual
si se decide por ellos.
Explorando el entorno
Tras crear un proyecto nuevo, el entorno tiene un aspecto similar a este:
Explorador de soluciones
Este elemento contiene un rbol con los proyectos en los que estamos trabajando y los
diferentes
archivos
y
carpetas
que
forman
parte
de
ellos.
Nada ms crear un nuevo proyecto Web slo existe una carpeta llamada App_Data, y
una pgina ASPX creada de forma predeterminada que est vaca y es con la que
comenzaremos
a
trabajar.
Los botones de la parte superior se usan para realizar diversas acciones sobre el
elemento que tengamos seleccionado. Por ejemplo en el caso de la pgina podemos
abrir
su
diseo
o
su
cdigo
presionando
respectivamente el tercer y cuarto botones por la
derecha.
rea de documentos
Cuadro de herramientas
Editor de propiedades
Al igual que en Visual Basic 6.0, Frontpage y otros entornos, el editor de propiedades
nos permite ajustar los valores de las propiedades en tiempo de diseo de los objetos
que
hayamos
seleccionados.
Este editor sirve para ajustar las propiedades de todos los objetos que podamos utilizar
en el entorno: tanto de los controles que se arrastran sobre un diseador como de los
propios archivos del explorador de soluciones y las etiquetas HTML o XML, etc...
con el valor "Bienvenido a ASP.NET! ", eligiendo un tipo de letra de tamao grande y
color rojo.
Justo debajo agregue un control TextBox, y establezca su propiedad ID como
"Nombre", Width como 200px y MaxLength ajstela a 40.
A continuacin introduzca un botn (Button) y asgnele el texto "Saludar" (propiedad
Text) y otrguele el nombre de "cmdSaludar".
Por fin aada una etiqueta ms con el nombre lblSaludar, y ajuste su propiedad
Visible a False para que no se vea en el formulario web una vez que lo ejecutemos.
Cuando acabe el aspecto del formulario debera ser muy similar a ste:
Figura 3.1.9.- Aspecto del ejemplo tras haber aadido los controles.
Nota:
Si no tiene claro cmo hacerlo vea el primer vdeo de esta Seccin al pie
de este documento en donde se desarrolla el ejemplo completo.
Por otra parte, para determinar qu evento se ha producido, se emplean tambin dos
campos ocultos y un poco de JavaScript:
El archivo Web.config
Este archivo contiene los parmetros y opciones de configuracin de las aplicaciones de
ASP.NET. Cada
aplicacin
Web
contendr
su
archivo
de
configuracin.
Hasta la versin de ASP.NET 4.0, este fichero ha crecido enormemente debido al
aadido de opciones sucesivas que se han realizado como por ejemplo Ajax.
A partir de la versin de ASP.NET 4.0, este fichero y su informacin se ha reducido
considerablemente, ya que muchas de las opciones agregadas han ido a otro fichero de
configuracin llamado machine.config.
Esto se aprecia mucho mejor si ejecutamos una pgina Web de una aplicacin Web
ASP.NET que muestre una informacin de texto en pantalla, y si volvemos a ejecutar
esa misma pgina Web. El tiempo de espera de la siguiente peticin ser mucho
menor.
Para resolver esta problemtica, se poda ejecutar las pginas ASP.NET previamente o
acudir al cdigo de inicializacin del mtodo Application_Load que se encuentra en el
archivo Global.asax para realizar diferentes operaciones que faciliten ese despertar.
maxRequestPathLength="260"
Para crear la interfaz de usuario slo hemos tenido que arrastrar controles Web desde
el cuadro de herramientas al diseador. Por detrs lo que ha estado ocurriendo es que
el cdigo HTML de la pgina ha estado creciendo hasta ser como el siguiente:
Netscape, etc...) y de forma autnoma adapta el cdigo que muestra a las capacidades
y restricciones concretas del navegador utilizado.
Esta adaptacin tiene en cuenta el soporte de HTML y JavaScript, pero tambin
cuestiones como si se deben usar etiquetas bsicas en lugar de hojas de estilo CSS
para el aspecto.
En esta nueva versin 3.5 de ASP.NET va un paso ms all permitiendo la adaptacin
automtica de los controles a diferentes navegadores y dispositivos incluso mviles
(telfonos y PDA de cualquier marca). A esta caracterstica se la conoce como
renderizacin adaptativa.
un
mismo
calendario
en
un
En http://www.asp.net/community/control-gallery/
catlogo clasificado de controles Web de servidor.
podr
encontrar
un
extenso
Controles propios
Como no podra ser de otra manera, ASP.NET no nos limitar a la hora de crear
controles propios para reutilizar funcionalidad en nuestras aplicaciones o incluso para
venderlos a otras empresas.
Existen dos tipos de controles que podremos crear:
Controles Web: son controles como los que hemos visto hasta ahora y
equiparables en todos sus aspectos a los controles nativos de ASP.NET 3.5.
La creacin de controles Web (primer tipo) es una cuestin compleja que se sale del
mbito de este curso, por lo que no los estudiaremos. Sin embargo en la siguiente
Seccin veremos la forma de crear nuestros propios controles de usuario.
Investigue por su cuenta la funcionalidad de algunos de los controles disponibles en
ASP.NET. Es la mejor forma de aprender. Descubrir que la mayora son muy fciles de
utilizar y sus propiedades y mtodos son de uso sencillo. Deje de momento los
enlazados a datos pues sern objeto de un mdulo posterior y suelen tener ms
complicacin.
Las condiciones tpicas son, por ejemplo, que un campo no se puede quedar vaco, que
tiene que estar comprendido dentro de un rango determinado o incluso que debe
cumplir con una expresin regular que indiquemos. Por supuesto es posible tambin
definir reglas propias personalizadas.
La principal ventaja de estos controles es que permiten la definicin de reglas de
validacin de forma declarativa, es decir, no hace falta escribir cdigo para usarlos.
Ello facilita mucho el desarrollo y el mantenimiento de las reglas de validacin.
Una vez que definamos las reglas para un formulario los controles de validacin se
encargan automticamente de validarlas tanto en el cliente como en el servidor.
En el lado cliente se convertirn en cdigo JavaScript muy parecido al que nosotros
usaramos, actuando de primera barrera y evitando viajes innecesarios al servidor. Las
comprobaciones del lado del servidor nos evitan problemas cuando, por el motivo que
sea, no han actuado las validaciones en el cliente.
Nota:
Se puede desactivar la validacin en el lado del cliente de un control
estableciendo su propiedad EnableClientScript a False. Podemos
deshabilitar la validacin del lado cliente de todos los controles
estableciendo la propiedad ClientTarget de la pgina actual con la
cadena "DownLevel" desde el evento de carga de la pgina. Con ello slo
se realizar la validacin en el servidor.
Utilidad
RequiredFiledValidator
RangeValidator
Permite
comparar
el
valor
introducido por el usuario con
una constante o con el valor de la
propiedad de otro control.
CustomValidator
Tipo
Propiedad
HtmlinputText
Entrada de texto
Value
HtmlTextArea
Entrada de texto
Value
TextBox
Entrada de texto
Text
HtmlSelect
Lista de seSeccin
Value
ListBox
Lista de seSeccin
SelectedItem.Value
DropDownList
Lista de seSeccin
SelectedItem.Value
RadioButtonLis Botones
t
seSeccin
HtmlInputFile
de SelectedItem.Value
Envo de archivos
Value
Validadores personalizados
Tal vez el validador que necesite ms explicacin es el CustomValidator. Como su
propio nombre indica se usa para crear normas de validacin propias que no se
adapten a ninguna de las contempladas con los dems controles. Para conseguirlo se
definen funciones de validacin en el cliente y en el servidor.
Las funciones de validacin en el cliente se escriben en JavaScript o en VBScript y
se asocian con el control mediante la propiedad ClientValidationFunction. la funcin
definida puede tener cualquier nombre pero debe tomar dos argumentos, as:
function miValidador(origen, argumentos)
{
}
<script language="javascript">
function ValidaImpar(origen, args)
{
if (args.Value % 2 == 0) //Si es divisible entre 2 es par
args.IsValid = false;
else
args.IsValid = true;
}
</script>
Controles de usuario
Como ya hemos adelantado en la Seccin anterior, aparte de la compleja creacin de
controles Web personalizados del estilo de los que vienen con ASP.NET, existe una
forma rpida y sencilla de reutilizar partes completas de funcionalidad e interfaz de
usuario. Para ello no es necesario tener profundos conocimientos de la plataforma
.NET. Ni siquiera hacen falta conocimientos de HTML. Se trata de los controles de
usuario.
En esta Seccin veremos qu son, cmo se crean y cmo se utilizan.
Controles de usuario
Los controles de usuario son tan fciles de crear que, de hecho, ya conoce casi todo lo
que necesita para construirlos. Se crean exactamente igual que los formularios Web y
disponen de un diseador visual idntico que permite arrastrar otros controles sobre su
superficie. De hecho cualquier formulario Web (pgina ASPX) puede transformarse
directamente en un control reutilizable con slo unos pocos cambios de sintaxis.
Para aadir un nuevo control de usuario pulse con el botn secundario sobre el nodo
raz del proyecto en el explorador de soluciones y escoja la opcin "Agregar
elemento...". En el dilogo que aparece (ya sobradamente conocido) seleccione el
icono correspondiente a Control de usuario Web, como se ilustra en la siguiente
figura:
La primera diferencia con una pgina ASPX la encontramos al ver las etiquetas que
constituyen la parte de interfaz de usuario del control. En los formularios aparece al
principio una directiva <%@Page %>, pero en los controles la directiva se llama <
%@Control %> si bien se usa de un modo muy similar:
al control del mismo modo que lo estn las propiedades y mtodos de cualquier control
Web normal. Esto es muy til para encapsular el acceso a ciertas funcionalidades que
hayamos incluido.
Por supuesto los controles que coloquemos en la superficie del control se vern
adecuadamente en la pgina que lo contenga y se comportarn del modo esperado,
esto es, recibiendo eventos, conservando su estado en el ViewState, etc...
podramos definir en la pgina un control del tipo Micontrol usando una sintaxis como
esta:
Las propiedades que hayamos definido para la clase Micontrol se pueden establecer
mediante atributos (al igual que ID en la lnea anterior, por ejemplo) siempre que se
trate de tipos simples.
Podemos modificar la directiva Register para incluir un prefijo que nos guste ms o sea
ms descriptivo que el que Visual Studio ha puesto por defecto.
En lugar de usar un tipo genrico (Control) como en este fragmento tambin podemos
usarlo como el verdadero tipo del control y as llamar a sus mtodos y propiedades
antes de aadirlo al formulario:
Dim c As Control
Dim miC As Micontrol
c = Me.LoadControl("Micontrol.ascx")
miC = CType(c, Micontrol)
miC.ValorInicial = "Bienvenido a esta pgina"
Me.Form.Controls.Add(miC)
En este ejemplo hemos usado el control con su verdadero tipo para poder asignar la
propiedad ValorInicial antes de agregarlo a la pgina.
El mtodo Redirect enva al navegador del usuario una cabecera especial de redireccin
que le indica que, en lugar de descargar los contenidos de la pgina actual, debe
solicitar una nueva. Esto provoca una nueva peticin de pgina desde el navegador por
lo que no es la forma de navegacin de mayor rendimiento (hay el doble de viajes al
servidor que en un enlace directo). Sin embargo dota de gran flexibilidad a la hora de
decidir qu hacer ante la solicitud de pgina de un usuario o para redirigir al final de un
proceso ejecutado en el servidor.