¿Por qué ASP.NET?

Una vez nos hemos decidido por una aplicación Web, queda decidir qué tecnología vamos a utilizar de todas las existentes en el mercado. Opciones hay muchas y muy buenas siendo PHP, JSP, ASP y ASP.NET las más comunes. No se pretende enumerar todas y cada una de las características de todos estos lenguajes, simplemente vamos a ver una breve descripción de cada una de ellas y posteriormente trateremos de jutificar la elección de la última de ellas.

PHP
PHP es la tecnología Web más extendida en el momento. Nació para trabajar en Linux con servidor Apache, pero hoy en día puede alojarse en casi cualquier tipo de servidor. El código fuente está en abierto por lo que los bugs están muy controlados e inmediatamente solucionados, y además tiene una gran cantidad de módulos prefabricados que ya vienen instalados de fábrica en los servidores, y que no hay más que aprender a utilizar.

Su sintaxis es muy similar a C, quizás algo más simple, y destaca que fue creada para programar páginas Web, aunque también se puede programar en local. Se comunica con bases de datos sin necesidad de usar ODBC. Las últimas versiones ya trabajan con orientación a objetivos. Hasta ahora es un lenguaje de script, no compilado.

JSP
Los Servlets de Java son muy comunes en aplicaciones Web potentes, como bancos o grandes empresas. Comparte muchas de las ventajas de ASP.NET, sobretodo en cuanto a la programación modular y orientada a objetos, pero sus carencias son también muy destacadas. Sobretodo su bajo enfoque de cara al usuario da mucho trabajo para presentar páginas Web al navegador.

Para muy grandes aplicaciones suele elegirse JSP en lugar de PHP, dado que PHP es un lenguaje de más bajo nivel que JSP y dificulta la modularización y organización por capas de la aplicación.

ASP
ASP es la tecnología pionera en las aplicaciones Web que se ejecutan en el servidor. Desarrollada por Microsoft y optimizada para su ejecución en servidores Windows con tecnología NT bajo IIS, aunque también hay opciones para Windows 98 con el Personal Web Server y para Linux con Chilisoft.

Al ser una tecnología propietaria, no tiene la enorme cantidad de módulos extra que sí tiene PHP, aunque abriendo objetos COM trabaja fácilmente con archivos dll.

El hecho de que habitualmente los servidores de hospedaje de Internet sean más caros, han hecho que ASP deje de ser la tecnología para página Web dinámicas orientadas a servidor más utilizada, tal y como lo llegó a ser en sus inicios.

Usa Visual Basic Script, lo que para los desarrolladores Visual Basic era una ventaja pues no tenían que aprender otro lenguaje, para otros es una desventaja, pues consideran que no es más que un parche Web de un lenguaje ya existente, y que no fue creado expresamente para los servidores Web, como sí pasa con PHP. También soporta el lenguaje JScript (Javascript de Microsoft). Se comunica con las bases de datos vía ODBC, y la comunicación con SQL Server es óptima.

ASP.NET
ASP.NET rompe totalmente con el pensamiento de script que se tenía hasta el momento. El cambio en la arquitectura es radical. De hecho, lo único que mantiene de ASP es el nombre, el propietario y la evolución de Visual Basic a Visual Basic .NET (VB.NET)… el resto es todo nuevo.

Dado que la Web no se lee secuencialmente sino que se compila, lo primero que llama la atención es el enorme incremento de velocidad de respuesta del servidor. Además, al compilarse, el incremento en seguridad y fortaleza es muy grande.

ASP.NET introduce el concepto del code-behind, por el que una misma página se compone de dos ficheros: el de la interfaz de usuario y el de código. Con ello se facilita la programación de aplicaciones en múltiples capas, lo que en definitiva se traduce en la total separación entre lo que el usuario ve y lo que la base de datos tiene almacenado. Por tanto, cualquier cambio drástico de especificaciones minimiza los cambios en la aplicación y maximiza la facilidad de mantenimiento.

Asimismo, ASP.NET nos sirve tanto para Webs sencillas como para grandes aplicaciones. No debemos olvidar que la orientación a objetos y la naturaleza compilada permiten que hagamos uso de herramientas de creación de Webs, las más importantes de la familia del Visual Studio, que nos facilitan mucho la tarea de programación. Estas herramientas permiten hacer Webs sencillas y de bajas prestaciones en un tiempo record, así como llevar el mantenimiento de grandes aplicaciones de forma más sencilla.

Resumiendo, tenemos mayor velocidad, mayor potencia, mayor seguridad, mayor facilidad de mantenimiento y herramientas de trabajo, pero las ventajas no paran aquí. A continuación enumeramos algunas otras que no tienen ASP, PHP o JSP:

-    Caché: se puede almacenar en la caché del servidor tanto páginas enteras, como controles personalizados o simples variables. En páginas críticas con mucha carga de base de datos nos es muy útil almacenar datos de la base de datos en la caché, reduciendo enormemente el consumo de recursos.
-    Carpetas especializadas, como por ejemplo app_code que compila automáticamente las clases que se alojan en él, o la carpeta app_theme que alojan ficheros que marcan los temas de estilos de la Web.
-    Los archivos de configuración Web.config y Machine.config permiten realizar operación de configuración en ficheros que hasta ahora había que realizar en el servidor.
-    La adaptación automática del código devuelto a los dispositivos que le acceden. Una misma página puede servirnos para el Internet Explorer, para el Pocket Internet Explorer desde una PDA o para un navegador de un móvil cualquiera.
-    La eliminación total de la necesidad de frames con la introducción de las masterpages.
-    La extraordinaria compatibilidad con XML y los servicios Web.
-    La multitud de controles Web que permiten mucha funcionalidad con poco código. Desde enlace con las bases de datos o enseñar fácilmente todos los datos, hasta simples etiquetas, hiperenlaces o generadores de imágenes.
-    Se puede utilizar hasta cuarenta lenguajes distintos para el desarrollo en ASP.NET, aunque en el 95% de las aplicaciones se usa C#, VB.NET o J#.

¿Por qué la versión 2.0?
Las razones de elegir la versión 2.0 en lugar de la ya madura versión 1.1 es una gran mejora en todos los aspectos en general, pero destacamos la comunicación con base de datos, ADO.NET 2.0, C# 2.0 y el incremento de los controles Web.

No en vano la relación de líneas de código entre ASP.NET 1.1 y ASP.NET 2.0 es de diez a uno, ya que muchos de esos controles realizan de forma óptima multitud de tareas que se repiten en todas las aplicaciones. Por ejemplo, enlazar con la base de datos, asignar una clase para programación multicapa de selección, inserción, borrado y modificación, enseñar esos datos en pantalla, paginarlos y permitir la modificación o borrado de registros lo podemos realizar en tres líneas:

1: <asp: ObjectDataSource ID="ODS1" runat="server" DeleteMethod="BorrarUsuario" InsertMethod="BorrarUsuario" SelectMethod="BorrarUsuario" TypeName="PFC.Admin.Usuarios" UpdateMethod="BorrarUsuario" />
2: <asp: GridView ID="GV1" runat="server" DataSourceID=" ODS1" AutogenerateColumns = “True” AllowPaging="True" />
3: <Columns><asp: CommandField ShowDeleteButton = "True" ShowEditButton = "True" ShowSelectButton = "True" /> </Columns>

     Personalizar las columnas, asignar parámetros a procedimientos almacenados, y demás quehaceres procuran unas pocas líneas de código adicionales. No es nuestra preocupación el hacerlo todo con el menor número de líneas de código posible, sino en centrarnos en el código más útil y no en el que se repite aplicación tras aplicación.