Microsoft .NET
Da Wikipedia, l'enciclopedia libera.
La suite di prodotti .NET (tutto in lettere maiuscole, pronunciato dotnet) è un nuovo progetto all'interno del quale Microsoft ha creato una nuova piattaforma di sviluppo software caratterizzata da trasparenza rispetto alla rete sottostante, indipendenza dalla piattaforma hardware e software, e facilità di sviluppo rapido delle applicazioni.
Attualmente la piattaforma .NET è una delle più versatili tecnologie di programmazione, è possibile creare praticamente qualsiasi tipo di applicazione e offre una "Libreria standard" eccezionale, ha un numero incredibile di classi, funzioni e namespace predefiniti.
Indice |
[modifica] La strategia Microsoft
Microsoft attribuisce un ruolo strategico al lancio di .NET come piattaforma di sviluppo per applicazioni desktop e server nel prossimo decennio per le architetture client/server, internet ed intranet.
[modifica] Caratteristiche principali
La prima versione di .NET è stata rilasciata nel 2002. La sua caratteristica peculiare è di essere indipendente dalla piattaforma su cui è installata, e di includere molte funzionalità progettate espressamente per integrarsi in ambiente internet e garantire il massimo grado di sicurezza e integrità dei dati. Utilizza in modo esteso il concetto di modularità dei componenti software (Component Oriented Programming), proponendosi così come evoluzione dell'esistente modello COM (Component Object Model).
Il CLI (Common Language Infrastructure) è una macchina virtuale che, insieme alla classe di librerie di base denominata CLR (Common Language Runtime), è progettato per poter funzionare con qualsiasi sistema operativo. La macchina virtuale esegue un codice assembly denominato CIL (Common Intermediate Language). È inoltre possibile:
- accedere a componenti scritti in altri linguaggi;
- quando il sistema operativo sottostante è Microsoft Windows, accedere ai suoi servizi e alle sue API;
- accedere ai Servizi Web utilizzando il protocollo SOAP (Simple Object Access Protocol).
[modifica] Strumenti e prodotti di supporto
.NET è corredato da una serie di strumenti di sviluppo delle applicazioni, progettati in modo da funzionare in modo integrato all'interno della piattaforma .NET. Uno dei principali strumenti è l'IDE (Integrated Development Environment cioè Ambiente di sviluppo integrato) denominato Visual Studio.
[modifica] Linguaggi di programmazione .NET
Il CLI (Common Language Infrastructure) è concepito per essere compatibile con qualsiasi linguaggio di alto livello orientato agli oggetti, fornendo un unico modello a oggetti ed una vasta libreria di classi condivisibili.
Ciò costituisce un'evoluzione della strategia Microsoft che in passato aveva tradizionalmente avuto nel linguaggio Visual Basic uno dei propri punti di forza. Alcuni analisti hanno fatto notare che si è trattato di una scelta non priva di rischi da parte di Microsoft, in quanto per un programmatore Visual Basic la migrazione verso Visual Basic .NET (vedi oltre) può richiedere un notevole periodo di assuefazione, poiché, per poter sfruttare tutte le potenzialità del nuovo linguaggio, deve abituarsi a pensare in termini totalmente object oriented, e questo nonostante il fatto che Visual Basic .NET abbia conservato, per quanto possibile, la sintassi delle vecchie versioni.
Il vecchio Visual Basic, giunto fino alla versione 6 per Windows, si era infatti lentamente evoluto verso la programmazione ad oggetti, senza però arrivare ad implementarla completamente, e questo anche perché Microsoft non voleva creare una rottura drastica con lo stile di programmazione acquisito dai milioni sviluppatori che lo utilizzavano, e tuttora lo utilizzano, in tutto il mondo e ormai da molti anni. Microsoft, ed altri produttori di software, forniscono compilatori e strumenti di sviluppo per molti linguaggi di programmazione, fra cui:
- Linguaggi forniti da Microsoft insieme alla suite originale:
- C# (pronunciato C sharp), linguaggio ad oggetti simile al Java della Sun Microsystems.
- Visual Basic .Net, un nuovo linguaggio orientato agli oggetti e multi-threaded basato sulla semplice sintassi del vecchio VisualBasic
- J# (pronunciato J sharp), variante di J++ (la versione Microsoft di Java)
- Managed C++, una variante managed (vedi oltre) del C++ per la piattaforma .NET
- Alcuni linguaggi forniti da altri produttori:
- APL
- FORTRAN
- Lexico, didattico in lingua spagnola.
- Delphi 8, 2005, 2006 chiamato anche Delphi per .NET, totalmente compatibile con .NET. Delphi 8 è disponibile dal dicembre 2003 e tutte e tre le implenmentazioni di compilatori .NET sono considerati stabili ed affidabili.
- RPG
- COBOL
- Perl
- Python
- Mercury
- Component Pascal, più simile all' Oberon che non al Pascal
- F sharp
- Lisp
- Forth
- Nemerle, linguaggio ibrido di tipo funzionale/imperativo
- Mondrian semplice linguaggio di scripting a componenti di tipo funzionale..
- Smalltalk
- Nota 1: molti di questi compilatori sono utilizzabili gratuitamente (free). I produttori, invece, distribuiscono a pagamento gli IDE (ambienti e tool di sviluppo integrati);
- Nota 2: alcuni linguaggi sono stati sottoposti a importanti modifiche per adattarli alle librerie di base di .NET (framework .NET). Alcuni produttori hanno usato questa esigenza di adattamento come pretesto per poter giustificare l'implementazione di funzioni aggiuntive rispetto a quelle classiche dei vari linguaggi.
I seguenti linguaggi sono forniti sia da Microsoft che da altri produttori:
- ASP.NET, evoluzione del classico ASP (Active Server Pages), linguaggio di programmazione in ambiente web, implementa .NET ed è dotato di librerie .NET, pur non essendo un linguaggio vero e proprio poiché può essere scritto utilizzando un qualsiasi altro linguaggio .NET.
- ADO.NET, nuova versione per il framework .NET di ADO (Active Data Objects)
[modifica] Confronto fra .NET e J2EE
Il CLI, il CIL ed il C# sono simili rispettivamente alla Java Virtual Machine ed al linguaggio Java della Sun Microsystems, con cui sono in forte concorrenza. Entrambi utilizzano un proprio bytecode intermedio. Il bytecode di .NET è progettato per essere compilato al momento dell'esecuzione (just in time compilation detta anche JITting), mentre il bytecode di Java era inizialmente nato per essere interpretato (quindi non compilato al momento). Al momento .NET è compatibile al 100% soltanto con le piattaforme Windows, mentre Java è disponibile per molte piattaforme (sono tuttavia disponibili implementazioni alternative di .NET, come Mono oppure Rotor, vedere sotto per un elenco più completo). Il J2EE (Java 2 Platform, Enterprise Edition) di Sun fornisce funzionalità equivalenti ad altre tecnologie Microsoft, come COM+ e MSMQ, che lavorano in modo fortemente integrato con i sistemi operativi Windows. .NET fa un uso estensivo ed astratto di tutte queste tecnologie ormai consolidate.
[modifica] Confronto fra .NET e COM
La tecnologia di software a componenti su cui Microsoft ha puntato maggiormante in passato per lo sviluppo su larga scala di applicazioni era COM (Component object model), evolutosi poi in COM+, detto anche MTS.
Per consentire una migrazione graduale verso .NET dei progetti esistenti, .NET è stato progettato per interagire con oggetti COM, facendo da wrapper (letteralmente involucro), cioè da strato esterno che accede alle funzioni dello strato interno; tuttavia Microsoft ha dichiarato molto esplicitamente che in futuro, .NET è destinato a sostituire COM come modello architetturale di software a componenti. Le nuove applicazioni che accedono alle funzionalità ed ai servizi delle piattaforme Win32 dovrebbero, quindi, d'ora in poi utilizzare .NET anziché COM., previa interposizione di interfacce astratte (i componenti transazionali di .NET utilizzano attualmente COM+).
[modifica] Standardizzazione
Microsoft ha sottoposto una parte delle specifiche di progetto di .NET all'esame di ECMA (European Computer Manufacturers Association) per consentirne la standardizzazione. Ciò costituisce un rischio, sebbene calcolato. Questa mossa ha lo scopo di favorire l'implementazione di versioni e strumenti compatibili con il nuovo standard, che facciano da strumenti di migrazione e conversione di software non scritto per Windows in codice .NET.
[modifica] Implementazioni alternative
Sebbene le classi di librerie del Framework .NET siano il punto di riferimento standard di tutta la tecnologia .NET, ne esistono anche numerose implementazioni alternative.
Mono è un'implementazione open source delle librerie runtime e di sviluppo di .NET, sviluppata da Ximian, una società appartenente alla Novell Inc., in collaborazione con la comunità degli sviluppatori open source. Mono sta rapidamente evolvendo verso una notevole stabilità, ed include anche il supporto per ASP.NET, ADO.NET, e la futura generazione delle librerie dei Windows Forms. Mono, inoltre, comprende già ora le seguenti librerie con le relative tecnologie di supporto:
- GTK#: un wrapper .NET per i toolkit GUI GTK+.
- XSP: un servizio web scritto in C# per supportare applicazioni ASP.NET di tipo host.
- MonoDevelop: un adattamento di SharpDevelop, un IDE di tipo GPL per .NET, verso Gtk# e Mono.
- Classe di librerie Novell.Directory.Ldap: versione free di LDAP (Lightweight Directory Access Protocol) per .NET.
DotGNU Portable.NET è meno maturo e stabile di Mono poiché la versione originaria di Portable.NET non è stata scritta usando le classi del Framework di Microsoft.
Microsoft Rotor, (ovvero lo Shared Source Common Language Infrastructure) è un'implementazione di tipo shared del Framework .NET che funziona sotto Windows XP, FreeBSD, e Mac OS X 10.2.
[modifica] Storia
Le tecnologie di base di .NET erano originariamente state sviluppate da Microsoft come propria versione di Java, per poi evolvere, nel 1998 nel linguaggio J++ e successivamente in .NET.
[modifica] Voci correlate
[modifica] Collegamenti esterni
- UGIdotNET, User Group Italiano dotNET
- DotNetSide, Dot Net South Italy Developers User Group
- dNA, dotNET Architects
- Portale di programmazione .Net
- (EN) Sito ufficiale Microsoft per le risorse .NET
- (DE, EN, ES) C# Online.NET - C# e .NET enciclopedia.
- (EN) TheServerSide.Net
- (EN) ClassDotNet
- (EN) GotDotNet
- (EN) Ximian's Mono Project, implementazione Open Source del Framework .NET
- (EN, ES, FR) ASP.NET Sviluppo di applicazioni Web in .NET
- (EN) WindowsForms.com Website focusing on WinForm development in .NET
- (EN) Xtras.Net Componenti e tool per sviluppatori .NET
- (EN) DotNet2TheMax Articoli ed esempi di codice per sviluppatori .NET
- (EN) .NET Framework General Reference Capitalization Styles
- (EN) DotNetNuke Portale di informazioni open-sourcebasato sul framework .NET
- (EN) Dotnet4all.com Knowledgebase basata su una wiki