Uno dei pilastri dell'era del Web 2.0 è AJAX: il mix di tecnologie che ha dato nuova linfa alle applicazioni online. Naturalmente anche il mondo ASP.NET ne è influenzato, lo dimostrano i diversi framework nati per supportare questa filosofia di sviluppo.
Microsoft, dal canto suo, non poteva esimersi dall'implementare uno strumento "ufficiale" e, ad inizio 2006, inizia il progetto di un framework AJAX da poter interfacciare con ASP.NET. Il nome in codice ATLAS ha accompagnato tutte le release di sviluppo, ma dalla prima versione stabile il framework prende il nome di ASP.NET AJAX.
La logica di funzionamento
La logica comune a tutti i Framework realizzati per AJAX prevede che non vi sia più la necessità di effettuare dei PostBack della pagina per inviare le richieste al server. Basta inviare o richiedere le informazioni tramite JavaScript, quindi dai Client.
Le diverse soluzioni sono in grado di realizzare a run-time, quindi durante l' esecuzione e la creazione della pagina stessa, una sorta di "Proxy", ovvero un interprete nascosto che riceve la richiesta dal client, la elabora, attende il risultato e lo reinvia alla pagina, senza bloccarla durante la fase di attesa. Parte di questo lavoro è reso possibile dall'ormai famigerato oggetto XMLHttpRequest
che annovera tra i suoi antenati l'activeX XMLHttp
realizzato nel 1998 da Microsoft per l'applicazione di Web access di Outlook.
La figura mostra come avviene una richiesta Server-Side da parte di un applicazione basata su AJAX. Viene effettuata una richiesta al server, che la elabora prelevando i dati da un database. I dati risultanti vengono restituiti sotto forma di file XML che può essere interpretato e letto direttamente dal client con opportune rountine JavaScript presenti nella pagina. Come effetto finale evitiamo il ricaricamento della pagina stessa.
I due framework
In ASP.NET AJAX, come in altri framework, si accoppiano classi e funzioni create per essere richiamate direttamente dal client alle classiche applicate ai consueti tag lato server.
L'immagine, presa dal sito MSDN, mostra come siano stati sviluppati i due framework e quali funzioni svolge ognuno.