Introduzione a .NET Core 1.0: una nuova era

di , in .NET Core,

Ormai ci siamo e la RTM del .NET Core 1.0 è ormai alle porte: il 27 giugno 2016. Al momento della stesura di questo articolo i bit disponibili sono della RC 2 e poco, così è stato promesso, cambierà con la versione finale. Si tratta di un evento molto importante, quasi al pari di 16 anni fa, quando uscì la prima versione del .NET Framework. Sebbene il nome è simile, molto è cambiato: lo dice il numero di versione 1.0, per indicare che è qualcosa di nuovo, riscritto da zero o quasi, e lo dice il nome Core, ad indicare qualcosa di leggero e basilare. Non si tratta, infatti, di un framework, ma un insieme di componenti fatti da runtime, librerie e compilatori per creare app.

Le nuove .NET Core Application

Per capire cosa ha spinto Microsoft ad un tale cambiamento occorre guardare al percorso fatto fino adesso e quali limiti sono stati riscontrati con il .NET Framework. Come sappiamo è un framework che si installa a livello di macchina Windows e nel tempo è cresciuto con il moltiplicare di assembly e di runtime che hanno arricchito le sue funzionalità e consentito di apportare innovazioni nei linguaggi che lo supportano. Il .NET Framework è sempre stato una scatola chiusa che pian piano si è aperto al pubblico, prima con il programma shared source, poi con il reference source, ma solo per una consultazione del codice e il relativo debugging.

Per necessità e/o convenienza sappiamo che Microsoft è cambiata da qualche anno. È sempre più rilevante la sua posizione nel mondo open source. ASP.NET e Entity Framework, tra gli strumenti principali dello sviluppo lato server, sono open source ormai da qualche anno, mentre Windows non è più la sola piattaforma di riferimento. L'approccio che Microsoft ha nell'offrire servizi la spinta ad occuparsi anche di macOS e Linux, tanto da non privilegiare più una piattaforma piuttosto che un'altra. Infine, anche il ciclo di sviluppo del software è cambiato, è molto più breve e più veloce, rendendo il .NET Framework non al passo con i tempi. Se guardiamo la slide presentata a BUILD, la conferenza degli sviluppatori Microsoft, possiamo vedere quali sono i punti chiavi che hanno spinto alla creazione del .NET Core.

Possiamo quindi vedere che un intero setup a livello di macchina non è più adatto, obbliga la macchina server di adeguarsi ad ogni nuova versione. Inoltre il .NET Framework è troppo grande perciò ne conviene l'utilizzo di un approccio inverso, modulare, che venga distribuito insieme ad ogni applicativo. Strumenti, librerie e runtime devono poi essere open source, come ormai fanno molti linguaggi, come NodeJS, Java o Ruby, per beneficiare dei contributi della comunità, in grado di rendere ancora più forte e affidabile la piattaforma. Di conseguenza il runtime deve andare su più piattaforme e permettere di usare gli strumenti di modifica che lo sviluppatore preferisce. Anche in questo caso, infatti, Microsoft si ispira agli altri attori del mercato, grazie all'introduzione di Visual Studio Code, funzionante su macOS, Linux e Windows, ma anche grazie all'integrazione con editor come Sublime o Atom.

Partendo da questi presupposti, Microsoft ha optato per un nuovo punto di inizio, che faccia tesoro e sfrutti quanto già disponibile fino adesso. .NET Core, infatti, potrebbe essere visto come un .NET Framework 5.0, ma in virtù dei punti menzionati in precedenza, è qualcosa di più. Il .NET Core runtime è rappresentato dal CoreCLR, funzionante su tutte le piattaforme che porta con sé tutte le ottimizzazioni introdotte con il .NET Framework 4.6: RyuJIT e .NET GC. In futuro, una seconda implementazione, di nome .NETNative, consentirà inoltre godere di codice managed interamente compilato in linguaggio nativo, dando eccellenti prestazioni che nulla avranno da invidiare a C++ o simili. Ad esso si affiancano le .NET Core Libraries (CoreFX) le quali contengono la quasi totalità delle librerie che siamo già abituati ad usare, se veniamo dal .NET Framework. Tutte queste però, lo ripetiamo, funzionanti su tutte le piattaforme.

Le .NET Core application, di conseguenza, sono le applicazioni che possiamo costruire basandoci sul runtime e sulle librerie. Sono di fatto delle console application multi piattaforma che portano con sé le librerie del CoreFX e il runtime stesso, senza la necessità di installazioni, ma solo la semplice copia.

4 pagine in totale: 1 2 3 4
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

Introduzione a .NET Core 1.0: una nuova era 1010 4
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti