x
1

ASP.NET



ASP.NET es un entorno para aplicaciones web desarrollado y comercializado por Microsoft. Los programadores o también diseñadores pueden utilizar este framework para construir sitios web dinámicos, aplicaciones web y servicios web.[1]​ 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 está construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.

Microsoft introdujo la tecnología llamada Active Server Pages en diciembre de 1996. Es parte de Internet Information Services (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 la 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".[2]​ 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 cómo 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 iniciales durante las celebraciones navideñas de 1997.[3]

El prototipo inicial fue llamado "XSP"; Guthrie explicó en una entrevista en el año 2007 que,

El desarrollo inicial de XSP fue hecho usando Java,[4]​ 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. Guthrie describió esta decisión como un "alto riesgo", pues el éxito de su nueva plataforma de desarrollo web estaría atado al éxito del CLR, que, como XSP, aún 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 público), y fue renombrado a ASP+, en este punto la nueva plataforma fue vista como el sucesor de Active Server Pages, y la intención fue proporcionar un medio fácil de migración para los desarrolladores ASP.[5]

La primera demostración pública y la liberación de la primera beta de ASP+ (y el resto del .NET Framework) se realizó en el Microsoft's Professional Developers Conference (PDC) el 11 de julio de 2000 en Orlando. Durante la presentación de Bill Gates, Fujitsu demostró ASP+ usado en conjunción con COBOL,[6]​ y el soporte para una variedad de otros lenguajes fue anunciada, incluyendo los nuevos lenguajes de Microsoft, Visual Basic .NET y C#, así como también el soporte por medio de herramientas de interoperabilidad para Python y Perl creadas por la empresa canadiense ActiveState.[7]

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 aparición en The MSDN Show en ese año,

Después de cuatro años de desarrollo, y una serie de versiones de evaluación en los años 2000 y 2001, ASP.NET 1.0 fue liberado el 5 de enero de 2002 como parte de la versión 1.0 del .NET Framework. Incluso antes de su liberación, docenas de libros habían sido escritos sobre ASP.NET[8]

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.[9]​ 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 <% -- 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 no sólo funciona sobre el servidor de Microsoft IIS, también lo hace sobre Apache.

Este es un ejemplo que utiliza código "en línea", opuesto al código independiente (code-behind).

Microsoft recomienda que para realizar programación dinámica se use el modelo code-behind, o de respaldo, que coloca el código en un archivo separado o en una etiqueta de script especialmente diseñada. Los nombres de los archivos code-behind están basados en el nombre del archivo ASPX tales como MiPagina.aspx.cs o MiPagina.aspx.vb (esta práctica se realiza automáticamente en Microsoft Visual Studio y otros entornos de desarrollo). Cuando se usa este estilo de programación, el desarrollador escribe el código correspondiente a diferentes eventos, como la carga de la página, o el clic en un control, en vez de un recorrido lineal a través del documento.

El modelo code-behind de ASP.NET marca la separación del ASP clásico y alienta a los desarrolladores a construir aplicaciones con la idea de presentación y contenido separados en mente. En teoría, esto permite a un diseñador web, por ejemplo, enfocarse en la creación del diseño con menos posibilidades de alterar el código de programación mientras lo hace. Esto es similar a la separación en el Modelo Vista Controlador

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 código code-behind mientras que la propiedad Inherits especifica la clase de la cual deriva la página. En este ejemplo, la directiva @ Page está incluida en EjemploCodeBehind.aspx y el archivo EjemploCodeBehind.aspx.cs contendrá el código para esta página:

En este caso, el método Page_Load() será llamado cada vez que la página ASPX sea solicitada al servidor. El programador puede implementar manejadores de eventos en varias etapas del proceso de ejecución de la página..

ASP.NET permite la creación de componentes reutilizables a través de la creación 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, además de etiquetas para definir controles web y otros controles de usuario. También pueden usar el modelo code-behind.

Los programadores pueden agregar sus propias propiedades y métodos,[10]​ y manejadores de eventos.[11]​ Un mecanismo de eventos en burbuja proporciona la capacidad de pasar un evento disparado por un control de usuario a la página que lo contiene .

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 información sobre conexiones anteriores. Por lo tanto, si la aplicación requiere interacción entre conexiones, tiene que implementar su propia administración del estado. ASP.NET proporciona varias maneras de administrar el estado de las aplicaciones ASP.NET.

El estado de la aplicación (Application state) es una colección de variables definidas por el usuario que son compartidas por todas las invocaciones de una aplicación 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 están disponible hasta que la última instancia termina. Las variables de estado o variables de sesión de la aplicación son identificadas por nombres.[12]

El estado de la sesión (Session state) es una colección de variables definidas por el usuario, las cuales persisten durante la sesión de un usuario. Estas variables son únicas para diferentes instancias de una sesión de usuario, y son accedidas usando la colección Session. Las variables de sesión pueden ser preparadas para ser automáticamente destruidas después de un determinado tiempo de inactividad, incluso si la sesión no ha terminado. Del lado del cliente, una sesión de usuario es identificada por una cookie o codificando el ID de la sesión en la misma URL.[12]

ASP.NET proporciona tres modos de persistencia para variables de sesión:[12]

El estado de la vista (View state) se refiere al mecanismo de administración de estado a nivel de página, que es utilizado por las páginas 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 envío del formulario en un campo oculto conocido como __VIEWSTATE. El servidor envía de regreso las variables para que cuando la página sea renderizada de nuevo, los controles volverán a su último estado. Del lado del servidor, la aplicación 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 están disponibles para su uso en ASP.NET usando la colección ViewState.[13][14]

Al ser liberado, ASP.NET carecía de un motor de plantillas. Debido a que .NET framework es orientado a objetos y permite herencia, muchos desarrolladores podrían definir una nueva clase que herede desde "System.Web. UI.Page", escribir métodos en ella que generen HTML y hacer que las páginas de su aplicación hereden de esta clase. Aunque esto permite que haya elementos comunes dentro de un sitio web, añade complejidad y mezcla código fuente con lenguaje de etiquetas. Además, este método puede visualizarse únicamente al ejecutar la aplicación, no mientras se está diseñando. Otros desarrolladores usan la inclusión de archivos y otros trucos para evitar la implementación de enlaces de navegación y otros elementos en cada página.

ASP.NET 2.0 presentó el concepto de página maestra (Master Page), que permite el desarrollo de páginas basado en plantillas web. Una aplicación web puede tener una o más páginas maestras, las cuales pueden ser anidadas.[15]​ Las plantillas maestras contienen controles contenedores, llamados ContentPlaceHolders para indicar donde irá el contenido dinámico, además de HTML y JavaScript que será compartido a través de las páginas hijas.

Las páginas hijas también usan esos controles ContentPlaceHolder, que deben ser relacionados con el ContentPlaceHolder de la página maestra que contiene a esta página hija. El resto de la página está definido por las partes compartidas de la página maestra. Todo el lenguaje de marcado y controles de servidor en la página de contenido deben ser colocadas dentro del control ContentPlaceHolder.

Cuando una solicitud es hecha por una página de contenido, ASP.NET mezcla la salida de la página de contenido con la salida de la página maestra, y envía el resultado al usuario.

La página maestra permanece completamente accesible a la página del contenido. Esto significa que la página de contenidos puede manipular los encabezados, cambiar el título, configurar la cache, etc. Si la página maestra expone propiedades públicas o métodos, el contenido de la página puede utilizar estos también.

Hoy en día con el nuevo producto de Microsoft WebMatrix, se dio a conocer el nuevo motor de plantillas conocido como Razor. Ya antes el IDE de Visual Studio incluía otros motores. Facilitando a las páginas ASP.NET Modelo Vista Controlador.

Otras extensiones de archivo asociadas con las diferentes versiones de ASP.NET incluyen:

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):[17]

En el modelo de desarrollo web basado en páginas activas, la programación ASP actual tiene diversas limitaciones:

ASP.NET AJAX, anteriormente llamado Atlas, es un conjunto de extensiones para ASP.NET desarrollado por Microsoft para implementar la funcionalidad de Ajax.

ASP.NET AJAX fue liberado en enero de 2007 después de un largo periodo de pruebas. Fue subsecuentemente incluido con la versión 3.5 del .NET Framework, que fue liberada junto con Visual Studio 2008 en noviembre de 2007.

Es una extensión de páginas ASP.NET utilizando la arquitectura MVC.

También conocido como ASP.NET Web Pages, es una alternativa a Web Forms diseñada para ser utilizada con MVC.

Es un Framework inspirado en Ruby on Rails para la plataforma de Microsoft, que viene como una extensión de ASP.NET, que se puede utilizar para construir aplicaciones web orientadas a los datos. Expone las tablas de una base de datos mediante la codificación en la URI del servicio web ASP.NET, y los datos de la tabla se representan automáticamente a HTML. El proceso de renderizado se puede controlar con el uso de plantillas de diseño personalizadas. Internamente, se descubre el esquema de base de datos mediante el uso de los metadatos de la base de datos.

Es un API HTTP para exposición de servicios Web RESTful.

Es una nueva biblioteca para desarrolladores ASP.NET que hace el desarrollo Web en tiempo real funcionalmente fácil. Permite una comunicación bidireccional entre el cliente y el servidor. Los servidores ahora pueden insertar el contenido a los clientes conectados al instante cuando estén disponible. Soporta Web Sockets. Incluye APIs para la gestión de la conexión (por ejemplo, conectar y desconectar eventos), agrupación de conexiones y autorización.

Actualmente, ASP.NET soporta tres modelos de programación: ASP.NET Web Forms, ASP.NET MVC y ASP.NET Web Pages. Aunque los tres modelos de programación se ejecutan sobre la misma base de ASP.NET, cada uno de ellos estructura la aplicación de maneras completamente distintas, promueve metodologías de desarrollo diferentes y se adapta a perfiles de desarrolladores distintos. Algunas características que son virtudes en unos modelos de programación, pueden ser consideradas debilidades en el otro. ¿Qué es más importante, desarrollar a un gran nivel de abstracción o tener control total cada uno de los aspectos de la aplicación? Simplicidad vs. Control. Flexibilidad vs. Eficiencia. Estas son las compensaciones que hay que baremar a la hora de elegir. En esta serie de artículos repasaremos las diferencias entre los tres modelos de programación, y los escenarios favorables a cada uno de ellos.

Es importante recalcar que el hecho de elegir uno de los modelos de programación al comenzar un proyecto de ASP.NET no excluye necesariamente a los otros, sino que es posible tener aplicaciones “híbridas” y en muchos casos tendrá todo el sentido desarrollar ciertas partes de la aplicación con un modelo de programación y otras partes con otro modelo distinto.

ASP.NET Web Forms fue el primero de los tres modelos de programación en existir, y proporciona un gran nivel de abstracción con un modelo de programación familiar basado en eventos y controles que favorece la productividad mediante la programación declarativa reduciendo la cantidad de código necesaria para implementar una determinada funcionalidad.

ASP.NET MVC se concibió como alternativa a Web Forms y proporciona un modelo de programación basado en el popular patrón de arquitectura MVC. Entre sus principales características destacan su completa integración con pruebas unitarias y su separación más clara entre la lógica de presentación, la lógica de negocio y la lógica de acceso a datos.

Comunidad ASP.NET MVC en español: https://groups.google.com/d/forum/mundoaspnetmvc

ASP.NET Web Pages es el más reciente de los tres modelos de programación, y fue creado como respuesta a una creciente demanda de desarrolladores web sin experiencia previa con ASP.NET, cuya iniciación en ASP.NET Web Forms o MVC les suponía una inversión inicial de tiempo demasiado grande. Web Pages proporciona un modelo de programación más simple y rápido de aprender, sin renunciar a toda la funcionalidad y flexibilidad de ASP.NET.

En la actualidad una aplicación .NET puede ejecutarse de dos formas distintas:

Aplicaciones cliente/servidor: Estas aplicaciones están típicamente en formato de ejecutables compilados. Estos pueden integrar toda la riqueza de una interfaz de usuario, tal es el caso de las aplicaciones de desempeño y productividad, pero no se reúne la lógica de negocio como un recurso que se pueda reutilizar. Además acostumbran ser menos gestionables y escalables que las demás aplicaciones.

Aplicaciones que utilizan el navegador: Dichas aplicaciones están caracterizadas por contar con una interfaz de web rica y muy útil. La interfaz gráfica integra varias tecnologías, las cuales son el HTML, XHTML, scripting, etc; siempre y cuando el navegador que se esté utilizando soporte estas tecnologías.



Escribe un comentario o lo que quieras sobre ASP.NET (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!