ASP.NET
ASP.NET
es un framework
para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores para
construir sitios web
dinámicos, aplicaciones web
y servicios web
XML. Apareció en enero de 2002 con la
versión 1.0 del .NET Framework,
y es la tecnología sucesora de la tecnología Active Server Pages
(ASP). ASP.NET esta construido sobre el Common Language Runtime,
permitiendo a los programadores escribir código ASP.NET usando cualquier
lenguaje admitido por el .NET Framework.
Cualquier persona que esta
familiarizada con el desarrollo de aplicaciones web sabrá que el desarrollo web
no es una tarea simple. Ya que mientras que un modelo de programación para
aplicaciones de uso común está muy bien establecido y soportado por un gran
número de lenguajes, herramientas de desarrollo, la programación web es una
mezcla de varios lenguajes de etiquetas, un gran uso de lenguajes de script y plataformas de
servidor. Por desgracia para el programador
de nivel intermedio, el conocimiento y habilidades que se necesitan para
desarrollar aplicaciones web tienen muy poco en común con las que son
necesarias en el desarrollo tradicional de aplicaciones.
Historia
Microsoft introdujo la tecnología
llamada Active Server Pages en diciembre de 1996.
Es parte del Internet Information
Server (IIS)
desde la versión 3.0 y es una tecnología de páginas activas que permite el uso
de diferentes scripts y componentes en conjunto con el tradicional HTML
para mostrar páginas generadas dinámicamente. La definición contextual de
Microsoft es que "Las Active Server Pages son un ambiente de aplicación
abierto y gratuito en el que se puede combinar código HTML, scripts y
componentes ActiveX
del servidor para crear soluciones dinámicas y poderosas para el web".
Después del lanzamiento del Internet
Information Services 4.0 en 1997, Microsoft comenzó a investigar las
posibilidades para un nuevo modelo de aplicaciones web que pudiera resolver las
quejas comunes sobre ASP, especialmente aquellas con respecto a la separación
de la presentación y el contenido y ser capaz de escribir código
"limpio".[1] A Mark Anders,
un administrador del equipo de IIS y Scott Guthrie, quien se había
unido a Microsoft en 1997 después de graduarse de la Universidad Duke, se les
dio la tarea de determinar como debería ser ese modelo. El diseño inicial fue
desarrollado en el curso de dos meses por Anders y Guthrie, y Guthrie codificó
los prototipos iníciales durante las celebraciones navideñas de 1997.[2]
El desarrollo
inicial de XSP fue hecho usando Java,[3] pero pronto se
decidió construir una nueva plataforma sobre el Common Language Runtime(CLR), pues
ofrecía un ambiente
orientado a objetos, recolección de basura y otras
características que fueron vistas como características deseables.
Características
Las páginas de ASP.NET, conocidas
oficialmente como "web forms" (formularios web), son el
principal medio de construcción para el desarrollo de aplicaciones web.[8] Los formularios
web están contenidos en archivos con una extensión ASPX; en jerga de
programación, estos archivos típicamente contienen etiquetas HTML
o XHTML estático, y también etiquetas
definiendo Controles Web que se procesan del lado del servidor y Controles
de Usuario donde los desarrolladores colocan todo el código estático y
dinámico requerido por la página web. Adicionalmente, el código dinámico que se
ejecuta en el servidor puede ser colocado en una página dentro de un bloque
ASP.NET sólo funciona sobre el servidor de Microsoft IIS, lo que supone una desventaja respecto a otros lenguajes del lado de servidor, ejecutables sobre otros servidores más populares como Apache. Ejemplos de esto son PHP, Perl o Python.
<%
-- código dinámico -- %>
que es muy
similar a otras tecnologías de desarrollo como PHP,
JSP
y ASP,
pero esta práctica es, generalmente, desaconsejada excepto para propósitos de
enlace de datos pues requiere más llamadas cuando se genera la página.ASP.NET sólo funciona sobre el servidor de Microsoft IIS, lo que supone una desventaja respecto a otros lenguajes del lado de servidor, ejecutables sobre otros servidores más populares como Apache. Ejemplos de esto son PHP, Perl o Python.
Formulario web de ejemplo
Este es un ejemplo que utiliza
código "en línea", opuesto al código independiente (code-behind).
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToLongDateString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Página de Ejemplo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label runat="server" id="Label1" />
</div>
</form>
</body>
</html>
ASP.NET
proporciona tres modos de persistencia para variables de sesión:
InProc
Las
variables de sesión son mantenidas dentro del proceso. Sin
embargo, en este modo, las variables son destruidas cuando el proceso ASP.NET
es reciclado o terminado.
StateServer
En este
modo, ASP.NET ejecuta un servicio de Windows separado que mantiene las
variables de estado. Como esta administración de estado ocurre fuera del proceso
ASP.NET, tiene un impacto negativo en el rendimiento, pero permite a múltiples
instancias de ASP.NET compartir el mismo estado del servidor, permitiendo que
una aplicación ASP.NET pueda tener su carga balanceada y escalada en múltiples
servidores. También, como el servicio de administración del estado se ejecuta
independiente de ASP.NET, las variables pueden persistir a través de las
finalizaciones del proceso ASP.NET.
SqlServer
En este
modo, las variables de estado son almacenadas en un servidor de base de
datos, accesible usando SQL. Las
variables de sesión pueden persistir a través de finalizaciones de procesos
también en este modo.
Estructura de directorios
En general, la estructura de
directorios de ASP.NET puede ser determinada por las preferencias del
desarrollador. Aparte de unos pocos nombres de directorios reservados, el sitio
puede expandirse a cualquier número de directorios. La estructura es típicamente
reflejada directamente en las urls.
Los nombres de directorios
especiales (a partir de ASP.NET 2.0 son):[16]
App_Browsers
Contiene
archivos de definición específicos para navegadores.
App_Code
Es un
directorio para códigos. El servidor ASP.NET automáticamente compilará los
archivos (y subdirectorios) en esta carpeta en un ensamblado que es accesible
desde cualquier página del sitio. App_Code es típicamente usada para código de
acceso a datos, código de modelo o código de negocios. También cualquier
manejador http especifico para el sitio e implementación de módulos y servicios
web van este directorio. Como alternativa a utilizar App_Code el desarrollador
puede optar por proporcionar un ensamblado independiente con código
precompilado.
App_Data
Directorio
por defecto para las base de datos, tales
como archivos mdb de Microsoft
Access y archivos mdf de Microsoft SQL Server. Este
directorio es usualmente el único con permisos de escritura en la aplicación.
App_LocalResources
Contiene
archivos de recursos localizados para páginas individuales del sitio.
App_GlobalResources
Contiene
archivos resx con recursos localizados disponibles para cada página del
sitio. Este es donde el desarrollador ASP.NET típicamente almacenara mensajes
que serán usados en más de una página.
App_Themes
usado para
temas alternativos del sitio.
App_WebReferences
Usado para
archivos de descubrimiento y archivos WSDL para
referencias a servicios web para ser
consumidos en el sitio.
Bin
Contiene
código compilado (archivos .dll) para controles, componentes, y otro código que
pueda ser referenciado por la aplicación. Cualquier clase representada por
código en la carpeta Bin es automáticamente referenciada en la aplicación.
Pasos para crear un sitio web ASP.Net con el Visual Studio 2008 |
Conceptos.
Para crear un proyecto web debemos
seleccionar desde el entorno del Visual Studio 2008: Archivo ->Nuevo sitio
web. Inmediatamente aparece un diálogo donde podemos configurar que versión de
Framework será compatible nuestra aplicación, la ubicación dentro del disco
donde se almacenará, el lenguaje de programación a utilizar:
En este ejemplo localizamos en la
unidad D y desde el explorador de archivos creamos dos carpetas una llamada
“TP4” y dentro de la misma la carpeta clase1 (en esta última carpeta es donde
se almacenará nuestra aplicación web)
Hemos dejado seleccionado por defecto el framework a utilizar (.NET framework 2.0)
También dejamos seleccionado la plantilla a utilizar "Sitio Web ASP.NET)"
Ya tenemos el esqueleto básico para iniciar nuestro sitio web empleando la tecnología de Microsoft.
Hemos dejado seleccionado por defecto el framework a utilizar (.NET framework 2.0)
También dejamos seleccionado la plantilla a utilizar "Sitio Web ASP.NET)"
Ya tenemos el esqueleto básico para iniciar nuestro sitio web empleando la tecnología de Microsoft.
En la parte izquierda tenemos el
“Cuadro de herramientas”, en esta aparecen las componentes visuales (Label,
TextBox, Button etc.) que tenemos disponibles para crear nuestro formulario
Web.
En el centro aparece la página en vista de código (se puede ver en “vista de diseño”, “Divisor” y “Código”)
En la parte derecha disponemos del “Explorador de soluciones” donde podemos identificar el directorio donde se almacena nuestra aplicación web y los archivos contenidos en dicho directorio.
Siempre que creamos una aplicación web nos crea un formulario web inicial y lo almacena en el archivo Default.aspx (la extensión aspx indica que se trata de una página dinámica ASP.Net, así como la extensión php indica que su contenido está programado en PHP)
Además del archivo Default.aspx se crea otro archivo llamada Default.aspx.vb (éste archivo contiene la codificación en Visual Basic de los eventos que definamos a los controles del formulario)
Otro archivo que veremos más adelante y que se crea en forma automático es el web.config.
Por último se crea una carpeta llamada App_Data.
En el centro aparece la página en vista de código (se puede ver en “vista de diseño”, “Divisor” y “Código”)
En la parte derecha disponemos del “Explorador de soluciones” donde podemos identificar el directorio donde se almacena nuestra aplicación web y los archivos contenidos en dicho directorio.
Siempre que creamos una aplicación web nos crea un formulario web inicial y lo almacena en el archivo Default.aspx (la extensión aspx indica que se trata de una página dinámica ASP.Net, así como la extensión php indica que su contenido está programado en PHP)
Además del archivo Default.aspx se crea otro archivo llamada Default.aspx.vb (éste archivo contiene la codificación en Visual Basic de los eventos que definamos a los controles del formulario)
Otro archivo que veremos más adelante y que se crea en forma automático es el web.config.
Por último se crea una carpeta llamada App_Data.
Para nuestro primer ejemplo
implementaremos el “Hola Mundo” para ello en el recuadro central seleccionamos
la pestaña “Diseño” y desde el cuadro de herramientas arrastramos un control de
tipo Label. Seguidamente desde el cuadro de propiedades ubicado en la pare
inferior derecha de la pantalla inicializamos la propiedad text con el mensaje
que queremos que muestre nuestra “Label”, en nuestro caso “Hola Mundo”. Una vez
modificada la propiedad Text con el mensaje que queremos mostrar y presionada
la tecla Enter podemos ver como se actualiza la ventana de Diseño en la parte
centrar de nuestra pantalla:
Para probar nuestra pequeña
aplicación desarrollada debemos presionar el triángulo verde que se encuentra
en la barra de botones, o desde el menú de opciones: Depurar->Iniciar
depuración, o presionar la tecla “F5”.
Inmediatamente nos aparece un diálogo que nos invita a modificar el archivo Web.config para que la página se pueda ejecutar en modo depuración (esto nos permite disponer puntos de interrupción o ejecutar paso a paso una aplicación) Seleccionamos el botón “Aceptar” para activar el modo depuración.
Podemos ver que inmediatamente aparece el navegador configurado por defecto con el resultado de la ejecución de la página:
Inmediatamente nos aparece un diálogo que nos invita a modificar el archivo Web.config para que la página se pueda ejecutar en modo depuración (esto nos permite disponer puntos de interrupción o ejecutar paso a paso una aplicación) Seleccionamos el botón “Aceptar” para activar el modo depuración.
Podemos ver que inmediatamente aparece el navegador configurado por defecto con el resultado de la ejecución de la página:
El Visual Studio 2008 instala un
servidor web propio que está escuchando en un puerto desocupado. Luego de
cerrar la ventana del navegador debemos detener la depuración de nuestra
aplicación para poder modificarla, para esto podemos seleccionar desde el menú
Depurar -> Detener Depuración o presionar desde la barra de botones el
cuadradito azul (luego de esto aparece el “Cuadro de herramientas”)
Ajax con
ASP.NET
La característica fundamental de
AJAX es permitir actualizar parte de una página con información que se
encuentra en el servidor sin tener que refrescar completamente la página. De
modo similar podemos enviar información al servidor.
Veremos como ASP.Net nos esconde la
complejidad de Ajax y nos permite una fácil transición entre aplicaciones web
tradicionales y el nuevo modelo.
ASP.NET AJAX
Hay una variedad de formas de
aplicar el Ajax en cualquier aplicación Web, incluyendo ASP.NET. Para ponerlo
en práctica Ajax sin utilizar librerías, es necesario que se tenga una
comprensión profunda de JavaScript, porque es el lenguaje JavaScript el que se
ejecuta en el navegador, que solicita la nueva información del servidor web
cuando sea necesario y la actualización de la página en consecuencia.
Si bien JavaScript no es
terriblemente complejo, es muy difícil de programar correctamente, por dos razones:
- La aplicación de los principales
detalles de JavaScript varía de navegador a navegador, que significa que
necesita una enorme cantidad de experiencia para escribir una buena página web
que se ejecuta igual de bien en todos los navegadores.
- JavaScript es un lenguaje muy laxo
que tolera muchos pequeños errores. La captura de estos errores y la
eliminación de ellos es un proceso tedioso. Aún peor, el error puede ser fatal
en algunos navegadores y dañina en otros, lo que complica la depuración.
En este capítulo, usted NO va a usar
JavaScript directamente. Por el contrario, utilizará un modelo de nivel
superior llamado ASP.NET AJAX.
ASP.NET AJAX le da un conjunto de
componentes del lado del servidor y los controles ASP.NET tradicionales que
puede utilizar en el diseño de su página web. Estos componentes hacen
automáticamente todo el código JavaScript que necesita para obtener el efecto
deseado. El resultado es que puede crear una página con Ajax. Por supuesto,
usted no obtendrá el máximo control para personalizar hasta el último detalle
de su página, pero usted recibirá una gran funcionalidad con un mínimo de
esfuerzo.
Extensiones Ajax
El Visual Studio .Net 2008 agrega
una pestaña que agrupa los controles referidos a Ajax:
Para poder utilizar ASP.NET AJAX es
necesario un control de tipo ScriptManager. Este control es el cerebro de
ASP.NET AJAX, Cuando disponemos un control de tipo ScriptManager en el
formulario aparece un cuadro gris, pero cuando ejecutemos dicha página no
aparecerá, es decir el control ScriptManager no genera etiquetas HTML.
El control ScriptManager genera todo
el código JavaScript necesario para las llamadas asíncronas desde el navegador
al servidor web.
Cada página que utiliza ASP.NET AJAX requiere solo una instancia de la clase ScriptManager, indistintamente la cantidad de regiones que vallamos a actualizar posteriormente.
Cada página que utiliza ASP.NET AJAX requiere solo una instancia de la clase ScriptManager, indistintamente la cantidad de regiones que vallamos a actualizar posteriormente.
Pero, ¿cuál es la diferencia de ASP.net con el ASP común que conocemos?
Mucha, realmente es mucha. Mientras
ASP se escribía en VBScript, ASP.net puede ser escrito en cualquier lenguaje
soportado por el .net Framework, es decir: VB.net; C# y JScript.net. Si, como
has leído, ya no puedes utilizar VBScript sino que debes utilizar VB.net que es
lo que más se aproxima. Otro cambio radical es que ASP.net es un lenguaje
totalmente orientado a objetos.
¿Qué mejoras trae ASP.net? ¿Es realmente mejor que ASP?
Sin duda, es mucho mejor que el ASP
tradicional, ASP.net trae diversas mejoras entre las cuales se destacan:
- Rendimiento: la aplicación de compila en una sola vez al lenguaje nativo, y luego, en cada petición tiene una compilación Just In Time, es decir se compila desde el código nativo, lo que permite mucho mejor rendimiento. También permite el almacenamiento del caché en el servidor
- Rapidez en programación: mediante diversos controles, podemos con unas pocas líneas y en menos de 5 minutos mostrar toda una base de datos y hacer rutinas complejas.
- Servicios Web: trae herramientas para compartir datos e información entre distintos sitios.
- Seguridad: tiene diversas herramientas que garantizan la seguridad de nuestras aplicaciones.
¿Qué diferencias de sintaxis hay con respecto de ASP 3.0?
Partiendo de la base de que el
lenguaje es otro, muchas, al ser programación orientada a objetos y al ser
lenguaje de Visual Basic .net todo es muy diferente. Hay que cambiar el
pensamiento y todos los viejos conceptos que teníamos de ASP 3.0.
ASP.net es más bien parecido a
Visual Basic, en la página, todos los elementos son objetos, activos de
servidor (que se generan ahí) y tienen propiedades y métodos.
Vale aclarar que en ASP.net existen
los formularios activos del servidor ¿qué es esto?, son como los formularios
tradicionales de HTML, pero se le agrega en el TAG FORM el atributo
runat=server, y dentro del formulario se agregan los controles activos de servidor.
Cuando ocurre un evento, la página se auto envía a si misma y se procesa el
controlador para ese evento. Por ejemplo:
<%@ Page language="VB"%>
<%@ Import Namespace="System.data.oledb" %>
<script runat="server">
Sub Nombre_change(sender as object, e as EventArgs)
Mensaje.text = "Buenos días " + Nombre.text
End sub
</script>
<html><body>
<font face="verdana" size=2>Esta es la página de Pablo!</font><br><br>
<form runat="server">
Tu nombre: <asp:TextBox id="Nombre" OnTextChanged="Nombre_change"
runat="server" autopostback="true"/>
<asp:label id="Mensaje" runat="server" />
</form>
</body></html>
No hay comentarios:
Publicar un comentario