Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sobre el libro
Este libro ha sido creado con la intencin de poder transmitir
algunos conocimientos generales sobre la plataforma ASP.net.
El mismo es distribuido de forma electrnica y gratuita.
Toda reproduccin del mismo est totalmente permitida.
El presente libro ha sido escrito y editado enteramente por su autor.
Matas Iacono
Contenido
Captulo 11...................................................................................................................................
................................................................................................................................... 4
Herramientas y prerrequisitos ................................................................................................................................................................. 4
Visual Studio 2010 ..................................................................................................................................................................................... 4
El entorno de Visual Studio ..................................................................................................................................................................... 5
Microsoft SQL Server 2008 Express ...................................................................................................................................................... 7
Nuestro primer sitio Web ......................................................................................................................................................................... 8
Maquetar nuestra pgina .................................................................................................................................................................... 11
Crear el comportamiento .................................................................................................................................................................... 21
Catlogo de productos ......................................................................................................................................................................... 23
Crear la base de datos ........................................................................................................................................................................... 24
Captulo 1
Iniciaremos este libro con algunos ejercicios bsicos adems de la instalacin, configuracin y la comprensin de las herramientas que utilizaremos a lo largo de este manual.
En este captulo veremos cuatro ejercicios ligeros pero tiles los que nos darn un
paneo general sobre la potencia del desarrollo de pginas Web con ASP.net y el lenguaje
C# como base de nuestro cdigo.
Herramientas y prerrequisitos
Antes de comenzar con estos ejercicios es necesario que conozcamos que herramientas
utilizaremos, cules de estas son esenciales y cmo las utilizaremos. Si bien a medida
que avancemos y nos ejercitemos aprenderemos ms profundamente cada una de ellas,
necesitamos de una base mnima para poder desempearnos con cierta soltura dentro de
las mismas. En todo caso, en todo momento debemos tener en cuenta que las herramientas presentadas, tanto para la creacin de cdigo como la gestin de datos, pueden
ser remplazadas por cualquier otra que provea funcionalidades similares.
De cualquier manera en el transcurso de este libro utilizaremos como herramienta de
creacin de cdigo a Microsoft Visual Studio 2010 Ultimate y a Microsoft SQL
Server 2008 Express como motor de bases de datos. La primera es una herramienta
paga y la segunda es gratuita. Aunque la herramienta de desarrollo cuenta con versiones
gratuitas, debido a la potencia y prestaciones de la misma la utilizaremos en los ejemplos
de este libro.
Si no contramos con una versin Ultimate de Visual Studio 2010 o quisiramos probar
las herramientas gratuitas, en nuestro caso necesitaremos descargar las relacionadas al
desarrollo Web con ASP.net. Este IDE tiene el nombre de Visual Web Developer 2010
Express y nos proveer de la ayuda necesaria para el desarrollo de nuestras pginas
Web. En la Figura 1 podemos ver el sitio oficial de WebMatrix, otra herramienta
gratuita para el desarrollo de aplicaciones Web con ASP.net.
Figura 1
El sitio oficial de
WebMatrix , una herramienta liviana para el desarrollo
de software con Microsoft
.Net .
Otra cuestin que tendremos que tener en cuenta al momento de iniciar los ejemplos es
el lenguaje de programacin a utilizar. Cuando desarrollamos bajo Microsoft .Net
podremos utilizar diferentes lenguajes de programacin. Sin importar cul de estos
utilicemos el resultado final ser el mismo, esto se debe a cmo esta tecnologa trabaja,
compilando el lenguaje en el que hubiramos escrito nuestra aplicacin en un lenguaje
intermedio comn.
De cualquier manera nosotros nos enfocaremos en C# como lenguaje de aprendizaje
por varios motivos. Uno de los ms importantes es que C# es considerado un lenguaje
estndar ECMA e ISO/IEC; otro motivo interesante es su raz en lenguajes como C y
C++ lo que brinda mayor flexibilidad a la hora de escribir cdigo y resulta en una
sintaxis ms clara y elegante.
Figura 2
El asistente para la
creacin de proyectos no
solo provee de plantillas
estndares. Tambin
podremos descargar
nuevas plantillas desde
Internet.
En el caso especfico del desarrollo Web con ASP.net, Visual Studio 2010 nos provee de
una herramienta muy til. En el desarrollo Web es necesario no solo tener conocimientos sobre el cdigo que manipule los diferentes objetos colocados en una pgina , sino
que adems ser necesario poder maquetar la pgina en cuestin para lograr que la
misma sea visualmente atractiva, as como contar con una lista de componentes y
controles ya diseados, o asistentes para modificar sus propiedades y atributos. En la
Figura 3 podemos ver a Visual Studio 2010 desplegando un entorno de desarrollo
completo para cubrir todas las necesidades mencionadas anteriormente.
Figura 3
Adems de la lista de
controles mostrados a la
izquierda y sus propiedades a la derecha, podemos
cambiar entre la vista
Cdigo y de diseo para
manipular el cdigo
HTML.
C# como estndar
El lenguaje de programacin C# es considerado
aceptado como estndar
ECMA. Puede acceder a
la informacin de ECMA
para C# en la sitio Web
oficial de la organizacin.
www.ecmainternational.org/
Tambin se puede consultar
la licencia del estndar ISO
sobre C# en el sitio oficial
de la organizacin.
standards.iso.org/ittf/
licence.html
Visual Studio 2010 en conjunto con Microsoft SQL Server 2008 Express no se limita a
proveernos un sistema dnde almacenar nuestros datos sino que adems nos otorga
soporte completo para la administracin de la base de datos y sus datos, ya sea por
cdigo o por medio de la administracin visual de los mismos. As, podremos agregar
nuevas tablas, vistas y otro conjunto de elementos propios de las bases de datos todo
desde el mismo IDE de desarrollo. En la Figura 5 podemos ver el Explorador de
servidores, una ventana que nos permitir tener acceso a las caractersticas citadas y
con el cual interactuaremos en los ejemplos.
Figura 5
Las bases de datos son
fundamentales para las
aplicaciones de la
actualidad. El poder
almacenar datos para
persistirlos y recuperarlos
luego ser el puntal de
nuestras aplicaciones.
Herramientas externas
Adems del entorno de
Visual Studio como
entorno para la
manipulacin de bases de
datos, Microsoft nos
provee otras herramientas
ms especficas y con
mayores funcionalidades.
SQL Server
Management Studio es
una herramienta completa
y podemos descargarla
desde la siguiente
direccin.
www.microsoft.com/
download/en/
details.aspx?id=7593
Seleccione el tipo de aplicacin Aplicacin web vaca de ASP.net dentro de la categora Web y coloque un nombre
en la misma. Finalmente presione el botn Aceptar.
Una vez finalizados los procesos de creacin, agregue una nueva pgina ASP.net. Presione con el botn derecho
del mouse sobre el proyecto para desplegar el men contextual y seleccione Agregar y luego en Nuevo elemento.
En el asistente seleccione el tipo de archivo Web Forms, colquele el nombre Default.asp. Para finalizar el proceso
presione el botn Agregar.
El proceso anterior nos ha servido para crear un proyecto del tipo ASP.net el cual ya
puede ser considerado, con la pgina Default.aspx dentro, como un sitio Web completamente funcional.
Podemos ver en la pgina adicionada al proyecto ASP.net toda la estructura HTML
(Hypertext Markup Language, o en castellano lenguaje de marcadores para hipertexto). Esta
estructura es la misma que podramos encontrar en cualquier desarrollo Web ya que las
etiquetas HTML o tags, por su nombre en ingls, utilizadas se basan en el estndar de
HTML. De cualquier manera es importante destacar que en las pginas ASP.net nos
encontraremos con una etiqueta que siempre estar presente y del que solo podremos
tener una declarada por pgina Web. Esta etiqueta es la etiqueta Form (Formulario) y el
motivo por el cual solo puede y debe haber una por pgina es debido a que el motor de
ejecucin de ASP.net utiliza esta para manipular la informacin que pudiera ser escrita
en la pgina por parte del usuario y luego, esta informacin, enviada al servidor para ser
procesada. Adems, ASP.net utilizar esta etiqueta para manipular los diferentes controles que coloquemos en la pgina Web brindndonos el servicio de mantener los valores
de los mismos entre cada recarga de la pgina as como traducindolos a cdigo C# o
Visual Basic.Net para que podamos manipularlos.
Intentemos, entonces, agregar algo de nuestra mano dentro de este cdigo creado
automticamente.
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
<body>
<form id="form1" runat="server">
<div>
Mi primer sitio Web con ASP.net
</div>
</form>
</body>
especficamente escrito dentro de algunos otras etiquetas HTML. En todo caso, como
decamos anteriormente, lo importante ser respetar el alcance de la etiqueta de formulario descrita de la forma <form...></form>. Para probar este pequeo ejemplo inicial
deberemos contar con un servidor Web para hospedar el sitio Web, indudablemente esto
requerira ciertos esfuerzos de configuracin y no siempre podremos, mientras estamos
realizando nuestras aplicaciones, llevarlas a cabo.
Por suerte, Visual Studio 2010 trae consigo un pequeo motor de ejecucin para sitios
Webs que es desplegado cada vez que necesitemos probar nuestras pginas. Para probar
nuestras aplicaciones simplemente deberemos presionar la tecla F5 y Visual Studio 2010
se encargar del resto. Como podemos ver en la Figura 6 al ejecutarse la aplicacin el
navegador por defecto es lanzado y nuestra primer pgina Web es mostrada.
Figura 6
Visual Studio 2010
iniciar el servidor
portable para ASP.net y
mostrar el resultado en
el navegador configurado
por defecto.
Para utilizar cualquiera de estos controles simplemente deberemos presionar dos veces
sobre el mismo y este se adicionar a la pgina Web con la que estemos trabajando. En
la Tabla 1 podemos ver algunos de los controles ms utilizados.
11
Tabla 1
Una lista resumida de los
controles ms utilizados
en ASP.net.
Control
Funcionalidad
Button
Image
GridView
Label
DropDownList
Muestra una lista desplegable con tems seleccionables por parte del
usuario.
TextBox
Coloca una caja de texto en la pgina HTML para que el usuario pueda
ingresar texto libre.
<div>
Mi primer sitio Web con ASP.net
<asp:Label ID="Label1" runat="server" Text="Label"></
asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
Figura 8
En la vista de diseo se
muestran todos los
controles de forma
consecutiva y en una
nica lnea.
12
lnea siguiente.
Servidor portable
Inicialmente, el servidor
portable para la ejecucin de
pginas Web desarrolladas
con ASP.net y Visual Studio
posea un nombre cdigo
peculiar. Podremos encontrar
informacin sobre esta
versin original con el
nombre de Cassini.
En la actualidad este ha
cambiado de nombre y se ha
vuelto ms robusto. Estn
programadas nuevas
versiones que acompaarn
el nuevo Visual Studio.
Es aqu donde entrar en juego el arte de la maquetacin de una pgina Web. Para tal
fin podremos utilizar diferentes conceptos. Por un lado podramos utilizar CSS3 (Cascade
Style Sheet 3, o en castellano hojas de estilo en cascada versin 3), este mtodo nos permite
configurar no solo el aspecto visual de la pgina, como los colores o el tamao de la
tipografa, sino que adems nos permite posicionar diferentes controles en posiciones
especficas de la pgina. Otro mecanismo que podemos utilizar es el de utilizar otras
etiquetas HTML para crear una estructura estable dentro de la pgina Web que nos
permita colocar los diferentes controles en algn punto que conserven su posicin y
caractersticas. Nosotros utilizaremos una combinacin de los dos mtodos para crear
esta estructura.
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
<table style="width:100%">
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="Label"></
asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Button ID="Button1" runat="server" Text="Button" />
</td>
</tr>
</table>
13
Controles y el formulario
Cuando adicionamos nuevos
controles a una pgina
ASP.net es de suma
importancia que verifiquemos que los mismos estn
siendo adicionados dentro
del alcance de la etiqueta
<form>.
Si algn control quedara
fuera de esta etiqueta
recibiremos un error ya que
ASP.net no podr manejar el
mismo entre peticiones del
cliente y el servidor.
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
Figura 10
La estructura creada
mediante el uso de la
etiqueta para tablas nos
permite tener mayor
control sobre la posicin
de los controles.
Con los controles en su lugar y mostrando mensajes ms adecuados para nuestro sitio,
el siguiente paso ser modificar su aspecto visual. Si bien podemos hacerlo utilizando
CSS tambin podremos llevar adelante esta tarea desde el editor de propiedades de los
controles. Para esto deberemos seleccionar el control que queramos editar, como
hicimos en el caso de la propiedad Text e interactuar con las diferentes propiedades que
Figura 11
La propiedad Text suele
estar presente en todos los
controles ASP.net.
Generalmente est
asociada a que texto
descriptivo muestra el
control en la pgina.
modificarn su apariencia. En la Tabla 2 podemos ver algunas propiedades que modificarn el aspecto visual de los controles.
15
Tabla 2
Una lista resumida de los
controles ms utilizados
en ASP.net.
Propiedad
Funcionalidad
ForeColor
Font
BorderStyle
BorderColor
BackColor
CssClass
Para otorgar una apariencia diferente a la de los controles por defecto realizaremos
algunas modificaciones generales a los diferentes controles colocados en nuestra pgina
Web.
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
En el cdigo anterior podemos ver dos de los controles de nuestra pgina desde la vista
de cdigo y sus propiedades visuales modificadas. En la Figura 12 se muestra la
configuracin de todos los controles.
Si configuramos todos los controles de nuestra pgina podremos notar que la misma
configuracin se repite constantemente. Tomemos como ejemplos las etiquetas. Cada
Figura 12
Cada control ha sido
configurado desde la
ventana de propiedades.
Estas propiedades son
traducidas a cdigo CSS
estndar.
16
una de ellas ha tenido que recibir las mismas configuraciones y en la vista de cdigo
podremos ver que efectivamente es la misma configuracin multiplicada por tres. Esto
puede no causar problemas en la ejecucin de la pgina pero el tener que realizar
alguna modificacin a estos controles requerir que la hagamos tantas veces cmo
controles tengamos en la pgina. Para solucionar esto aplicaremos el concepto de
Temas y Mscaras. El primero, en ASP.net hace referencia a un conjunto de referencias visuales para los controles de nuestro sitio el cual podremos aplicar en cualquier
momento. Por lo tanto, podramos tener diferentes temas con diferentes configuraciones
visuales y aplicarlos sin tener que modificar los controles y sus configuraciones. Las
mscaras por lo tanto, son los elementos que contendr ese tema, pudiendo tener
mscaras para cada tipo de control dentro de nuestro sitio Web. Para agregar un tema
deberemos seguir los siguientes pasos.
Presione con el botn derecho del mouse sobre el proyecto ASP.net. En el men contextual seleccione Agregar,
luego Agregar carpeta ASP.net y finalmente Tema.
Cdigo HTML
Para el desarrollo de
pginas Web es necesario
estar familiarizado con las
diferentes etiquetas HTML.
Si bien ASP.net provee un
amplio abanico de
controles , algunos escapan
a su dominio. Si necesitamos saber ms sobre
HTML podremos visitar el
sitio Web de la W3C para
leer sobre el estndar.
www.w3.org/TR/html5/
En la ventana Explorador de soluciones escriba un nombre para el tema. Este nombre ser utilizado como
referencia en el futuro.
17
Con el nuevo tema creado, presione con el botn derecho del mouse y luego en Agregar y, finalmente en Nuevo
elemento. Por ltimo, agregue un nuevo Archivo de mscara.
Aspecto visual
El aspecto visual de una
pgina Web es de vital
importancia. Una pgina
correctamente diseada
ser ms atractiva para
nuestros clientes, por lo
tanto, adems de los
conocimientos de
programacin siempre ser
recomendable aprender el
uso de CSS y aplicarlo a
nuestros sitios Web. Para
consultar sobre este
estndar ingrese a la
siguiente direccin
www.w3.org/Style/CSS/
Este nuevo archivo servir para contener todas las definiciones de los distintos controles
y sus caractersticas visuales. Una forma simple de crear una nueva mscara es copiando
la estructura HTML de un control ya configurado y modificar el atributo ID
(Identificador) por SkinId (Identificador de mscara).
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
La mscara anterior aplicar para todas los controles de tipo Label (Etiqueta) y podremos encontrarla mediante el nombre mascaraEtiquetas. El siguiente paso ser especificar en la pgina ASP.net que debe usar el tema creado y a los controles de etiqueta cual
mscara usar.
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
Notemos que en la pgina ASP.net tenemos una cabecera que identifica, entre otras
cosas, el lenguaje en el cual la misma ser programada, as como cual clase se encargar
de manipularla. Otra propiedad ser la llamada Theme (Tema) dnde podremos especificar el tema que queremos utilizar para esta pgina. Nosotros usaremos el tema que
hemos creado en el paso anterior.
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
por separado.
Figura 13
Las mscaras pueden
prevenirnos de realizar
grandes modificaciones
masivas al comportamiento
visual de los controles.
Como vemos en el cdigo anterior, la estructura ser similar a la ya conocida. Las nicas
diferencias estn en la cabecera de la pgina la cual especifica que es una pgina maestra
mediante el uso del identificador <%@Master y el control ASP.net llamado
ContentPlaceHolder. Por lo tanto, podremos crear la estructura HTML que queramos
dentro de esta pgina como si se tratase de cualquier otra pgina Web. Lo nico que
deberemos tener en cuenta ser el lugar donde colocaremos el control
ContentPlaceHolder ya que este servir de referencia para las dems pginas Web que
utilicen la pgina maestra como molde de visualizacin. Para entender esto primero
agreguemos una tabla HTML a la pgina maestra dejando el control
ContentPlaceHolder dentro de una de las celdas de la misma.
19
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
Si bien hemos tenido que realizar algunas modificaciones a la pgina inicial para que
pueda visualizar el contenido de la pgina maestra, estas sern menores. El primer paso
es modificar la cabecera de la pgina para que utilice, al igual que hicimos con los temas,
la pgina maestra.
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
1234
Frames y pginas
maestras
Inicialmente resulta algo
complejo entender el
mecanismo de funcionamiento de las pginas maestras y
se las suele confundir con las
etiquetas HTML que hacen
referencia a Frames (Marcos).
A diferencia de estos, las
pginas maestras no
muestran varias pginas al
mismo tiempo si no que
antes de ejecutarse se
fusionan con la pgina de
contenidos para enviar una
nica pgina HTML al
navegador.
<asp:Content ID="Content2"
ContentPlaceHolderID="ContentPlaceHolder1" runat="server">Mi
primer sitio Web con ASP.net
<table style="width: 100%">
<tr>
...
...
</asp:Content>
Podemos ver que nuestro cdigo HTML ahora est dentro de otro control llamado
Content (Contenido) el cual, dentro de sus atributos, contiene uno llamado
ContentPlaceHolderID (Identificador de contenedor) el que apuntar al identificador de
contenido que tenemos en la pgina maestra.
Crear el comportamiento
El ltimo paso ser crear algunas lneas de cdigo para manipular el comportamiento de
nuestro sitio Web. Lo primero que haremos ser agregar algunos tems al control de lista
desplegable que tenemos en nuestra pgina. Si presionamos dos veces sobre la pgina
Web en la vista de diseo, nos enviar automticamente al evento de cdigo principal de
carga de la pgina.
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
El cdigo anterior cargar algunos elementos dentro de la lista desplegable para que el
usuario pueda seleccionar uno. Adems hemos agregado una condicin que nos permita
asegurarnos que la lista se cargue solo cuando la pgina sea cargada por primera vez. En
la Figura 15 podemos ver el resultado de este cdigo.
Con datos cargados agregaremos cdigo para la accin del botn de forma que cuando
el usuario presione sobre el mismo podamos capturar los datos escritos por este y
enviarlos por correo electrnico a nuestra casilla de correo. Para esto, al igual que
hicimos con el formulario presionaremos dos veces sobre el botn desde la vista de
diseo de la pgina Web.
21
Figura 15
La lista desplegable
muestra cada uno de los
tems cargados por medio
del cdigo.
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
22
Figura 16
Al tener una pgina
maestra todas las dems
pginas Web solo
requerirn el contenido a
visualizar y no toda la
estructura visual.
123
123
123
123
123
123
123
123
123
123
123
123
123
123
...
Response.Redirect("mensaje.aspx");
...
Dentro del objeto Response hacemos uso de la funcin Redirect (Redireccionar) pasando
como parmetro el nombre de la pgina a la cual queremos navegar. Esto producir que
el navegador ahora visualice la segunda pgina y no la del formulario como vemos en la
Figura 17.
Figura 17
Una vez el correo
electrnico es enviado el
usuario recibe el mensaje
de agradecimiento desde
la segunda pgina de
nuestro sitio Web.
Catlogo de productos
En este ejercicio nos enfocaremos en la utilizacin de SQL Server 2008 Express para el
almacenamiento y recuperacin de datos y cmo podremos accederlos desde nuestro
sitio Web para que sean desplegados hacia el usuario. Crearemos un catlogo de productos y aprenderemos a enlazar algunos de los controles utilizados para la muestra de
23