Dall'archivio articoli > ASP.NET 4.5
Single Page Application e ASP.NET 4.5: il futuro dello sviluppo delle applicazioni web
- 0
- 0
- 0
Per poter utilizzare questa funzionalità, devi fare il login o iscriverti.
Le SPA rappresentano un paradigma per le applicazioni web destinato a prendere piede nel corso dei prossimi anni. Non a caso, con ASP.NET MVC 4, nella prossima versione di Visual Studio verrà introdotta la nuova tipologia di applicazione web "ASP.NET Single Page Application (SPA)" o, brevemente, ASP.NET SPA. Peraltro, se nella versione beta di ASP.NET MVC 4 era presente un template per creare una Single Page Application, con il rilascio della versione RC (Release Candidate) il template è stato rimosso. Microsoft ha annunciato che ASP.NET SPA non sarà pronto in tempo con la consegna finale di ASP.NET MVC 4 e quindi ASP.NET SPA è per ora disponibile solo in "preview" come pacchetto su Nuget.
Le "Single Page Application" (brevemente SPA) non sono un concetto nuovo. L'idea viene perseguita dagli sviluppatori da diverso tempo e la definizione stessa di SPA è in circolazione almeno dal 2005. Il problema principale delle applicazioni web tradizionali è il ricaricamento dell'intera pagina durante il flusso interattivo dell'utente (l'utente clicca su un link, fa il submit di un form, ecc.), che causa una richiesta verso il server di una pagina HTML intera completamente nuova, senza contare tutte le richieste correlate: immagini, file JavaScript, CSS, ecc.
Il continuo ricaricamento della pagina "disturba" la user experience, in quanto non è possibile nascondere all'utente i tempi di latenza della rete e, di conseguenza, la transizione da una pagina all'altra produce uno sgradevole effetto di "scossa". Inoltre ricaricare la pagina a ogni interazione dell'utente provoca un'inutile ritrasmissione di elementi che, almeno teoricamente, all'atto dell'invio sono già presenti nella pagina e nella memoria del browser. La percezione delle prestazioni di queste applicazioni web è in generale scadente.
Le SPA risolvono questi problemi semplicemente eliminando la necessità di ricaricare la pagina durante la sessione dell'utente. Grazie alla disponibilità sempre più universale di browser che supportano HTML5 (chi più, chi meno), possiamo "spingere" le nostre applicazioni web verso il browser, delegando a JavaScript aspetti come il rendering dell'HTML, la gestione dati e la business logic. Tutte le interazioni e i cambiamenti di stato dell'applicazione sono gestite nel contesto di un singolo documento web.
Ormai da tempo gli sviluppatori web mitigano il problema del ricaricamento totale mediante la tecnica più diffusa: AJAX. Librerie come jQuery aiutano a normalizzare il comportamento di AJAX sui vari browser e hanno permesso a questa tecnica di diventare molto popolare, tanto che jQuery è ormai parte indispensabile di qualunque applicazione ASP.NET (MVC, Web Forms, Web Pages). Non a caso è stata inclusa in tutti i template di Visual Studio. Tuttavia l'uso di AJAX è normalmente limitato a una specifica area della pagina o a una determinata interazione.
In una SPA portiamo questo approccio alla sua massima sintesi, creando un'applicazione che unisce gli aspetti migliori di un'applicazione web e di un'applicazione desktop, pur usando esclusivamente HTML5 e JavaScript. Questo significa che non prevediamo l'uso di nessun plugin specifico (per esempio, Silverlight o Flash), ma ci basiamo solo su tecnologie web standard, implementate nativamente all'interno di qualunque browser (per lo meno nelle versioni più aggiornate).
Per avere un'idea migliore di quello di cui stiamo parlando, facciamo qualche esempio di applicazione nel mondo reale che adotta già questo approccio.
I benefici di una SPA si possono riassumere in cinque punti principali:
Lo svantaggio evidente per un programmatore web che viene da ASP.NET è il fatto che la codebase dell'applicazione è costituita da una porzione molto rilevante di JavaScript, sicuramente molto maggiore rispetto a quanto è probabilmente abituato. Questo aspetto comporta alcune conseguenze, più o meno critiche:
Dal momento che non possiamo prescindere dal fatto di dover imparare davvero JavaScript per creare applicazioni web moderne, tuttavia può risultare una scelta molto conveniente l'adozione di CoffeeScript, un linguaggio in stile Ruby/Python che migliora la brevità, la leggibilità del codice e permette uno stile di programmazione più object-oriented (l'uso di classi, l'ereditarietà, ecc.). CoffeeScript viene "compilato" in JavaScript prima di essere usato all'interno della pagina. Al momento è disponibile un'ottima estensione per Visual Studio chiamata Web Workbench che automatizza questa procedura.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.