In questa lezione cerchiamo di approfondire la struttura di ASP.NET AJAX considerando i due framework che costituiscono in effetti le due anime di una sola infrastruttura, ma che è opportuno considerare separatamente.
La parte client non necessita obbligatoriamente di Visual Studio e del Framework .NET, poichè si tratta di pure librerie JavaScript. La parte server, invece, comprende una serie di controlli Server che riprendono quelli già presenti in ASP.NET, ma con la caratteristica di gestire le chiamate tramite AJAX invece che col classico PostBack. Questo Framework deve essere obbligatoriamente usato tramite Framework .NET.
Questa separazione nasce da precise esigenze degli sviluppatori. La necessità di avere un linguaggio compatibile con la maggior parte dei Browser, standard e di facile utilizzo, ma allo stesso tempo orientato agli oggetti ha fatto inevitabilmente cadere la scelta su un JavaScript espanso con nuove classi che ne garantissero la maggiore compatibilità possibile.
Oltre a questa estensione di JavaScript, nelle versioni di sviluppo è stato introdotto un secondo linguaggio all'interno del "Framework Client",XML-SCRIPT. Un liguaggio di tipo dichiarativo che nella versione definitiva viene in gran parte soppresso in favore di JavaScript.
Questo linguaggio è utilizzato per definire operazioni di uso comune, senza l'ausilio di un linguaggio di scripting. XML-SCRIPT viene infatti interpretato dal Framework Client che traduce le dichiarazione fatta in XML-SCRIPT nelle corrispondenti istruzioni JavaScript.
Con questo linguaggio possiamo assegnare dei processi di Binding, o di Validazione in modo simile a quanto facciamo con i classici tag lato server.
Il secondo Framework che costituisce il vero e proprio pilastro di ASP.NET AJAX è il costituito dalle classi server. Come abbiamo detto, questa infrastruttura contiene una serie di controlli simili a quelli già presenti per ASP.NET, ma evoluti per poter interagire con AJAX. Questi controlli ci consentono di evitare di scrivere codice JavaScript e di sviluppare tutta la logica di programmazione esclusivamente nella parte server.
Cominciamo ad esaminare da subito quali sono quali sono i namespace usati sia lato client (JavaScript) che lato server (C#, VB)
Namespace lato Server | |
---|---|
System.Web.Configuration |
Con questo namespace abbiamo accesso alla configurazione della nostra applicazione ASP.NET, di conseguenza abbiamo accesso anche alla parte che riguarda Ajax |
System.Web.Handlers |
In questo namespace sono presenti gli Handler Http che intercettano le richieste. |
System.Web.Script.Serialization |
Con questo namespace si puo' operare nella serializzazione e deserializzazione dei contenuti, tramite la tecnologia JSON. |
System.Web.Script.Services |
Personalizzazione per l' esecuzione dei WebServices tramite Ajax. |
System.Web.UI |
Chiaramente con questo ed il successivo namespace, siamo in grado di accedere ai contenuti, e non solo, dei controlli presenti nella pagina. |
System.Web.UI.Design |
In questo caso ci aiutano a estendere le funzioni di render della pagina e dei controlli presenti. |
Namespace lato Client | |
---|---|
Global |
Questo namespace espande la base del normale JavaScript per rendere quest' ultimo piu' lineare con lo standard di codice usato da ASP.NET. Vi sono quindi modifiche ad oggetti quali Array, stringhe e quant'altro |
Sys |
Questo namespace puo' essere visto come il System di NET, è la madre dei namespace JavaScript esposti di Ajax |
Sys.Net |
Presenta i tipi per la comunicazione lato CLient Server |
Sys.UI |
Come per il lato, server, il suffisso UI (User Interface ci fa intuire la funzionalità di questo namespace |
Sys.WebForms |
Molto utile, il namespace che contribuisce al rendering parziale delle pagine ASP.NET AJAX |
Nel framework di base sono presenti i controlli più importanti come UpdatePanel e UpdateProgess ma esistono estensioni con controlli più avanzati come l'ASP.NET AJAX Control Toolkit di Microsoft o altri progetti opensource basati su ASP.NET AJAX reperibili su CodePlex.