asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 3531
ASPCode.it - Store

  > > Articoli

.NET & ASP.NET

Data di pubblicazione: 20/11/2001        Voto della community: 0,00 (Votanti: 0)


Sono passati all'incirca 18 mesi dalla prima volta in cui sentii parlare di .NET. Da allora, ancora non è stato rilasciato un prodotto completo che si fregi di tale targa. Il traguardo, ad ogni modo, sembra ora essere vicino: dopo diversi rinvii, Microsoft ha scelto i primi mesi del prossimo anno per l'emissione della sua nuova famiglia di prodotti basati su .NET, partendo dall'ambiente di sviluppo Visual Studio.NET. Nonostante il clima di attesa, gli sviluppatori più interessati hanno già preso un assaggio di .NET, prelevando dal Web le varie emissioni del framework, oppure adoperando le versioni beta del nuovo Visual Studio. In libreria già si trovano alcuni prematuri volumi per gli sviluppatori interessati all'ambiente, così come la stampa specializzata si è dedicata all'analisi della nuova tecnologia da diverso tempo (alcune testate, a mio giudizio, in modo spropositato, a tratti ridicolo). In questo approfondimento, senza pretendere di scendere troppo nel dettaglio, o di essere eccessivamente tecnico, esaminerò i nuovi strumenti di Microsoft, concentrandomi in particolare su ASP.NET, dopo una doverosa introduzione sull'intero framework.

Da COM a .NET (passando per Java?)

.NET (si legge dotnet oppure, italianizzando, puntonet) è un framework di sviluppo e di esecuzione per applicazioni Windows. Chi ha familiarità con il runtime di Java, rimarrà sorpreso dall'effettivo riutilizzo che ha fatto Microsoft di alcuni noti concetti. Il nuovo framework, di fatto, è stato pensato per evolvere e sostituire (in un primo lungo momento, però, per affiancare) la programmazione Windows basata sui classici componenti COM. Le limitazioni di questo approccio, infatti, sono sotto i riflettori da diverso tempo. Sfido chiunque, programmatore o meno, a vantare di non aver mai avuto problemi con DLL e componenti condivisi. COM oggi è, all'interno delle piattaforme Windows, il modello più diffuso per il riuso e la condivisione del codice. Le stesse pagine ASP sono fortemente vincolate all'utilizzo di componenti ActiveX (un sottogruppo di COM), anche per compiere le più banali operazioni di interazione con il sistema operativo. Con .NET, Microsoft migliora sensibilmente l'interoperabilità tra i diversi linguaggi disponibili per Windows. I compilatori .NET, anziché trasformare un sorgente in codice nativo, producono in output un linguaggio fittizio fortemente ottimizzato, che è stato battezzato IL (Internal Language). L'idea è, sostanzialmente, la stessa usata nel bytecode, lo "stato di mezzo" in cui viene compilata ogni applicazione Java, vero artefice del meccanismo multi-piattaforma del linguaggio. Ogni volta che un'applicazione IL viene lanciata, un secondo compilatore JIT (Just In Time) esegue la conversione in codice nativo, avviando successivamente l'applicazione. Ovviamente, il framework .NET non è costituito esclusivamente da IL e dal compilatore JIT. A questi si affiancano una serie di nuovi strumenti e di nuove librerie che possono essere maneggiati durante lo sviluppo di applicazioni. Tali librerie sono organizzate in maniera molto coerente (attraverso dei namespace che ricordano, ancora una volta, i package di Java), e sono condivise da ogni membro della famiglia .NET. Grazie a IL e a ciò che lo circonda, qualsiasi linguaggio .NET può essere selezionato per la lavorazione di un componente condiviso. Questa è una prerogativa ideata in passato da COM, ma alcune debolezze dell'approccio offerto ne hanno limitato l'effettiva messa in essere. Non è possibile, ad esempio, scegliere Visual Basic per costruire componenti con certe caratteristiche. Adesso, rispetto ai linguaggi disponibili, .NET offre possibilità di scelta assoluta. Posso decidere di lavorare con Visual C++, mentre un mio collega può optare per Visual Basic.NET, ma alla fine potremo riunire uniformemente il nostro lavoro, sfruttato lo stato intermedio comune offerto da IL. Le altre novità sono poi molteplici, e sarebbe lungo e fuori luogo passarle in rassegna una ad una. Tanto per citare un altro esempio, non sarà più necessario registrare nel sistema una libreria DLL per poterla sfruttare. Basterà accedere ad una copia del file, trasferita insieme all'applicazione stessa. Quest'idea, sorprendentemente semplice e chissà perché mai applicata sinora, risolve molti dei problemi di conflitto tra versioni, una delle più dolorose spine nel fianco di COM.
L'impressione che ho ricavato da .NET è quella di una piattaforma omogenea e per la prima volta coerente e convincente, anche se, tra le sue specifiche, non riesco ad intravedere la grande rivoluzione annunciata da Microsoft e da alcuni suoi sostenitori. Mi sembra che siano stati adoperati dei concetti già esistenti e a lungo affermati, mischiati in un nuovo mix da offrire in salsa interessante alla comunità degli sviluppatori Windows. Insomma, una rivoluzione, ma solo in casa Microsoft.

I linguaggi di .NET

Sono davvero molti i linguaggi targati .NET. Oltre a Microsoft, anche terze parti potranno sviluppare dei compilatori compatibili con il nuovo framework. Potremo vedere, così, anche un Perl.NET, un Pascal.NET, un Cobol.NET e via discorrendo. Per il momento, comunque, i riflettori sono puntati sui primi linguaggi della famiglia, quelli prodotti da Microsoft stessa, i cui compilatori sono parte del framework e i cui ambienti di sviluppo sono compresi in Visual Studio.NET. Parlando della nuova suite di sviluppo di Microsoft, devo sottolineare tre casi degni di approfondimento.
Il primo è Visual Basic. Questo linguaggio, di fatto, verrà mandato in pensione, rimpiazzato da Visual Basic.NET, simile nel nome e nella sintassi, tuttavia profondamente diverso nei contenuti. Le applicazioni realizzate con VB 6, ad esempio, non potranno essere riconvertite tanto facilmente per la piattaforma .NET. Microsoft stessa consiglia una riscrittura pressappoco totale del codice. VB.NET introduce nel linguaggio molti di quei concetti della programmazione orientata agli oggetti che fino ad oggi, per semplicità, erano stati estromessi.
Il secondo caso interessante è quello di Java. Questo linguaggio, ufficialmente parlando, non fa parte di Visual Studio.NET. Non ne fa parte per dovere e volere di Microsoft. Sun, la casa madre di Java nonché della piattaforma J2EE, non ama che il linguaggio venga utilizzato all'infuori dei suoi intenti originali, e già in passato si è scontrata con Microsoft, riconosciuta colpevole (in tribunale) di un Visual J++ eccessivamente fuori standard. D'altra parte, nemmeno Microsoft è intenzionata a dare esplicito supporto ad un linguaggio che nel nome contiene l'essenza di una piattaforma concorrente. La guerra tra .NET e J2EE, comunque, si svolge sul terreno dei contesti di runtime, e non sulle strutture dei linguaggi. Microsoft, preso atto di ciò, non può prescindere da Java per due motivi: Java incarna perfettamente i paradigmi della programmazione ad oggetti che sono propri del cuore di .NET e Java è uno strumento noto ed ampiamente utilizzato, anche in ambito accademico.
Arriviamo, su questa strada, alla terza nota del paragrafo: C#, un neonato linguaggio che, nella sintassi e negli approcci, somiglia in maniera incredibile a Java. Steve Mills, manager della divisione software di IBM, ha detto "C# is Java by another name" ("C# è Java con un altro nome"). Difficile dargli torto, anche se C# presenta comunque qualche novità degna di nota. C# è, sostanzialmente, il linguaggio principe di .NET, nelle strutture del quale è contenuto il miglior livello di astrazione che il framework possa offrire. I programmatori Java non faranno certo fatica ad apprendere C#, dunque Microsoft si assicura anche una buona fetta di potenziali sviluppatori per la sua piattaforma. Il passaggio da Java a C#, tra l'altro, è semplificato dalle numerose somiglianze tra le due piattaforme concorrenti. Infine, per chi in passato abbia sviluppato con Visual J++, Microsoft offre alcuni tool di conversione automatica dei codici da Java a C#, giusto per testimoniare quanto i due linguaggi siano metodologicamente simili. In definitiva, .NET digerirà meglio Java che non Visual Basic 6.
L'impressione che ne ricavo, è che .NET spinge volontariamente e giustamente verso una programmazione fortemente orientata agli oggetti, l'unico approccio metodologico attualmente in grado di garantire il miglior riutilizzo del codice che possa esistere. Questo è uno degli obiettivi stessi di .NET. Di Java è stato espulso il nome, mentre di Visual Basic, che incarna un modo differente di intendere lo sviluppo, è stata modificata la sostanza. Con .NET, Microsoft scende in un terreno di confronto estremamente moderno. Apprezzo molto queste caratteristiche di .NET, ma solo se osservo il framework spoglianto dal velo di marketing dal quale è stato ricoperto sinora.

ASP.NET

ASP.NET è uno dei tanti tasselli di .NET. Il nuovo framework, ce lo dice il suo stesso nome, è fortemente orientato alla rete, e ASP.NET incarna la porzione Web di questo ampio discorso. Che ASP.NET sia ASP 4 è solo una mezza verità. Come ho cercato di chiarire nei paragrafi precedenti, .NET è principalmente un cambiamento di rotta rispetto alle precedenti tendenze. In quest'ottica, è difficile immaginare una sostituzione repentina di una qualsiasi tecnologia con la sua controparte .NET. ASP 3 e ASP.NET, infatti, convivranno a lungo, e nessuna applicazione ASP necessiterà di un'immediata rivisitazione in chiave .NET. Oltre a questo, c'è da aggiungere che ASP.NET non butta via nulla di quanto sia già contenuto in ASP (ad eccezione di VBScript, anche in questo caso rimpiazzato da VB.NET), piuttosto ne estende i fini e ne potenzia i mezzi. Per rassicurare chi si sta attualmente cimentando con ASP 3, il Web server di Microsoft garantirà pieno supporto a questa tecnologia. Qualsiasi documento con estensione .asp, infatti, verrà trattato dall'interprete di ASP 3, esattamente come avviene ora. I documenti con estensione .aspx, invece, verranno processati all'interno del nuovo framework. Ecco i principali benefici di ASP.NET, rispetto a quanto già offerto da ASP:
  • Migliori tempi di esecuzione.
    I documenti ASP.NET non sono più interpretati, ma compilati in linguaggio interno. In maniera vagamente simile a quanto accade con JSP nella piattaforma J2EE, le pagine compilate e le loro porzioni persistenti verranno mantenute in una cache. Le singole richieste, così, potranno essere soddisfatte con minor perdita di tempo e di risorse.
  • Maggiore possibilità di scelta del linguaggio.
    Mentre ASP supporta esclusivamente i linguaggi di scripting come VBScript e JScript, ASP.NET supporterà qualsiasi compilatore integrato nel framework. Sarà quindi possibile redarre documenti usando VB.NET e C#. JScript rimane supportato come una delle possibili scelte. Opzionalmente, come ho già detto nel paragrafo precedente, il framework potrà essere esteso con compilatori di terze parti, ed i linguaggi corrispondenti potranno essere adoperati in ASP.NET.
  • Integrazione con .NET.
    Essendo ASP.NET parte della famiglia .NET, ci si potrà avvantaggiare delle comode librerie standard di questo ambiente. ASP non dipenderà più esclusivamente dai componenti ActiveX, e le stesse librerie dinamiche potranno essere sfruttate in maniera più libera, coerente e pulita (come si diceva sopra, un file .dll di nuova generazione non deve essere manualmente annotato nel registro di Windows per poter essere sfruttato da un'applicazione).
  • Migliore supporto alle sessioni utente.
    Finalmente anche ASP potrà supportare le sessioni utente anche nei confronti di tutti quei client non abilitati alla ricezione dei cookie.
  • Server Controls.
    I Server Controls permettono una più facile gestione della raccolta degli input forniti dall'utente. Non introducono niente di particolarmente nuovo, ma consentono di sveltire la stesura del codice e di rendere più leggibile il suo contenuto.
ASP.NET, ad ogni modo, non servirà esclusivamente per assemblare delle pagine Web dinamiche che gli utenti potranno consultare attraverso un output HTML. Uno dei principali paradigmi di .NET vede Internet come un'unica piattaforma, all'interno della quale i diversi calcolatori si scambiano informazioni e si forniscono servizi a vicenda (una realtà che, di fatto, esiste già, e che .NET vuole enfatizzare). ASP.NET, dunque, servirà anche per fornire i cosiddetti Web service, servizi offerti ad altre applicazioni sfruttando HTTP come protocollo di comunicazione e XML come veicolo di output.

Approfondimenti più dettagliati su ASP.NET li trovate ai seguenti indirizzi:




Utenti connessi: 3531