Empecé a escribir acerca de Web Services pero me di cuenta que va ligando con ASP.NET. ASP.NET es muy extenso e importante porque abarca casi todo lo necesario para hacer proyectos de Web con el framework de .NET.
Veamos de donde viene esta tecnología. Hace ya algunos años atrás cuando el auge del Internet iba creciendo y creciendo, los desarrolladores de aplicaciones se vieron con la necesidad de crear o traspasar sus aplicaciones a Internet.
La primera opción que funcionó fue cuando Microsoft sacó el producto Visual InterDev. Este permitía crear páginas Web que contenían código para ser ejecutado por el Internet Information Server (IIS). Estas aplicaciones debían ser instaladas en el servidor para que cuando un explorador (Internet Explorer, Netscape, etc.) hiciera una petición de ejecución al servidor, este procesara la aplicación y regresara el resultado al explorador. Estos fueron los inicios de ASP o Active Server Pages.
Las desventajas eran que los desarrolladores tenían que rediseñar y reconstruir sus aplicaciones para migrarlas al modelo de Web y que el código dentro de una página Web (archivo con extensión .asp) estaba mezclado con HTML y Script, situación que hacía muy difícil mantener el código ya que no era legible o amigable. (A esto se le llama código spaghetti porque en un párrafo estaban mezclados varios lenguajes).
Otra desventaja importante es que una solución en ASP debe llevar consigo mismo toda la lógica de negocio ya que el servidor se va a encargar solamente de interpretar su contenido. Tomando esto en cuenta, es obvio que la reutilización de código es casi nula ya que cada archivo de ASP se comporta como una isla, situación poco deseadas para la reutilización y administración eficaz de código.
La arquitectura en capas con la tecnología ASP era muy complicada ya que los controles de presentación (formas, cajas de texto, etiquetas, etc) debían ir dentro de cada archivo .asp. Esto ocasionaba tener una mezcla de código de capas de presentación, negocio y hasta de datos.
Cuando Microsoft lanza la tecnología .NET incorpora los proyectos de Web dentro de Visual Studio .NET. Esto provee una interfaz para desarrollar aplicaciones de Web muy sencilla. La construcción de la capa de presentación es similar a un proyecto de Windows. Se arrastran controles hacia el área deseada y se acomodan con facilidad. La lógica para que estos controles interactúen es separada (como en las formas de Windows) en otro archivo a parte. Esto da como resultado un archivo de presentación y un archivo de lógica o negocios. ¿Qué tiene esto de maravilloso? Que la parte que contiene la lógica de la página Web es compilado y tratado como ensamble permitiendo incorporar conceptos tales como clases, espacios de nombre, etc.
Otra característica importante de ASP.NET son las mejoras sustanciales con respecto al manejo de la persistencia de la información (estado), ya que brinda la posibilidad de que los diferentes componentes que integran una página puedan mantener en forma automática su contenido a través de las diversas peticiones de la misma.
Por último, en bes más sencillo la depuración y detección de errores ya que utiliza herramientas del framework .NET para ayudar al buen manejo de errores y excepciones.
Ahora que entendemos los maravilloso que es ASP.NET y sus ventajas con respecto a su antecesor, podemos meternos más a fondo y hasta desarrollar una pequeña aplicación como demostración.