Sunteți pe pagina 1din 10

Historia del ASP.

NET

Microsoft introdujo la tecnologa llamada Active Server Pags en diciembre de 1996. Es parte del Internet Informacin Server (IIS) desde la versin 3.0 y es una tecnologa de pginas activas que permite el uso de diferentes scripts y componentes en conjunto con el tradicional HTML para mostrar pginas generadas dinmicamente. La definicin contextual de Microsoft es que "Las Active Server Pags son un ambiente de aplicacin abierto y gratuito en el que se puede combinar cdigo HTML, scripts y componentes ActiveX del servidor para crear soluciones dinmicas y poderosas para el web". Despus del lanzamiento del Internet Informacin Servicies 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 separacin de la presentacin y el contenido y ser capaz de escribir cdigo "limpio".1 A Mark Anders, un administrador del equipo de IIS y Scott Guthrie, quien se haba unido a Microsoft en 1997 despus de graduarse de la Universidad Duke, se les dio la tarea de determinar cmo debera ser ese modelo. El diseo inicial fue desarrollado en el curso de dos meses por Anders y Guthrie, y Guthrie codific los prototipos inciales durante las celebraciones navideas de 1997. El prototipo inicial fue llamado "XSP"; Guthrie explic en una entrevista en el ao 2007 que: "People would always ask what the X stood for. At the time it really didn't stand for anything. XML started with that; XSLT started with that. Everything cool seemed to start with an X, so that's what we originally named it". Traduccion: "La gente siempre se preguntaba qu significaba la X. En ese momento, realmente no significaba nada. XML comenzaba as, al igual que XSLT. Todo lo novedoso pareca empezar con una X, as que ese es el motivo por el que originalmente lo llamamos as." El desarrollo inicial de XSP fue hecho usando Java, pero pronto se decidi construir una nueva plataforma sobre el Common Language Runtime (CLR), pues ofreca un ambiente orientado a objetos, recoleccin de basura y otras caractersticas que fueron vistas como caractersticas deseables. Guthrie describi esta decisin como un "alto riesgo", pues el xito de su nueva plataforma de desarrollo web estara atado al xito del CLR, que, como XSP, an estaba en etapas tempranas de desarrollo, tanto as que el equipo XSP fue el primer equipo en Microsoft en enfocarse en el CLR. Con el cambio al Common Language Runtime, XSP fue implementado en C# (conocido internamente como "Project Cool" pero mantenido en secreto para el pblico), y fue renombrado a ASP+, para este punto la nueva plataforma fue vista como el sucesor de Active Server Pages, y la intencin fue proporcionar un medio fcil de migracin para los desarrolladores ASP.

La primera demostracin pblica y la liberacin de la primera beta de ASP+ (y el resto del .NET Framework) se realizaron en el Microsoft Professional Developers Conference (PDC) el 11 de julio de 2000 en Orlando, Florida. Durante la presentacin de Bill Gates, Fujitsu demostr ASP+ usado en conjuncin con COBOL, y el soporte para una variedad de otros lenguajes fue anunciada, incluyendo los nuevos lenguajes de Microsoft, Visual Basic .NET y C#, as como tambin el soporte por medio de herramientas de interoperabilidad para Python y Perl creadas por la empresa canadiense ActiveState. Una vez que la marca ".NET" fue seleccionada en la segunda mitad del 2000. Se cambi el nombre de ASP+ a ASP.NET. Mark Anders explic en una aparicin en The MSDN Show en ese ao: "The .NET initiative is really about a number of factors, its about delivering software as a service, it's about XML and web services and really enhancing the Internet in terms of what it can do .... we really wanted to bring its name more in line with the rest of the platform pieces that make up the .NET framework." Traduccion: "La iniciativa .NET comprende un nmero de factores, trata sobre la entrega de software como servicio, sobre XML y servicios web y la mejora real del Internet en trminos de qu puede hacer... de verdad queremos llevar su nombre (de ASP+) ms alineado con el resto de las piezas de la plataforma que componen el .NET framework". Despus de cuatro aos de desarrollo, y una serie de versiones de evaluacin en los aos 2000 y 2001, ASP.NET 1.0 fue liberado el 5 de enero de 2002 como parte de la versin 1.0 del .NET Framework. Incluso antes de su liberacin, docenas de libros haban sido escritos sobre ASP.NET.

Caractersticas
Las pginas de ASP.NET, conocidas oficialmente como "web forms" (formularios web), son el principal medio de construccin para el desarrollo de aplicaciones web.8 Los formularios web estn contenidos en archivos con una extensin ASPX; en jerga de programacin, estos archivos tpicamente contienen etiquetas HTML o XHTML esttico, y tambin etiquetas definiendo Controles Web que se procesan del lado del servidor y Controles de Usuario donde los desarrolladores colocan todo el cdigo esttico y dinmico requerido por la pgina web. Adicionalmente, el cdigo dinmico que se ejecuta en el servidor puede ser colocado en una pgina dentro de un bloque <% -- cdigo dinmico -- %> que es muy similar a otras tecnologas de desarrollo como PHP, JSP y ASP, pero esta prctica es, generalmente, desaconsejada excepto para propsitos de enlace de datos pues requiere ms llamadas cuando se genera la pgina. ASP.NET slo funciona sobre el servidor de Microsoft IIS, lo que supone una desventaja respecto a otros lenguajes del lado de servidor, ejecutables sobre otros servidores ms populares como Apache. Ejemplos de esto son PHP, Perl o Python.

Formulario web de ejemplo


Este es un ejemplo que utiliza cdigo "en lnea", opuesto al cdigo independiente (code-behind).

El modelo Code-behind
Microsoft recomienda que para realizar programacin dinmica se use el modelo code-behind, o de respaldo, que coloca el cdigo en un archivo separado o en una etiqueta de script especialmente diseada. Los nombres de los archivos code-behind estn basados en el nombre del archivo ASPX tales como MiPagina.aspx.cs o MiPagina.aspx.vb (esta prctica se realiza automticamente en Microsoft Visual Studio y otras interfaces de desarrollo). Cuando se usa este estilo de programacin, el desarrollador escribe el cdigo correspondiente a diferentes eventos, como la carga de la pgina, o el clic en un control, en vez de un recorrido lineal a travs del documento. El modelo code-behind de ASP.NET marca la separacin del ASP clsico y alienta a los desarrolladores a construir aplicaciones con la idea de presentacin y contenido separados en mente. En teora, esto permite a un diseador web, por ejemplo, enfocarse en la creacin del diseo con menos posibilidades de alterar el cdigo de programacin mientras lo hace. Esto es similar a la separacin en el Modelo Vista Controlador.

Ejemplo

La etiqueta superior es colocada al inicio del archivo ASPX. La propiedad CodeFile de la directiva @ Page especifica qu archivo (.cs o .vb) contiene el cdigo code-behind mientras que la propiedad Inherits especifica la clase de la cual deriva la pgina. En este ejemplo, la directiva @ Page est incluida en EjemploCodeBehind.aspx y el archivo EjemploCodeBehind.aspx.cs contendr el cdigo para esta pgina:

En este caso, el mtodo Page_Load () ser llamado cada vez que la pgina ASPX sea solicitada al servidor. El programador puede implementar manejadores de eventos en varias etapas del proceso de ejecucin de la pgina.

Controles de usuario
ASP.NET permite la creacin de componentes reutilizables a travs de la creacin de Controles de Usuario (User Controls). Un control de usuario sigue la misma estructura que un formulario web, excepto que los controles derivan de la clase System.Web.UI.UserControl, y son almacenados en archivos ASCX. Como los archivos ASPX, un ASCX contiene etiquetas HTML o XHTML, adems de etiquetas para definir controles web y otros controles de usuario. Tambin pueden usar el modelo code-behind. Los programadores pueden agregar sus propias propiedades y mtodos, y manejadores de eventos. Un mecanismo de eventos en burbuja proporciona la capacidad de pasar un evento disparado por un control de usuario a la pgina que lo contiene.

Administracin del estado


Las aplicaciones ASP.NET son alojadas en un servidor web y se tiene acceso a ellas mediante el protocolo sin estado HTTP, que no guarda ninguna informacin sobre conexiones anteriores. Por lo tanto, si la aplicacin requiere interaccin entre conexiones, tiene que implementar su propia administracin del estado. ASP.NET proporciona varias maneras de administrar el estado de las aplicaciones ASP.NET.

Estado de la aplicacin
El estado de la aplicacin (Application state) es una coleccin de variables definidas por el usuario que son compartidas por todas las invocaciones de una aplicacin ASP.NET. Estas son establecidas e inicializadas cuando el evento Application_OnStart se dispara en la carga de la primera instancia de las aplicaciones y estn disponible hasta que la ltima instancia termina. Las variables de estado de la aplicacin son identificadas por nombres.

Estado de la sesin
El estado de la sesin (Session state) es una coleccin de variables definidas por el usuario, las cuales persisten durante la sesin de un usuario. Estas variables son nicas para diferentes instancias de una sesin de usuario, y son accedidas usando la coleccin Session. Las variables de sesin pueden ser preparadas para ser automticamente destruidas despus de un determinado tiempo de inactividad, incluso si la sesin no ha terminado. Del lado del cliente, una sesin de usuario es identificada por una cookie o codificando el ID de la sesin en la misma URL.

ASP.NET proporciona tres modos de persistencia para variables de sesin:

InProc
Las variables de sesin 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 administracin de estado ocurre fuera del proceso ASP.NET, tiene un impacto negativo en el rendimiento, pero permite a mltiples instancias de ASP.NET compartir el mismo estado del servidor, permitiendo que una aplicacin ASP.NET pueda tener su carga balanceada y escalada en mltiples servidores. Tambin, como el servicio de administracin del estado se ejecuta independiente de ASP.NET, las variables pueden persistir a travs 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 sesin pueden persistir a travs de finalizaciones de procesos tambin en este modo.

Estado de la vista
El estado de la vista (View state) se refiere al mecanismo de administracin de estado a nivel de pgina, que es utilizado por las pginas HTML generadas por las aplicaciones ASP.NET para mantener el estado de los controles de los formularios web y los widgets. El estado de los controles es codificado y mandado al servidor en cada envo del formulario en un campo oculto conocido como __VIEWSTATE. El servidor enva de regreso las variables para que cuando la pgina sea renderizada de nuevo, los controles volvern a su ltimo estado. Del lado del servidor, la aplicacin puede cambiar el estado de la vista, si los resultados del procesamiento actualizan el estado de cualquier control. El estado de los controles individuales son decodificados en el servidor, y estn disponibles para su uso en ASP.NET usando la coleccin ViewState.

Motor de plantillas
Al ser liberado, ASP.NET careca de un motor de plantillas. Debido a que el .NET framework es orientado a objetos y permite la herencia, muchos desarrolladores podran definir una nueva clase que herede desde "System.Web. UI.Page", escribir mtodos en ella que renderizen HTML, y entonces hacer las pginas en su aplicacin que hereden de esta nueva clase. Mientras esto permite que los elementos comunes sean dentro de un sitio, agrega complejidad y mezcla cdigo fuente con lenguaje de marcado. Adems, este mtodo puede ser visto solamente al ejecutar la aplicacin, no mientras se est diseando. Otros desarrolladores han usado archivos incluidos y otros trucos para evitar la implementacin de enlaces de navegacin y otros elementos en cada pgina. ASP.NET 2.0 present el concepto de pgina maestra (Master Page), que permite el desarrollo de pginas basado en plantillas web. Una aplicacin web puede tener una o ms pginas maestras, las cuales pueden ser anidadas. Las plantillas maestras contienen controles contenedores, llamados ContentPlaceHolders para indicar donde ira el contenido dinmico, adems de HTML y JavaScript que ser compartido a travs de las pginas hijas. Las pginas hijas tambin usan esos controles ContentPlaceHolder, que deben ser relacionados con el ContentPlaceHolder de la pgina maestra que contiene a esta pgina hija. El resto de la pgina est definido por las partes compartidas de la pgina maestra. Todo el lenguaje de marcado y controles de servidor en la pgina de contenido deben ser colocadas dentro del control ContentPlaceHolder. Cuando una solicitud es hecha por una pgina de contenido, ASP.NET mezcla la salida de la pgina de contenido con la salida de la pgina maestra, y enva el resultado al usuario. La pgina maestra permanece completamente accesible a la pgina del contenido. Esto significa que la pgina de contenidos puede manipular los encabezados, cambiar el ttulo, configurar la cache, etc. Si la pgina maestra expone propiedades pblicas o mtodos, el contenido de la pgina puede utilizar estos tambin.

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 nmero de directorios. La estructura es tpicamente reflejada directamente en las urls. Los nombres de directorios especiales (a partir de ASP.NET 2.0 son):

App_Browsers
Contiene archivos de definicin especficos para navegadores.

App_Code
Es un directorio para cdigos. El servidor ASP.NET automticamente compilar los archivos (y subdirectorios) en esta carpeta en un ensamblado que es accesible desde cualquier pgina del sitio. App_Code es tpicamente usada para cdigo de acceso a datos, cdigo de modelo o cdigo de negocios. Tambin cualquier manejador http especfico para el sitio e implementacin de mdulos y servicios web van este directorio. Como alternativa a utilizar App_Code el desarrollador puede optar por proporcionar un ensamblado independiente con cdigo pre compilado.

App_Data
Directorio por defecto para la 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 aplicacin.

App_LocalResources
Contiene archivos de recursos localizados para pginas individuales del sitio.

App_GlobalResources
Contiene archivos resx con recursos localizados disponibles para cada pgina del sitio. Este es donde el desarrollador ASP.NET tpicamente almacenara mensajes que sern usados en ms de una pgina.

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 cdigo compilado (archivos .dll) para controles, componentes, y otro cdigo que pueda ser referenciado por la aplicacin. Cualquier clase representada por cdigo en la carpeta Bin es automticamente referenciada en la aplicacin.

Evolucin respecto al ASP clsico


En el modelo de desarrollo web basado en pginas activas, la programacin ASP actual tiene diversas limitaciones: Para que todo ocurra en una pgina web, es habitual escribir una gran cantidad de cdigo para resolver necesidades sencillas. ASP.NET incorpora un modelo declarativo a la programacin web: los controles de servidor funcionan en una pgina Web simplemente declarndolos. Cuando se carga la pgina ASP.NET, se instancian los controles listados en la pgina ASP y es responsabilidad del control emitir cdigo HTML que el navegador pueda entender. ASP clsico es un tanto desorganizado. En una pgina ASP podemos incluir casi todo: HTML plano, cdigo script, objetos COM y texto. No hay una distincin formal entre el contenido de una pgina y su comportamiento: simplemente, insertamos cdigo en la pgina, y a ver qu pasa. ASP.NET impone un cierto orden sobre el modelo de programacin estndar ASP. En cierto modo, esta "desorganizacin" puede evitarse fcilmente usando el sentido comn y algunas de las nuevas tecnologas. Por ejemplo, podemos escribir en nuestras pginas ASP nicamente cdigo VBScript. Dicho cdigo generara un mensaje XML, que luego sera interpretado por un archivo XSLT. De esta forma conseguimos evitar el llamado "cdigo spaguetti", aumentando la claridad del cdigo y la velocidad de ejecucin de las pginas ASP. La tercera limitacin en el desarrollo con ASP es que con el tradicional utilizamos lenguajes de scripting no tipeados como VBScript o JScript. Podemos instalar otros motores de scripting que impongan verificacin de tipos; sin embargo, no son universalmente conocidos o utilizados como los anteriores. ASP.NET claramente separa la porcin basada en script de una pgina web de su contenido. ASP.Net, puede decirse que en nuevo nivel de abstraccin en la construccin de sitios web, porque se pueden crear rpidamente aplicaciones web, basndose en los controles incluidos en el framework o muchos gratuitos que hay en la red, ocultando el cdigo de mucho Ej.: Puedes crear fcilmente un grid o tabla, y sta se auto-ordena, pgina, etc., obteniendo sus datos desde cualquier base de datos. Incluye una gran herramienta para la construccin de reportes, y esto incluye medios automticos para exportarlos a XLS o PDF, y de igual forma incluye CristalReport. Adems permite separar completamente la interfaz de la lgica de negocio. Excelente para desarrollo de aplicaciones multicapas. Es muy sencilla la creacin de pginas con AJAX, slo incluyendo unos controles, as como descargar gratuitamente el ToolKit de ASP.Net Ajax.

Uso actual del lenguaje


En la actualidad una aplicacin ASP.NET puede ejecutarse de dos formas distintas: Aplicaciones cliente/servidor: Estas aplicaciones estn tpicamente en formato de ejecutables compilados. Estos pueden integrar toda la riqueza de una interfaz de usuario, tal es el caso de las aplicaciones de desempeo y productividad, pero no se rene la lgica de negocio como un recurso que se pueda reutilizar. Adems acostumbran ser menos gestionables y escalables que las dems aplicaciones. Aplicaciones que utilizan el navegador: Dichas aplicaciones estn caracterizadas por contar con una interfaz de web rica y muy til. La interfaz grfica integra varias tecnologas, las cuales son el HTML, XHTML, scripting, etc.; siempre y cuando el navegador que se est utilizando soporte estas tecnologas.

S-ar putea să vă placă și