Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Qué es ASP.NET y cuáles son sus puntos fuertes

Juan G. Carmona
  • Escrito por Juan G. Carmona el 18 de Marzo de 2022
  • 12 min de lectura Frameworks
Qué es ASP.NET y cuáles son sus puntos fuertes

Qué es ASP.NET

ASP.NET es un framework open source multiplataforma creado por Microsoft. Es decir, estamos ante un entorno de trabajo basado en código abierto que está pensado para el desarrollo y la ejecución de aplicaciones y servicios web modernos. Al ser multiplataforma es posible ejecutar aplicaciones ASP.NET tanto en Windows, Linux y macOS como en contenedores.

Hoy vamos a analizar en profundidad el caso de ASP .NET ya que es la punta de lanza entre los frameworks de desarrollo de Microsoft y una apuesta segura si queremos desarrollar aplicaciones y servicios profesionales. Hablaremos en profundidad de sus características, pero antes de llegar hasta la actualidad es necesario repasar su evolución y sus versiones porque ASP.NET tiene muchísima historia a sus espaldas. ASP.NET son un nombre, ASP, y un apellido, .NET. pero ¿qué fue antes, el huevo o la gallina? En este caso ASP es antecesor a .NET, vamos a verlo.

Versiones de ASP.NET

Si hace 15 o 20 años alguien nos hubiera dicho que Microsoft iba a apostar por el software libre y el open source y que esto iba a caracterizar a sus principales herramientas, IDEs, frameworks y SDKs no le hubiéramos creído. Nadie que se dedicara a la informática y el desarrollo de software hubiera apostado por este escenario y sin embargo la historia nos ha traído hasta aquí.

ASP (Active Server Pages)

La historia de ASP se remonta al año 1996. Por aquel entonces ASP era parte de la versión 3.0 de IIS (Internet Information Services). ASP se creó con el objetivo de poder combinar código HTML con scripts, componentes ActiveX y código en Visual Basic ejecutado desde el servidor. Es a este hecho al que debe su nombre porque ASP significa Active Server Pages o páginas activas desde el servidor.

Respecto a los scripts, recordemos que JavaScript era un lenguaje muy joven, se puede decir que recién creado. JavaScript tenía muchísimo potencial puesto que gracias a él las páginas webs adquirían dinamismo y una “vida” de la que antes carecían por completo.

En el año 97 ya había quejas de los desarrolladores pidiendo mecanismos para escribir código más limpio y poder separar la presentación, el HTML y el JavaScript, del contenido, por aquel entonces ActiveX. Fueron Scott Guthrie y Mark Anders los encargados de dirigir este proyecto de cambio que duró alrededor de 4 años y que comenzó llamándose XSP.

El primer enfoque de Mark y Scott con XSP fue utilizar Java. Esto les llevó a querer tener ellos algo análogo a la JVM, la máquina virtual de Java, para no depender de ésta. Empezaron así a trabajar en el CLR, el Common Languaje Runtime, que en esencia era una imitación de la JVM y muchas de sus características como la orientación a objetos o la recolección de basura, algo altamente criticado durante años.

Fue durante el diseño del CLR cuando se decidió crear también un nuevo lenguaje, uno potente, limpio, con una sintaxis similar a la de C y C++ y lo suficientemente versátil como para competir con Java. Este proyecto tomó un nombre en clave, “Proyect Cool”, y tuvo un carácter de alto secreto dentro de Microsoft. A este lenguaje al principio se le llamó Cool, algunos trabajadores lo llamaban “Súper C”. Cool acabó convirtiéndose en C#, lenguaje con el que se reimplementó la nueva versión de ASP a la que se le llamó ASP+.

Se intentó que la migración a esta nueva plataforma fuera sencilla y ASP+ se lanzó oficialmente el 11 de Julio del año 2000. En aquella demostración llamó muchísimo la atención la potencia del nuevo framework puesto que era posible combinar ASP con muchos otros lenguajes como COBOL. También se presentaron, entre otras muchas novedades, los nuevos lenguajes de Microsoft, C# y Visual Basic .NET y fue en aquella segunda mitad del año 2000 cuando nació la marca “.NET”.

Tras unos meses de refinamiento y el lanzamiento de varias versiones de evaluación durante el año 2001 ASP.NET fue liberado con gran expectación en enero de 2002 junto con la primera versión del .NET Framework.

ASP.NET 1.0

En 2002, año del lanzamiento de la versión 1.0 de ASP.NET, el hype era XML. XML era el rey como también lo fueron los Web Forms de ASP .NET, parte central de la plataforma.

Los Web Forms fueron diseñado siguiendo el patrón MVC, Modelo-Vista-Controlador. Para cada página se crea un formulario web con extensión .aspx. Cada uno de estos formularios tiene dos partes. La plantilla .aspx es la que define el HTML que se entrega al navegador del cliente y la clase .aspx.cs es la que implementa el controlador y proporciona la lógica necesaria. La tercera pieza de este patrón es el modelo, es decir, las clases que contienen las lógicas dentro del dominio general de la aplicación.

Este patrón ya era familiar para los desarrolladores de aplicaciones de escritorio solo que, en el caso de la web, al tener el código de servidor y el del navegador separados, hubo que implementar mecanismos y ciclos de vida para el control de estado, esto se hizo, a grandes rasgos, enviando información de ida y vuelta codificada como campos ocultos en las peticiones GET y, sobre todo, en las POST.

ASP.NET 1.0 se convirtió en una de las plataformas de desarrollo web dominantes y fue un gran éxito para Microsoft porque tuvo una gran acogida principalmente dentro del mundo empresarial.

ASP.NET 2.0

La evolución de ASP.NET fue unida a la evolución del .NET Framework y durante aquellos primeros años el framework aún era bastante inmaduro. .NET evolucionó mucho hasta el lanzamiento de la versión 2.0 en 2005, y con ésta release apareció también la versión 2.0 de ASP.NET.

.NET Framework 2.0 consistía esencialmente en un CLR mucho más maduro y una librería de clases base sobre la que se asentaban también una serie de frameworks altamente consolidados, WinForms, ASP.NET, ADO.NET y Web Services entre otros.

Además de beneficiarse de todas las nuevas características de .NET, como por ejemplo el uso de tipos genéricos, ASP.NET fue revisado y mejorado casi por completo ganando potencia, eficiencia y facilidad de uso. También se incluyeron muchos nuevos controles de servidor. De hecho, surgió toda una industria alrededor de los controles pues era sencillo incluir controles de terceros en nuestras aplicaciones.

Pero no todo fueron los controles. Se mejoró el View State reduciendo su tamaño y sus riesgos de seguridad. Se consiguió un Look & Feel más homogéneo. Mejoró el mecanismo de cachés. Se introdujo un mecanismo de generación de Sitemaps. Se introdujo un mecanismo de Post entre páginas, lo que mejoró la experiencia de usuario y además mejoró el ciclo de vida de las páginas con una serie de nuevos eventos.

Todos grandes avances del lado del servidor que supusieron, de nuevo, un gran paso para la plataforma, pero el lanzamiento de ASP.NET 2.0 coincidió con lo que luego hemos denominado web 2.0, es decir, la web asíncrona y la utilización de AJAX, término acuñado ese mismo año y que viene de Asynchronous JavaScript and XML.

ASP.NET 2.0 ya intuía el potencial de aquel crecimiento e introdujo una característica realmente innovadora a la que llamaron script callbacks (antecesor de AJAX). Con los scripts callbacks lo que se permitía era llamar a un método de servidor desde JavaScript. También introdujo el ClientScriptManager, precursor de tecnologías actuales ampliamente utilizadas en otros frameworks y librerías web modernas.

En enero de 2007, debido a la gran evolución de AJAX, Microsoft lanzó Microsoft AJAX, librería que nos facilitó mucho la implementación de técnicas AJAX y de controles cada vez más ricos y dinámicos que evitaban refrescos innecesarios de nuestras páginas web.

ASP.NET MVC

En el año 2007 Microsoft anunció la siguiente versión de ASP.NET, que se llamó ASP.NET MVC. El anuncio de este nuevo framework trajo novedades importantes. MVC no fue una evolución de los Web Forms sino un nuevo concepto que podía coexistir con ellos. Además se le dio muchísima importancia a la separación de responsabilidades, al TDD, al control del HTML generado y, en general, a la aplicabilidad de los principios SOLID incluyendo el la creación de contenedores IoC (Inversion of Control) que nos permitieron aplicar inyección de dependencias a nuestros controladores.

Para muchos de los que trabajábamos regularmente con Web Forms, el escepticismo fue la reacción inicial. Todos consideramos los Web Forms como el entorno maduro y estable para desarrollos rentables y MVC como el experimento para puristas y expertos. Muchos, además, acostumbrados al View State y a los formularios basados en servidor, los echamos de menos en eta nueva versión.

Gracias a esta nueva versión el desarrollo web era cada vez más limpio así como nuestras arquitecturas y diseños. Con ASP .NET MVC surgió también el concepto de las convenciones. No había que decirle al framework donde estaban nuestros controladores ni sus acciones siempre que siguieran dichas convenciones en las rutas, lo que supuso una mejora notable en el desarrollo no sólo de sitios web sino de funcionalidades CRUD mediante APIs REST.

ASP.NET 4.0

Como hemos visto, la evolución de .NET y ASP.NET van de la mano. En marzo de 2010 con el lanzamiento del .NET Framework 4.0 salió ASP.NET 4.0 y con esta versión empezamos a sentir el carácter y la tendencia unificadora en el framework y herramientas de Microsoft.

En ASP.NET 4.0 LINQ, Entity Framework, Parallel LINQ y Task Parallel Library ya eran una realidad y pudimos disfrutar y aprovecharnos en nuestro backend de estas librerías y capacidades tan potentes, herramientas que nos permitieron abstraernos de tareas que, aunque cotidianas, eran complejas y tediosas.

.NET Version History

ASP.NET Core

Tuvieron que pasar 6 años para alcanzar un nuevo hito en la historia de ASP.NET. En 2016 fue lanzado .NET Core y con él surgió ASP.NET Core. Éste fue un momento de divergencia pues el Framework “tradicional” tuvo una evolución en versiones 4.x mientras que .NET Core surgió desde la versión 1.0 seguido muy de cerca por la 1.1 en lo que parecía que iba a ser un entorno completamente diferente. De hecho, para que ambos frameworks pudieran coexistir se generó la especificación .NET Standard.

Esta versión de ASP.NET es la primera verdaderamente multiplataforma y trajo ventajas tan notables como por ejemplo un sistema de inyección de dependencias nativo y unos mecanismos que nos facilitaban personalizar nuestros pipelines respecto a las peticiones HTTP, configurando e inyectando middleware.

ASP.NET Core 2.0

Pronto, en 2017, se lanzó ASP.NET Core 2.0, en el que se introdujeron, aparte de mejoras de performance y metapaquetes que aceleraban el desarrollo, las páginas dinámicas con Razor. Además, y como puente entre el framework tradicional y .NET Core, se lanzó la versión 2.0 de .NET Standard.

ASP.NET Core 3.1

Fue lanzado en 2019 y añadió soporte para clases parciales en Razor así como mejoras en la gestión de parámetros dentro de la jerarquía de las páginas. También supuso cambios importantes en la gestión de las SameSite Cookies.

ASP.NET 5

El año 2020 fue el año en el que por fin vimos hacerse realidad a la tan esperada convergencia entre el framework tradicional y .NET Core. Esta versión trajo mejoras y optimizaciones tanto en .NET Core MVC como en Razor, como por ejemplo en los bindings o el autorefresco con dotnet watch.

ASP.NET 6

Y por fin, el 8 de noviembre de 2021, asistimos al lanzamiento de la primera versión LONG TERM SUPPORT (LTS) del completamente renovado .NET, y con ésta, ASP.NET 6. Pese a que ya se está trabajando en la siguiente versión Microsoft dará soporte a esta versión hasta el 8 de noviembre de 2024 ya que las LTS tienen soporte durante 3 años

25 años de evolución de un framework y un conjunto de herramientas que nos permiten desarrollar e integrar nuestras aplicaciones de muy diversas formas, veamos qué podemos desarrollar con ASP.NET

Aplicaciones de ASP.NET

Cuando hablamos de ASP.NET hablamos de un ecosistema fullstack puesto que con ASP.NET podemos desarrollar API’s y tras nuestras APIs toda la lógica de nuestro backend. También podemos desarrollar controles y formularios web que podemos integrar en páginas de terceros o web sites completos con varias tecnologías puesto que se integra con los frameworks y librerías más utilizados actualmente como por ejemplo React, Vue o Angular.

Aplicaciones WEB

ASP.NET ofrece tres grandes bloques o marcos de trabajo estables y maduros para desarrollar aplicaciones web:

  1. Web Forms: permite el desarrollo rápido de aplicaciones gracias a una rica biblioteca de controles y a una experiencia de drag & drop desde Visual Studio.
  2. MVC: permite aplicar los estándares web más recientes, realizar TDD y desarrollos basados en dominio (DDD) con una correcta separación de responsabilidades en nuestras librerías.
  3. Páginas Web: permite combinar código de servidor con HTML para crear contenido web dinámico gracias a la sintaxis Razor

SPA

Existen varias plantillas de proyecto que nos permiten combinar un API REST, con ASP.NET Web API, con Single Page Aplications en las que podemos utilizar nuestro framework o librería preferido o vanilla JS.

REST API

ASP.NET Web API: permite desarrollar servicios sobre HTTP accesibles para cualquier plataforma con conectividad, es ideal para crear aplicaciones RESTful con .NET.

WebHooks

De forma muy similar a como se expone un API REST podemos crear y exponer WebHooks para integrar nuestro back con otros sistemas de Software as a Service como por ejemplo Trello, PayPal, Dropbox o GitHub. Todos estos sistemas nos dan la posibilidad de que configuremos una serie de endpoints donde queremos ser notificados ante ciertos eventos, estos serán nuestros WebHooks.

Real-Time

ASP.NET Signalr: gracias a la combinación de diferentes técnicas nos permite el desarrollo de funcionalidades web en tiempo real, es decir, que exista una comunicación bidireccional con nuestros clientes web y enriquecer así su experiencia de usuario con datos y dinamismo evitando refrescos innecesarios.

Mobile & IoT

Gracias a todos los puntos mencionados anteriormente (WEB, SPA, API, WebHooks, real-time) ASP.NET es el backend ideal para nuestras aplicaciones para dispositivos móviles, tanto Android como iOS, y también para IoT.

Características de ASP.NET

Tras este repaso a la historia de ASP.NET y ver la gran cantidad de soluciones que podemos crear gracias a él, cabe destacar las cuatro características y puntos fuertes de ASP.NET que hacen que muchos profesionales lo elijan para proyectos de todos los tamaños.

Entorno profesional

Como hemos visto ASP.NET no es sólo un framework multiplataforma sino que está respaldado por Microsoft desde su origen y viene siendo usado en entornos profesionales desde hace más de 25 años. Favorece las buenas prácticas la monitorización y el testing, aportando numerosas herramientas, librerías y utilidades.

Documentación y comunidad

Cabe destacar de este framework su extensa documentación, generada por la amplia y muy activa comunidad de desarrolladores, comunidad que también participa en las constantes mejoras. Todo el código de .NET, incluyendo ASP.NET, está en GitHub y .NET tiene más de 100.000 contribuciones, de hecho 3.700 empresas ya han contribuido.

Rendimiento

Otro punto notable son las tremendas mejoras de rendimiento que ha supuesto la reescritura del Framework prácticamente desde cero, el rendimiento va evolucionando en cada versión y ya nos permite poder utilizar ASP.NET para desarrollos que requieren de una gran precisión e inmediatez como por ejemplo aplicaciones Machine Learning. Es muy interesante ver las comparativas del TechEmpower Round 20 del que se extraen estos datos.
Performance

Versatilidad

Como se ha dicho muchas veces en este artículo ASP.NET es multiplataforma, es decir, ya no depende de sistemas Windows sino que se puede desplegar en diversos entornos incluyendo como Linux, MacOS, contenedores Docker y también en la nube, lo cual le da una versatilidad de la que no muchos frameworks pueden presumir. Además, se integra con los frontend más utilizados como React, Vue y Angular.

Quizá ASP.NET no sea el entorno más de moda ni el más “cool” dentro del mundillo y seguro que tampoco es sencillo encontrar profesionales expertos a los precios en los que se mueven otras tecnologías o frameworks. Tanto si te planteas desarrollar un prototipo para validar hipótesis antes de crear tu Startup como si eres CTO o director de ingeniería en una gran empresa, no lo dudes, ASP.NET debería estar entre tus mejores opciones en cuanto a selección tecnológica para cualquier tipo de proyecto.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Crea tu Api en C# con .NET Core

Crea tu Api en C# con .NET Core

taller

Con este taller aprenderás:

  • Qué es una API.
  • Como crear un proyecto API en C# .NET Core en Visual Studio.
  • Agregar los modelos y contexto de BBDD al proyecto.

Duración: 55 minutos y 10 segundos

Curso de .NET Framework

Curso de .NET Framework

curso

Con este curso aprenderás:

  • Administrar y modelar una base de datos SQL SERVER.
  • Creación de capas abstraídas (presentación-negocio-datos) con Visual Studio.
  • Diseñar y administrar una interfaz de usuario con Winforms

Duración: 4 horas y 34 minutos

Más de 300 empresas confían en nosotros

Oesia
Vass
Everis
Ayesa
Altran
Ibermatica
Atmira
GFI
Accenture
GMV
Concatel
Telefonica
Caser
Banco de España
kpmg
Mapfre
Randstad