Microsoft ha pubblicato la piattaforma open source .NET 7

L'azienda Microsoft ha presentato un'importante versione della piattaforma aperta .NET 7, creata grazie all'unificazione dei prodotti .NET Framework, .NET Core e Mono. Basato su .NET 7, è possibile creare applicazioni multi-piattaforma per browser, sistemi cloud, desktop, dispositivi IoT e piattaforme mobili, utilizzando librerie unificate e un processo di compilazione comune, indipendente dal tipo di applicazione. Le build di .NET SDK 7, .NET Runtime 7 e ASP.NET Core Runtime 7 sono disponibili per Linux, macOS e Windows. .NET Desktop Runtime 6 è fornito solo per Windows. I materiali correlati al progetto sono distribuiti sotto la licenza MIT. Il supporto per la versione .NET 7 sarà fornito per 18 mesi fino al 14 maggio 2024.

.NET 7 include il runtime CoreCLR con il compilatore JIT RyuJIT, librerie standard, librerie CoreFX, WPF, Windows Forms, WinUI, Entity Framework, l'interfaccia a riga di comando dotnet, insieme a strumenti per lo sviluppo di microservizi, librerie, applicazioni server, grafiche e console. È stata pubblicata separatamente una stack per lo sviluppo di applicazioni web ASP.NET Core 7.0, il livello ORM Entity Framework Core 7.0 (i driver sono disponibili anche per SQLite e PostgreSQL), la libreria WPF 7 (Windows Presentation Foundation), il framework Windows Forms 7 per lo sviluppo di GUI, la piattaforma Orleans 7 per la creazione di applicazioni Cloud Native, il framework MAUI 7 per lo sviluppo di interfacce utente multi-piattaforma, e le versioni dei linguaggi C# 11 e F# 7. Il supporto per .NET 7.0 e C# 11 è incluso nell'editor di codice gratuito Visual Studio Code.

Caratteristiche della nuova versione:

  • È stata effettuata l'unificazione della libreria di classi di base (BCL, Base Class Library) per l'uso in vari tipi di applicazioni, comprese le applicazioni per sistemi desktop, web, piattaforme cloud, applicazioni mobili, giochi, programmi integrati e sistemi di apprendimento automatico. Per lo sviluppo di vari tipi di applicazioni, è possibile utilizzare un unico SDK, Runtime e set di librerie comuni.
  • È stata fornita la possibilità di collegare l'applicazione a un'API, corrispondente alla versione .NET 7, attraverso la definizione della piattaforma target "net7.0", ad esempio, "net7.0". Per collegarsi a API specifiche di determinate piattaforme, è possibile dettagliare il tipo di piattaforma, ad esempio specificando "net7.0-android".
  • Significativamente migliorato il supporto dell'architettura ARM64 e proseguite le attività per raggiungere la parità nelle prestazioni delle applicazioni .NET su architetture x86 e ARM64. Nella runtime è stata aumentata l'efficienza dell'uso della cache di terzo livello sui sistemi ARM64. Sono state utilizzate istruzioni LSE per la suddivisione dell'accesso alla memoria da thread paralleli, il che ha portato a una riduzione delle latenze del 45%. Nella libreria sono stati aggiunti gestori che utilizzano tipi vettoriali Vector64, Vector128 e Vector256, e sono state riscritte le funzioni EncodeToUtf8 e DecodeFromUtf8 basate su istruzioni vettoriali, il che ha aumentato le loro prestazioni fino al 60% (per le funzioni NarrowUtf16ToAscii e GetIndexOfFirstNonAsciiChar, l'aumento delle prestazioni raggiunge il 35%). In generale, la velocità di esecuzione dei test sulla piattaforma ARM64 è aumentata dal 10% al 60%.
    Microsoft ha pubblicato la piattaforma open source .NET 7
  • Migliorato il supporto per la piattaforma Linux, tra cui l'aggiunta di pacchetti .NET 6 nei repository ufficiali di Ubuntu 22.04 e fornito un'immagine Docker ottimizzata, compatta e pronta all'uso per un rapido deployment di contenitori con applicazioni basate su .NET.
  • Aggiunto il supporto per l'architettura a 64 bit IBM Power (ppc64le).
  • Presentato lo strumento .NET Upgrade Assistant per semplificare la migrazione di applicazioni legacy verso .NET 6 o .NET 7. Nella nuova versione è stato esteso il supporto per la migrazione da ASP.NET a ASP.NET Core, aggiunti analizzatori e correttori di codice per WinForms, WPF e librerie di classi, implementato il supporto per l'analisi di file eseguibili e aggiunto il supporto per la piattaforma UWP (Universal Windows Platform).
  • Ampliate le capacità di creazione di applicazioni per sistemi cloud-native e piattaforme PaaS (Platform as a Service). È stata fornita la possibilità di creare applicazioni impacchettate in contenitori isolati tramite il comando "dotnet publish".
  • Ampliati gli strumenti per il monitoraggio dello stato delle applicazioni e la raccolta delle metriche sulle loro prestazioni. Aggiunti nuovi eventi e metodi per analizzare l'attività e le prestazioni dell'applicazione.
  • Nel linguaggio C# 11 è stata aggiunta la supporto per le stringhe letterali non elaborate, che possono includere caratteri speciali senza la necessità di essere scappate (questi letterali sono evidenziati da tre virgolette). Sono stati proposti interfacce generiche per funzioni matematiche e fornita la possibilità di definire elementi statici in interfacce virtuali, il che ha permesso di applicare metodi di programmazione generica per eseguire operazioni matematiche senza informazioni precise sul tipo di valori.
  • Potenzialità della libreria standard ampliate. Aggiunto l'API System.Formats.Tar per lavorare con archivi in formato Tar. Nelle funzioni di gestione del tempo (TimeStamp, DateTime, ecc.) è stata aggiunta la supporto per i microsecondi e i nanosecondi. In System.Text.Json è stata implementata la possibilità di gestire la serializzazione e deserializzazione dei tipi .NET.
  • Nell'interfaccia a riga di comando «dotnet new» è stata aggiunta la supporto per il completamento automatico dei modelli di progetti tipici premendo il tasto Tab.
  • Nel .NET SDK è stata implementata la possibilità di limitare l'uso dei modelli di progetto forniti, ad esempio, è possibile definire in quali sistemi operativi è consentito un modello.
  • In NuGet è stata aggiunta una modalità di gestione centralizzata dei pacchetti, che consente di gestire le dipendenze per più progetti contemporaneamente.
  • Migliorata la performance del compilatore JIT. Aggiunta la supporto per il meccanismo OSR (On Stack Replacement) per modificare il codice dei metodi già in esecuzione, consentendo di apportare ottimizzazioni ai metodi che richiedono molto tempo senza attendere il completamento della chiamata corrente (nel test TechEmpower si osserva un aumento delle performance nell'elaborazione delle prime richieste del 10-30%).
  • Migliorata l'efficacia dell'ottimizzazione basata sui risultati del profiling del codice (PGO - Profile-guided optimization), che tiene conto delle caratteristiche definite durante l'esecuzione del programma.
  • Aggiunta la supporto per la compilazione in file eseguibili autonomi (Native AOT), in cui l'intero progetto è inizialmente compilato in codice macchina della piattaforma di destinazione senza utilizzare codice intermedio e senza applicare JIT.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster