Il team di Microsoft ha rilasciato in questi giorni .NET Core 3 Preview 2. Si tratta della seconda release di testing per il framework di sviluppo di Microsoft che in questi anni sta riscuotendo un notevole successo all'interno della community di sviluppatori.
.NET è un framework software open source costituito da CoreCLR, un’implementazione runtime completa di CLR, la macchina virtuale che gestisce l’esecuzione di programmi .NET. Sostanzialmente .NET Core supporta quattro scenari di sviluppo di applicazioni cross-platoform: App Web ASP.NET Core, tool da shell, librerie e App su Universal Windows Platform.
.NET Core 3 Preview 2 include diverse novità riguardanti anche C# 8, il linguaggio di riferimento dell'ecosistema Microsoft, che fa parte dell'SDK di .NET Core 3 ed è incluso all'interno di Visual Studio 2019 Preview 2. Questa nuova build è disponibile, oltre che per Windows, anche per Linux e MacOS.
Una delle novità più rilevanti è l'introduzione del supporto alle declaration. In precedenza era necessario utilizzare degli statement che richiedevano l'indentazione del codice, ma grazie a questo update sarà possibile scrivere codice usando, appunto, le declaration. Ad esempio:
static void Main(string[] args)
{
using var options = Parse(args);
if (options["verbose"]) { WriteLine("Logging..."); }
} // options disposed here
Altra novità riguarda le switch expressions, la loro sintassi risulta essere scomoda da implementare ecco perché C# 8 introduce switch expression che consentono di utilizzare una sintassi molto più intuitiva. Ecco un esempio di switch expression all'interno di sistassi lambda:
static string Display(object o) => o switch
{
Point { X: 0, Y: 0 } => "origin",
Point { X: var x, Y: var y } => $"({x}, {y})",
_ => "unknown"
};
Il team di sviluppo ha implementato anche l'Async streams. Dopo vari update però è ancora necessario che il compilatore e le librerie del framework corrispondano per far funzionare correttamente tale feature. Inoltre è essenziale disporre di .NET Core 3.0 Preview 2 per utilizzare l'Async stream se si desidera sviluppare con Visual Studio 2019 Preview 2.
Arrivati anche dei miglioramenti per quanto riguarda gli IEEE Floating-point. Le Floating point API sono in fase di aggiornamento per essere conformi alla revisione IEEE 754-2008. L'obiettivo di questo progetto è di esporre tutte le operazioni "richieste" e assicurare che siano conformi al comportamento con le specifiche.
Sono state introdotte anche diverse nuove Math API come BitIncrement/BitDecrement, MaxMagnitude/MinMagnitude, ILogB, ScaleB, Log2, FusedMultiplyAdd e CopySign. Oltre a diverse librerie che consentono l'accesso a istruzioni CPU perf-oriented, come i set di istruzioni SIMD o Bit Manipulation.
Queste istruzioni possono aiutare a ottenere grandi miglioramenti delle prestazioni in determinati scenari, come l'elaborazione efficiente dei dati in parallelo. Oltre a esporre le API per i programmi, si è iniziato ad utilizzare queste istruzioni per migliorare le performance delle le librerie .NET.
Arrivato anche il supporto al fast in-box JSON Writer & JSON Document e all'Utf8JsonWriter. Quest'ultimo componente offre una modalità forward-only, non memorizzata nella cache e ad alte prestazioni per scrivere testo JSON con codifica UTF-8 da .NET type comuni come String, Int32 e DateTime. La scrittura di un payload JSON utilizzando il nuovo Utf8JsonWriter è del 30-80% più veloce rispetto all'uso del writer di Json.NET.
Novità anche per gli sviluppatori della famosa board ARM Raspberry Pi, è stato infatti introdotto un primo supporto alle interfacce GPIO e sono stati rilasciati due nuovi pacchetti NuGet dedicati alla programmazione tramite GPIO ovvero System.Device.Gpio e Iot.Device.Bindings.
Via Microsoft