Il team di Microsoft ha annunciato il rilascio della nuova versione di .NET Core 2.1, l web framework open source sviluppato dalla casa di Redmond. ASP.NET Core ha ricevuto notevoli migliorie in questa nuova build, la a supportare ufficialmente Alpine Linux e i vari SoC ARM32.
Span T ed Entity Framework Core
Su .NET Core 2.1 è stato integrato un nuovo primitive type, chiamato Span T, che può operare sui dati anche senza allocation. Arrivate anche diverse nuove API che si focalizzano principalmente sul supporto alla crittografia, sulla compressione dei dati e sulla compatibilità con le nuove versioni di Windows. E' stato implementato inoltre un nuovo metodo per eseguire il deploy con tool come NuGet package.
Insieme ad ASP.NET Core 2.1 il team Microsoft ha rilasciato anche la nuova release di Entity Framework Core 2.1, l'object-relational mapping (ORM) framework open source per ADO.NET che dalla versione 6 è stato separatp dal .NET Framework diventando un progetto indipendente.
Container, deployment e prestazioni
.NET Core 2.1 rende più semplice la gestione dei progetti e della pubblicazione delle self-contained application. Le applicazioni distribuite tramite container sono ormai molto comuni, dunque è normale che i developer Microsoft abbiano posto particolare attenzione a questo settore, migliorando i tool di .NET Core appositamente dedicati.
In particolare .NET Core 2.1 dispone di un nuovo sistema per il deployment derivato direttamente dall'esperienza del team di developer con NPM global tool. Si può testare tale feature tramite la .NET Core console. Da questa release i tool saranno framework-dependent ed includeranno tutte le varie dipendenze NuGet, questo significa che le applicazioni sviluppate con .NET Core potranno essere eseguite nativamente sui sistemi supportati dal framework.
Microsoft ha lavorato anche sul lato prestazioni, .NET Core 2.1 gode di un boost di performance durante la build delle applicazioni davvero notevole, anche grazie all'introduzione di vari long-running servers (VBCSCompiler, MSBuild worker processes e Razor server) al .NET Core SDK che contribuiscono allo snellimento delle operazioni di sviluppo più comuni.
HttpClient e compressione dati
Introdotto anche un nuovo HttpClientHandler chiamato SocketsHttpHandler, questo nuovo componente è un'implementazione in C# dell'HttpClient basata sul .NET socket e sul nuovo primitive type Span T. Non avendo dipendenze specifiche può essere utilizzato senza problemi su tutti i sistemi operativi supportati da .NET Core, garantendo le medesime performance ovunque. Per questo motivo è diventato l'implementazione di default per HttpClient.
.NET Core 2.1 ora può vantare il supporto a all'algoritmo di compressione Brotli che è attivamente supportato dai principali browser web e web server, oltre a diversi CDN (Content Delivery Networks).
SourceLink, compatibilità e aggiornamenti
Altra novità di questa release è SourceLink, un sistema che permette ai developer di eseguire il debugging del codice e dei binari distribuiti. Il Visual Studio debugger supporta già nativamente SourceLink, quindi Microsoft ha voluto chiudere il cerchio e consentire agli utenti di .NET Core di lavorare col medesimo debugger tool.
.NET Core 2.1 è una delle prime release ad essere distribuita anche tramite pacchetti Snap. Su Ubuntu, e le varie distro che supportano i pacchetti Snappy, è infatti possibile installare molto facilmente la nuova versione:
sudo snap install dotnet-sdk --candidate --classic
sudo snap install dotnet-runtime-21 --candidate
.NET Core 2.1 è una release LTS (Long-term Support) dunque sarà pienamente supportato per ben 3 anni. Nei prossimi 3 mesi .NET Core 2.1 sarà aggiornato con nuove funzionalità, dopo questo periodo i developer di Redmond si focalizzeranno sulle patch di sicurezza, sulla reliability e sull'aggiunta del supporto alle nuove piattaforme software come ad esempio Ubuntu 18.10.
Via .NET Core