.NET non e' una niente di rivoluzionario ne di travolgente ma rappresenta semplicemente l'evoluzione dei sistemi o semplicemente quello che e' venuto fuori da idee proprie o altrui adattate con un nuovo (quello sì ma neanche tanto originale) nome.
La prima volta che ne ho sentito parlare oltre all'annuncio al mondo fatto da Steve Ballmer fatto al mondo nel giugno 2000 e' stato a una conferenza Microsoft nell'ottobre dello stesso anno.
In sostanza si tratta di una tecnologia che, secondo gli ispiratori, ha come scopo quello focalizzare l'attenzione dei programmatori alle esigenze degli utenti creando un nuovo paradigma chiamato "programmazione orientata agli utenti" che eredita tutto quello che di buono c'era nella precedente 'rivoluzione' della programmazione orientata agli oggetti, cancellando naturalmente tutto ciò che era cattivo....
.NET e' la risposta Microsoft a Java di Sun. E' sua diretta concorrente ( non a caso la Java VM non e' più distribuita con le ultime versioni dei sistemi operativi Microsoft, in compenso il .NET Framework per i sistemi Windows e' liberamente scaricabile da internet (20MB!!)), si propone come piattaforma di sviluppo non legata a una particolare architettura e programmabile con una serie di linguaggi tutti accomunati dal cosiddetto Common Language Runtime (CLR), e' disponibile oltre che su piattaforma Wintel anche su per alcuni smartdevice o anche per Linux.
Il CLR e' condiviso tra tutti i linguaggi .NET disponibili oggi e per i quali e' dispoibile un compilatore o un ambiente di sviluppo Microsoft (C#, C++, J#, VB) o di terze parti (ho visto Fortran.NET e Cobol.NET!).
Il CLR si basa sul framework che e' lo strato di interfaccia tra i programmi applicativi compilati e disponibili in Intermediate Language che necessitano di una serie di librerie per funzionare e il sistema operativo su cui gira il tutto.
Le librerie del framework sono tutte object based e offrono ai vari linguaggi un'interfaccia comune.
Il linguaggio di sviluppo di riferimento per .NET secondo Microsoft e' il C# che (secondo il mio parere), seguito dal J# (adattamento Microsoft di Java), e' il nuovo linguaggio sviluppato appositamente per .NET. Il C++ (managed, da non confondere con il C++ standard che ancora, per fortuna, esiste) fa' i salti mortali sintattici, il VB.NET non so' quanto senso ha ancora di esistere visto che il codice dalla versione precedente non e' direttamente portabile (anche se esistono i convertitori, i cui risultati sono tutti da verificare) e a questo punto i conoscitori di VB (anche se sono la stragrande maggioranza) farebbero bene a imparare qualcosa di nuovo.
Il C# e' un linguaggio facile da imparare per chi conoce il C++, il Java o l'object pascal (il Delphi per capirci), recentemente e' diventato standard ISO, il compilatore a linea di comando e' presente nel framework sdk, ma per poterlo utilizzare in modo produttivo (più di scrivere il classico esempio di Hello World!) e' necessario usare un ambiente di sviluppo quale il Visual Studio.NET (o in alternativa anche se non lo conosco il Borland C#).
Conoscere il C# non basta per programmare .NET, occorre conoscere il framework di .NET ovvero l'insieme di librerie di classi (tutte object based alla faccia della della programmazione generica template based) che lo compongono e che hanno (nell'intenzione di chi lo ha sviluppato) sostituito le classiche chiamate all'Application Programming Interface. Il framework e' comune tra tutti i linguaggi (si differenzia solo la sintassi per la chiamata ai metodi o per cambiare le proprieta' agli oggetti).
Per capire cosa significa uniformita' di interfaccia verso il framework a suo tempo ho scritto lo stesso programma nei 4 linguaggi disponibili (C#, J#, C++ managed e VB) l'archivio contiene la solution compatibile a Visual Studio.NET 2003.
Tra le 4 versioni quella che sintatticamente più semplice e' (a mio parere) la versione C#, seguita in ordine dalla J#, VB.NET e C++ managed.
Questa semplice applicazione e' solo un esempio didattico, .NET e' stato creato per scrivere applicazioni complesse internet based che interagiscono con web services (basati su ASP.NET) presenti in rete comunicando in XML, via HTTP. Chissà quando tutti i computer e smart device saranno connessi in rete....
L'archivio contiene la stessa applicazione scritta come applicazione ASP.NET. Il codebehind e' scritto in C# (linguaggio ormai di riferimento per le applicazioni .NET) prendendo a prestito le funzioni dell'applicazione standalone. All'indirizzo invece e' possibile testare l'applicazione funzionante.
Saluti
Marco Savegnago