Welcome to 3Dev Blogs Sign in | Join | Help

El Blog de Guino

Tecnologias, Arquitectura y Mejores Prácticas en .NET

<March 2007>
SuMoTuWeThFrSa
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

Post Categories

News








Navigation

Syndication

ASP.NET AJAX, haciendo historia

Hace unos días me llamaron para pedirme que haga una charla de ASP.NET AJAX el 31 de Marzo fuera de Lima. Me sorprendió un poco la convocatoria pero de algún modo me agrado el poder seguir aportando en lo que más me gusta que es la tecnología.

Habiendo sido un espectador pasivo de cómo iba evolucionando "Atlas" (Codename de ASP.NET AJax) durante su fase beta, desde principios de año estoy viendo mas detalles de algo que no considero novedoso conceptualmente hablando, pero si desde el punto de vista de cómo la tecnología ha madurado gracias a aporte de estándares.
ASP.NET Ajax es un nuevo framework de Microsoft para crear aplicaciones web más sofisticadas aprovechando el "lado-cliente" y fue liberado en Enero pasado. Hay que tener en cuenta que ASP.NET 2.0 es un framework del lado-servidor, es decir, cada vez que se requería cierta funcionalidad de ASP.NET 2.0 se tenía que hacer un POST al servidor para ejecutar  el código lo cual causaba un "refresh" de la pagina entera, algo que se intenta evitar, dependiendo del caso, con la introducción de este nuevo actor en el escenario del desarrollo web, ósea ASP.NET Ajax, con el principal beneficio ahora de no depender de un Browser en particular (digamos IE) sino que es cross-platform y cross-browser.
En lugar de comenzar a hablar de la arquitectura de ASP.NET Ajax y mostrar ejemplos de código, prefiero hablar de las cosas que conoci y utilice antes para hacer Aplicaciones Web del lado-cliente más ricas.
Por ejemplo, Remote Scripting (1998) utilizaba script del lado cliente para comunicarse con un applet de java el cual mediante un socket enviaba una solicitud hacia un URL remoto que era una página ASP que representaba la capa-servidor de Remote Scripting, en este caso el valor de retorno era un string que era procesado en el cliente, haciendo una actualización dinámica del contenido mediante scripting.

Casi por la misma época se comenzó a utilizar Remote Data Services (RDS) que, al igual que Remote Scripting, tenia un componente cliente (proxy) y un componente servidor (stub) solo que todo esto estaba basado en COM sobre HTTP. Utilizando Script desde una pagina HTML podía conectarme al servidor y hacer consultas a la base de datos.
Recuerdo haber utilizado esto junto con los famosos (por aquella época) "Data Islands" que se creaban en base a un contenido XML y utilizando un Data Source Object (DSO) se podría presentar en una pagina contenido con distintos filtros u ordenamientos sin necesidad de hacer llamadas adicionales al servidor eliminando la "recarga" de la pagina.
Si les interesa saber detalles de cómo funcionaba todo esto puede ver Data Binding Architecture.

En la década del 2000 aparecerían los DHTML Behaviors. Usando un tipo especial de behavior, el Web Service DHTML Behavior (webservice.htc) se podía hacer una invocación a métodos remotos vía el protocolo SOAP (requerían de IE 5.0 o posterior)
Si desean ver un ejemplo de este Behavior haga click en Consuming a Web Service from an HTML Page.

Luego tendríamos al objeto XmlHttpRequest, este objeto fue desarrollado originalmente por Microsoft como parte de Outlook Web Access 2000, y  ha estado disponible desde Internet Explorer 5.0, siendo accesible via JavaScript, VBScript y otros lenguajes soportados por navegadores IE. Se usa para transferir y manipular datos XML hacia y desde el navegador web, estableciéndose un canal de comunicación independiente entre el lado-cliente, de la pagina web, y el servidor.
Desde el 2002, otros navegadores comenzaron a tener sus propias implementaciones compatibles con el XmlHttpRequest, por ejemplo Mozilla, Safari, Opera, etc. El objeto XMLHttpRequest es una parte fundamental de la técnica de desarrollo web conocida como AJAX (Asynchronous JavaScript And XML) , y es usada en muchos sitios web para implementar aplicaciones dinámicas e interactivas como el servicio Gmail de Google, Meebo, Virtual Earth de Microsoft, y los mapas de MapQuest..
Finalmente el consorcio Web, entidad que norma los estándares internet, publico una especificación del objeto XmlHttpRequest para ayudar a mejorar y asegurar la inteoperabilidad del código en las diferentes plataformas Web.
Cuando salió ASP.NET 2.0, este vino con una API denominada ASP.NET Script Callback que proporcionaba la habilidad de ejecutar llamadas asíncronas sin dejar la pagina actual; sin embargo el modelo de programación no es muy completo para tareas complejas, además que el código no es muy fácil de leer y mantener para desarrolladores sin experiencia avanzada.
El equipo de producto de ASP.NET comienza, entonces, a trabajar en un framework como extensión de ASP.NET 2.0 que permita a los desarrolladores crear, de una manera más sencilla, aplicaciones Web interactivas tomando ventaja de las características del browser y el servidor, es así como comienza la historia de ASP.NET "Atlas", hoy conocido como ASP.NET Ajax.

Unas de las cosas que me encantan de las tecnologías Microsoft es el siempre están a la vanguardia, innovando, muchas veces acusados de "copiar" ideas, aunque creo que en el caso del objeto XmlHttpRequest no pueden decir aquello. Yo lo veo de otro modo, lo más importante es como todo eso contribuye a lograr soluciones de valor para las empresas, reduciendo costos y llegando al mercado más rápidamente, que son algunos requerimientos que recojo de las empresas que me toca visitar a diario.

Published Sunday, March 11, 2007 8:42 PM by guino
Filed Under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: ASP.NET AJAX, haciendo historia @ Monday, March 19, 2007 7:34 AM

You write a interenting commentary, great article.

Leonardo Torres

# iframe o AJAX? @ Monday, June 25, 2007 2:02 AM

Mientras algunos frikis se compraban un nuevo equipo , o no tan nuevos , participe en unas horas de consultor&#237;a

SergioTarrillo's RichWeblog

What do you think?

(required) 
required 
(required) 
Powered by Community Server, by Telligent Systems