Applicazioni Web: ASP.NET | ||
I tre componenti principali di .NET Framework Common Language Runtime/Infrastructure (CLR/CLI) CLS - Common Language Specification CIL - Common Intermediate Language VES - Virtual Execution System |
Un insieme di classi all'interno della libreria di classi unificata, ASP.NET fornisce un modello applicativo sotto forma di controlli ed infrastruttura che semplifica la creazione di applicazioni Web. ASP.NET include un insieme di controlli lato server (talvolta denominati form Web) che ricalca gli oggetti Widget delle tipiche interfacce utente HTML (tra cui, caselle di riepilogo, caselle di testo e pulsanti), ed un insieme aggiuntivo di controlli Web evoluti (come calendari e rotator). Tali controlli vengono eseguiti in realtà sul server Web ed inviano la propria interfaccia utente ad un browser sotto forma di HTML. Sul server, i controlli espongono un modello di programmazione orientato all'oggetto che mette a disposizione degli sviluppatori Web tutta la ricchezza di questo tipo di programmazione. Una caratteristica fondamentale di questi controlli è che possono essere scritti per adattarsi a funzionalità lato client; le stesse pagine possono essere utilizzate per indirizzare un'ampia gamma di piattaforme client e fattori di forma. In altre parole, i controlli delle form Web possono determinare le caratteristiche del client che richiede una pagina e garantire un'adeguata esperienza all'utente - WML per i telefonini, HTML 3.2 per i browser a di vecchia generazione ed il Dynamic HTML per quelli di nuova. ASP.NET mette, inoltre, a disposizione funzionalità quali la gestione dello stato in architetture cluster e la possibilità di riciclare i processi, cosa che riduce ulteriormente la quantità di codice da scrivere ed aumenta l'affidabilità dell'applicazione. ASP.NET si avvale degli stessi concetti che consentono agli sviluppatori di rilasciare software sotto forma di servizio. Utilizzando le funzionalità di ASP.NET per i servizi Web XML, è sufficiente che gli sviluppatori scrivano la propria logica di business e sarà poi l'infrastruttura di ASP.NET ad occuparsi dell'invio di tale servizio tramite SOAP ed altri protocolli pubblici. ASP.NET può essere utilizzato con qualsiasi linguaggio e strumento di sviluppo (inclusi Visual Basic, C++, C# e JScript). Architettura ASP.NET Alla base di ASP.NET c'è il suo runtime HTTP (diverso dal Common Language Runtime), un motore di esecuzione ad elevate prestazioni per l'elaborazione di comandi HTTP. Il runtime HTTP è responsabile dell'elaborazione di tutte le richieste HTTP in arrivo, della risoluzione dell'URL di ogni richiesta ad un'applicazione e dell'invio della richiesta all'applicazione per ulteriori elaborazioni. Il runtime HTTP è multi-threaded ed elabora le richieste in modalità asincrona, ciò significa che l'elaborazione di nuove richieste non può essere bloccata da errori presenti nel codice applicativo. Inoltre, il runtime HTTP, grazie ad un'architettura robusta, è in grado di riprendersi automaticamente in seguito a violazioni d'accesso, memory leak, deadlock e quant'altro. Aggiornamento delle applicazioni. ASP.NET utilizza le tecnologie di distribuzione del .NET Framework, e sfrutta vantaggi quali la distribuzione tramite XCOPY e l'installazione side-by-side delle applicazioni. Un altro importante vantaggio di ASP.NET è il supporto per l'aggiornamento a caldo delle applicazioni. Un amministratore non deve più eseguire lo shut down dell'applicazione o addirittura del server Web per aggiornare i file di quest'ultima: i file non vengono mai bloccati e pertanto possono essere sovrascritti anche quando l'applicazione è in esecuzione. Una volta aggiornati i file, il sistema passa automaticamente alla nuova versione. Espandibilità. All'interno di un'applicazione ASP.NET, le richieste HTTP vengono inviate attraverso una serie di moduli HTTP fino ad arrivare ad un gestore di richieste. I moduli HTTP ed i gestori di richieste sono semplicemente delle classi .NET gestite che implementano specifiche interfacce definite da ASP.NET. Questo tipo di architettura modulare semplifica considerevolmente l'inserimento di servizi all'interno delle applicazioni: basta fornire un modulo HTTP. Ad esempio, ASP.NET implementa sia la sicurezza, sia la gestione dello stato, sia il tracciamento come moduli HTTP. Anche i modelli di programmazione ad alto livello, come i servizi Web XML e le form Web vengono implementati come gestori di richieste. Un'applicazione può essere associata a più gestori di richieste - uno per ogni URL - ma tutte le richieste HTTP di una data applicazione vengono indirizzate attraverso gli stessi moduli HTTP. Gestione dello stato. Il Web rappresenta fondamentalmente un modello privo di stato senza alcuna correlazione tra le richieste HTTP. Ciò può rendere la creazione di applicazioni Web piuttosto difficoltosa, dal momento che di solito le applicazioni hanno bisogno di mantenere lo stato tra richieste successive. ASP.NET migliora i servizi per la gestione dello stato introdotti da ASP e fornisce tre tipi di stato per le applicazioni Web: application, session ed user. Lo stato session di ASP.NET viene memorizzato in un processo separato e può persino essere configurato per essere memorizzato su un computer distinto o reso persistente all'interno di un database SQL Server. Ciò rende lo stato session scalabile anche quando l'applicazione viene distribuita su farm Web di grandi dimensioni. Lo stato user assomiglia allo stato session, ma generalmente non va in time out ed è persistente. Per questo motivo, lo stato user è utile per memorizzare preferenze degli utenti ed altre informazioni di personalizzazione. Tutti i servizi per la gestione dello stato vengono implementati come moduli HTTP, in modo da poter essere facilmente aggiunti, estesi o persino rimossi dal flusso dell'applicazione. Se sono necessari servizi aggiuntivi per gestire lo stato oltre a quelli messi a disposizione da ASP.NET, questi possono essere forniti da un modulo di terze parti. Memorizzare nella cache. Il modello di programmazione di ASP.NET fornisce un'API che consente agli sviluppatori di attivare i servizi per la memorizzazione nella cache (nel software aziendale) al fine di aumentare le prestazioni. La output cache salva l'intera pagina una volta renderizzata, la fragment cache memorizza porzioni di pagine. ASP.NET mette a disposizione delle classi in modo che applicazioni, moduli HTTP e gestori delle richieste possano memorizzare oggetti arbitrari nella cache a seconda delle necessità. Funzionalità di memorizzazione nella cache verranno fornite come parte di ASP.NET. ASP.NET è stato progettato per mettere a disposizione un ambiente per applicazioni Web robusto in grado di mantenere in esecuzione soluzioni mission critical per lunghi periodi di tempo.
|