AJAX! No hablamos de un equipo de fútbol, ni tampoco de un detergente, ¿entonces? La unión de varias tecnologías para crear una nueva e impresionante experiencia en la web.

Hace un tiempo AJAX parece ser la palabra de moda en el “mundo” del desarrollo de aplicaciones Web; de hecho muchos lo escuchan nombrar pero pocos saben que es realmente y, menos aún, saben en donde buscar información clara sobre que es esta nueva “maravilla” de la tecnología.

¿Qué es?

En realidad, Ajax no existe. Es una óptica, una nueva forma de trabajo que engloba a diferentes tecnologías Web que existen desde hace varios años, como el lenguaje XHTML -sucesor del actual HTML- las hojas de estilo en cascada (CSS) y JavaScript, junto a otros artilugios más técnicos como son XMLHttpRequest o XSLT. De hecho, el propio término es la abreviatura de ‘Asynchronous Javascript + XML’.

La idea es la siguiente: en el modelo actual, la Web es un lugar muy hostil para desarrollar aplicaciones. Cada vez que el usuario ejecuta una acción -un clic, la presión de una tecla, el arrastre de un objeto- el navegador debe solicitar datos a otra computadora (el servidor) a través de Internet, para luego regenerar la página que el usuario está viendo. De esta forma, la interacción se transforma en un pimpón de datos que hacen imposible cualquier actividad continua, como un juego o una aplicación.

Para sortear este inconveniente, varias empresas desarrollaron plataformas que se cargan dentro del navegador, como Macromedia Flash o Java, previa descarga de los plugin respectivos y previo pago de las licencias para el desarrollo. Pero, ¿qué pasaría si tuviéramos estas herramientas ya disponibles en los computadores de cada usuario y en forma nativa?

El modelo de AJAX propone cargar y renderizar una página, luego sirviéndose de las tecnologías antes mencionadas y presentes en la gran mayoría de los navegadores. Mantenerse en esa página, mientras scripts y rutinas van al servidor buscando, en background, los datos que son usados para actualizar la página solo re-renderizando la página y mostrando u ocultando porciones de la misma. De esta forma, los usuarios pueden acceder de inmediato al contenido -como GoogleMaps, Gmail o el Outlook Web Access- sin interrupciones. Sorpresa: el público ya no tiene que esperar.

Google está haciendo una significativa inversión en el acercamiento Ajax. Desde Gmail a Google Maps, esta empresa alberga una docena de proyectos nuevos que han provocado gran entusiasmo en los usuarios.

Ajax y ASP.NET

Obviamente ASP.NET posee mucho soporte para Ajax, además este será mejorado en Whidbey.

Para su implementación, existe una libreria que puede ahorrarte mucho trabajo. Los pasos para utilizarla son los siguientes:

Paso 1 – Agregar una referencia al archivo ajax.dll, que puedes descargas desde http://ajax.schwarz-interactive.de/download/ajax.zip
Paso 2 – Configurar el HttpHandler en el archivo web.config

<configuration>
<system.web>
<httpHandlers>
<add verb=”POST,GET” path=”ajaxwrapper/*.ashx” type=”Ajax.PageHandlerFactory, Ajax” />
</httpHandlers>

<system.web>
</configuration>

Paso 3 – En el pageload del form agregas el llamado a esta función

Ajax.Utility.RegisterTypeForAjax(this.GetType());

Paso 4 – Para hacer llamados asincrónimos al servidor deberá marcar las funciones con el siguiente atributo

[Ajax.JavascriptMethod()]
public int ServerSideAdd(int firstNumber, int secondNumber)
{
return firstNumber + secondNumber;
}

La envoltura creará automáticamente el código javascript con los parámetros y será llamada desde el cliente sin hacer postback
Paso 5 – Puedes llamar estas funciones desde el javascript en el cliente.

alert(ServerSideAdd(100,99));
o
ServerSideAdd(100,99, ServerSideAdd_CallBack);
function ServerSideAdd_CallBack(result){
alert(result);
}

También se pueden retornar objetos complejos.

Ver Ejemplos Online: C#VB.NET

Puedes descargar un guía de uso en http://ajax.schwarz-interactive.de/download/AjaxGuide.doc y un video de demostración en http://ajax.schwarz-interactive.de/download/ajaxvideo.zip (aunque el video tiene algunos errores es muy interesante). Más información en Ajax.NET Blog

Links y fuentes:

AJAX un nuevo acercamiento a Aplicaciones WebArtículo original en inglés
AJAX: Descubre qué se oculta tras esta vieja-nueva tecnología
AJAX – Wikipedia en español
AJAX – Wikipedia en inglés

En inglés

Ajaxian.com
Ajax, promise or hype?
Ajax.NET Blog