Le novità di .NET Core 3.0

di Cristian Civera, in .NET Core,

In occasione della .NET Conf 2019 svoltasi il 23 settembre, Microsoft ha rilasciato la nuova versione 3.0 di .NET Core. Questa uscita rispetta la scadenza stabilita ed è la prima delle tante che usciranno negli anni a venire. Nei piani di Microsoft l'intenzione è di rilasciare una major version a novembre di ogni anno perciò lo sguardo è già proiettato a .NET 5, della quale sappiamo che porterà un runtime unificato per qualsiasi piattaforma, anche web.

.NET Core 3.0 esce con licenza current, il che significa che sebbene sia la versione consigliata per l'inizio di nuovi progetti, essa gode di un supporto di soli tre mesi. E' già previsto, infatti, il rilascio della versione 3.1 a novembre che non introdurrà particolari novità ne saranno presenti breaking changes, ma che da un punto di vista delle licenze sarà di tipo Long-term support (LTS), quindi supportata per tre anni.

Il punto della situazione

Questa versione rappresenta sicuramente un framework diventato maturo e stabile, giusto in tempo, ora che .NET Framework 4.8 non verrà più evoluto. Lo dimostrano le poche, ma importanti novità introdotte in ASP.NET Core o Entity Framework Core, insieme alla decisione di spingere anche gli sviluppatori desktop ad adottare questo nuovo (non più) runtime.

In questo articolo vogliamo fare il punto dei contenuti relativi a .NET Core 3.0 che abbiamo già pubblicato ed integrarli con quanto di nuovo è emerso in questi mesi. Questa nuova versione contiene novità riguardanti:

  • ASP.NET Core 3.0: sono state trattate in questo articolo e nelle prossime settimane seguiranno maggiori dettagli, soprattutto in ambito Blazor. Questo strumento, ideato per realizzare applicativi web moderni, è presente nella sua versione server side, ma a maggio 2020 verrà rilasciata la contro parte client, basata su Web Assembly, la quale ha tutte le carte in regola per rivoluzionare lo sviluppo web;
  • Entity Framework Core 3.0: stabilità e il supporto a Cosmos DB sono la chiave di questo aggiornamento. E' stato rilasciato anche Entity Framework 6.3 che ha la particolarità di poter essere eseguito anche in .NET Core, aspetto che introduce qualche dubbio che verrà però chiarito anche in questo caso con un articolo dedicato;
  • WPF e WinForms: di notevole impatto è il supporto di .NET Core alla realizzazione di applicativi desktop. In questo articolo abbiamo affrontato cosa vuol dire migrare o realizzare applicativi con questo nuovo runtime e quali sono i benefici;
  • C# 8: questa nuova versione del linguaggio è la prima, dopo tanti anni, che necessita di un adeguamento del runtime ed è perciò utilizzabile solo con .NET Core 3.0. In questo articolo sono presenti tutte le caratteristiche del linguaggio.

Invitiamo inoltre a leggere l'articolo riguardante Visual Studio 2019 necessario, previo aggiornamento alla versione 16.3, per poter sfruttare .NET Core 3.0 e le caratteristiche di C# 8. L'aggiornamento installa automaticamente il nuovo SDK ed elimina eventuali vecchie preview. Rispetto al passato, con questa nuova versione Microsoft cambia strategia al fine di evitare di disporre sulla macchina di innumerevoli SDK. A gruppi di 100 le versioni ora si sostituiscono l'una con l'altra: una 3.0.101 viene sostituita da una 3.0.102, fino ad arrivare a 3.0.199. Questa sostituzione non avverrà anche nei cambi di minor version, come per esempio dalla 3.0.x alla 3.1.x. Sebben molto spesso SDK segue il versioning del runtime, non è detto che questo sempre avvenga per quanto riguarda la patch (il terzo numero separato dal punto).

La versione 3.0 di .NET Core è anche l'unica ad implementare .NET Standard 2.1, quelle definizioni di classe e membri che i runtime devono implementare affinché possiamo usufruire di certe API. Oltre a .NET Core, anche Mono e Xamarin supportano questo standard, dandoci la possibilità di utilizzare Span<T>, ValueTask<T>, Reflection Emit, SIMD, e tanti altri piccoli overload sui membri della BCL. .NET Framework per la prima volta non implementa questa nuova versione del .NET Standard perciò dobbiamo prestare attenzione a quando sviluppiamo una libreria bilanciando disponibilità delle API e runtime che vogliamo supportare.

Entity Framework Core 3.0, su questo fronte è composto da pacchetti NuGet compatibili con .NET Standard 2.1 perciò non più utilizzabile da .NET Framework. ASP.NET Core 3.0, invece, è ancora .NET Standard 2 perciò utilizzabile anche con .NET Framework, ma il motivo che ci può portare ad effettuare una tale scelta viene sempre meno, soprattutto ora che disponiamo di Entity Framework 6.3 per supportare eventuali migrazioni.

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

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

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

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc