Arriva microsoft .net 7. L’ 8 Novembre 2022 è stata rilasciata la nuova versione di Microsoft .Net 7.
Come in generale per le ultime versioni più recenti, anche la .Net 7 è un framework per lo sviluppo “universale”. Consente cioè lo sviluppo sia per desktop, web e mobile.
Notiamo che innanzitutto microsoft .net 7 ha un STS (Short Term Support). Ossiamo fornisce correzioni e supporto per 18 mesi (a breve termine).
In generale con l’Arriva microsoft .net 7 si ottengono nuove funzionalità per C#, Maui, Blazor , Aspe .net Core e WinForms. Le app hanno prestazioni maggiori e sono più veloci. Inoltre con .Net 7 è possibile containerizzare ed impostare i flussi di lavoro per la Continuous Integration & Continuous Delivery (CI/CD) nelle azioni di Github e ottenere l’osservabilità nativa del cloud.
Per passare a .Net 7 è necessario aggiornare Visual Studio 2022 a partire dalla versione 17.4 . Verrà aggiornato l’SDK e l’IDE che consentiranno l’utilizzo di C# 11 .
Principalmente Microsoft si è spostata verso l’efficienza energetica con le CPU ARM. In particolare con le ARM64, poichè la stesso mercato oggi si è concentrato su questi processori.
Ritroviamo miglioramenti nelle librerie con nuovi helper multipiattaforma. Sono stati introdotti gli helper per Vector64, Vector128 e Vector256. Gli helper multipiattaforma consentono di unificare gli algoritmi vi vettorizzazione sostituendo gli entrisechi specifici dell’hardware con intrisechi indipendenti. Ciò per ottimizzare lo sviluppo con ARM64.
Le novità e i miglioramenti coinvolgono anche Asp.net Core ed Entity Framework. LINQ ottiene migliorie di prestazione sui metodi come Orderby , Min, Max e Average sfruttando i vector che le CPU possono supportare in fase di esecuzione.
In .Net 7 le prestazioni vengono migliorate grazie al dynamic PGO (Profile Guided Optimization) e al OSR (One Stack Replacement).
In particolare il On Stack Replacement (OSR) consente al runtime di modificare il codice eseguito dai metodi attualmente in esecuzione nel mezzo dell’esecuzione del metodo, sebbene tali metodi siano attivi “on stack”. Serve come complemento alla compilazione a più livelli.
OSR consente ai metodi a esecuzione prolungata di passare a versioni più ottimizzate durante l’esecuzione, in modo che il runtime possa eseguire rapidamente il JIT di tutti i metodi all’inizio e quindi passare a versioni più ottimizzate quando tali metodi vengono chiamati frequentemente tramite la compilazione a più livelli o hanno cicli di esecuzione prolungata OSR.
OSR migliora il tempo di avvio. Quasi tutti i metodi sono ora inizialmente bloccati dal rapido JIT. Si riscontra un miglioramento del 25% nel tempo di avvio in applicazioni con jitting pesanti come Avalonia “IL” spia e i vari benchmark TechEmpower che mostrano miglioramenti del 10-30% nel tempo alla prima richiesta.
L’ottimizzazione guidata dal profilo (PGO) esiste da molto tempo in numerosi linguaggi e compilatori. L’idea di base è compilare la propria app, chiedendo al compilatore di inserire la strumentazione nell’applicazione per tenere traccia di varie informazioni interessanti. Quindi si può teatare la propria app, attraversando vari scenari comuni, facendo sì che l’app venga eseguita e i risultati vengano quindi salvati. L’app viene quindi ricompilata, reimmettendo i risultati della strumentazione nel compilatore e consentendogli di ottimizzare l’app esattamente per come dovrebbe essere utilizzata.
Questo approccio al PGO viene definito “PGO statico”, poiché le informazioni vengono tutte raccolte prima della distribuzione effettiva ed è qualcosa che .NET ha fatto in varie forme per anni. Lo sviluppo interessante in .NET è il “PGO dinamico”, introdotto in .NET 6, ma disattivato per impostazione predefinita.
Dynamic PGO sfrutta la compilazione a più livelli. Il JIT strumentizza il codice di livello 0 per tenere traccia di quante volte viene chiamato il metodo o, nel caso di cicli, quante volte il ciclo viene eseguito. La compilazione a più livelli può fornire una varietà di possibilità. Ad esempio, può tracciare esattamente quali tipi concreti vengono utilizzati come destinazione di un invio di interfaccia e quindi, nel livello 1, specializzare il codice per aspettarsi i tipi più comuni (questo è indicato come “devirtualizzazione protetta” o GDV ).
Il tutto è stato presentato nella confermenza Microsoft del Novembre 2022 (per approfondimenti vedere QUI).
(Fonte)
Innovaformazione, scuola specializzate nella formazione informatica specialistica supporta le aziende per incrementare le skills del proprio team di sviluppatori.
L’offerta formativa nell’ambito .Net è vasta. Di seguito alcuni corsi:
