Implementando AJAX con C# / VB.NET

Publicado: abril 16, 2008 en Desarrollo, Herramientas Web, Lenguajes de programacion, Programación

Navegando encontre este articulo sobre como implementar Ajax con C# o Visual Basic.net, ademas que hace un breve explicacion sobre lo que es Ajax.

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

Fuente: tydw.wordpress.com

comentarios
  1. okoto dice:

    Muy bueno tu artículo!!!

    En lo personal, no me gusta la plataforma asp.net, prefiero lenguajes de desarrollo libre como uxl y jquey.

    Me gusto mucho tu blog, asi que ni no te importa, espero me permitas pasarme por aqui.

  2. Oscar dice:

    Estoy usando VS .Net 2005, framework 2.0, sin embargo, por requerimientos del proyecto necesito algunas gráficas (tipo Excel).
    Estoy ocupando unas gráficas nativas del framework 3.5 y el proyecto no tuve que cambiarlo más que en el web.config.
    Sin embargo, el Ajax.Utility.RegisterTypeForAjax ya no me está funcionando [no marca ningún error del lado del code behind], sin embargo, por javascript no logra ejecutar la función del code behind a la que hace referencia.
    Antes de poner el framework 3.5 NO TENIA ESTE TIPO DE PROBLEMA.

    Tienes una idea de a qué se deba? o alguna idea de cómo corregirlo???

  3. Victor Molano dice:

    hola, quisiera saber donde puedo dercargar dicha libreria, el enlace esta roto. ademas quisiera preguntar si solo debo agregar la referencia al ajax.dll o debo incluir algun archivo o carpeta adicional en el proyecto. gracias.

    super tutorial.

    espero pueda ayudarme.

  4. Remarkable item. I fully resonated with Implementando
    AJAX con C# / VB.NET | El Mundo Informático. I really dont want to
    produce difficulties by just stating this however your entry brought to mind handmade stationery that i
    learned about on a online site available for handmade stationery recently.

Deja un comentario