Microsoft ha pubblicato la piattaforma open source .NET 9.0

La società Microsoft ha presentato il rilascio della piattaforma open source .NET 9, creata grazie all'unificazione dei prodotti .NET Framework, .NET Core e Mono. Con .NET 9 è possibile sviluppare applicazioni multipiattaforma per browser, sistemi cloud, desktop, dispositivi IoT e piattaforme mobili, utilizzando librerie comuni e un processo di build unico, indipendentemente dal tipo di applicazione. I pacchetti .NET SDK 9, .NET Runtime 9 e ASP.NET Core Runtime 9 sono stati creati per Linux, macOS e Windows. Il .NET Desktop Runtime 9 è disponibile solo per Windows. I risultati del progetto sono distribuiti con licenza MIT.

Il pacchetto .NET include un Runtime con il compilatore JIT RyuJIT, specifiche API, librerie WPF, Windows Forms, WinUI e Entity Framework, l'interfaccia della riga di comando dotnet, oltre a strumenti per lo sviluppo di microservizi, librerie, applicazioni server, grafiche e console. Separatamente, è fornito il framework per lo sviluppo di applicazioni web ASP.NET Core 9.0, il layer ORM Entity Framework Core 9.0 (i driver sono disponibili, compresi per SQLite e PostgreSQL), la libreria WPF 9 (Windows Presentation Foundation), il framework Windows Forms 9 per lo sviluppo di GUI, la piattaforma Aspire 9 per la creazione di applicazioni Cloud Native, e il framework MAUI 9 per lo sviluppo di interfacce utente multipiattaforma, oltre alle versioni dei linguaggi C# 13 e F# 9. Il supporto per .NET 9.0 e C# 13 è incluso nell'editor di codice gratuito Visual Studio Code.

Caratteristiche della nuova versione:

  • Sono stati apportati oltre mille cambiamenti relativi all'ottimizzazione delle prestazioni e al miglioramento della qualità del codice generato. È stato modernizzato il garbage collector, nel quale è stato implementato e attivato di default un meccanismo di adattamento dinamico alle dimensioni dell'applicazione (il garbage collector non è legato alla disponibilità delle risorse di sistema, ma a quanta memoria richiede l'applicazione). La nuova modalità consente di migliorare l'efficienza su sistemi con un numero elevato di core di processore, se l'applicazione utilizza relativamente poca memoria o se la richiesta di memoria varia significativamente durante l'esecuzione.

    Nel JIT-complier sono state aggiunte nuove ottimizzazioni basate sul profilo (PGO), migliorate la gestione dei cicli, l'espansione inline e il controllo dei confini. Nel runtime .NET è stato ampliato l'utilizzo di istruzioni vettoriali e sono stati aggiunti il supporto per le estensioni Arm64 SVE e Intel AVX10. Il codice per la gestione delle eccezioni è stato accelerato del 50%. Per il codice con operazioni di conversione di tipo, come «(IFoo)myFoo» e «myFoo is IFoo», si è registrato un aumento delle prestazioni fino al 70%. Le prestazioni di alcuni metodi nel linguaggio di query integrato LINQ (Language-Integrated Query), come Take e DefaultIfEmpty, sono aumentate fino a 10 volte quando si lavora con array e collezioni vuote.

    È stata significativa l'aumento delle prestazioni e dell'efficienza del metodo System.Text.Json. Nel metodo JsonProperty.WriteTo è stata implementata la possibilità di scrivere direttamente stringhe UTF8, escludendo l'eccessiva allocazione di memoria. Sono state ottimizzate le operazioni di ridimensionamento di JsonObject. Nelle prove TechEmpower, che valutano l'efficienza del codice per la gestione delle richieste JSON, rispetto a .NET 8 si osserva un incremento delle prestazioni del 15% e una riduzione del consumo di memoria del 93%.

  • Nel runtime è proposta un nuovo modello di attributi per attivare e ridurre funzionalità nelle librerie.
  • Nel linguaggio C# 13 sono ampliate le possibilità di utilizzo del modificatore «params», consentendo l'uso di collezioni oltre agli array. Durante l'inizializzazione degli array, nell'indice è consentito l'uso dell'operatore «^» per indicare l'indice dalla fine dell'array (ad esempio, «buffer = { [^1] = 0, [^2] = 1,….}» scriverà 0 nell'ultimo elemento e 1 nel penultimo). Negli iteratori e nei metodi async è consentito utilizzare le espressioni ref e unsafe. È stata aggiunta una nuova sequenza di escape «\e». È consentita la definizione di interfacce per i tipi «ref struct» e l'uso dei tipi «ref struct» come argomenti in funzioni generiche. È stato proposto un nuovo tipo Lock per stabilire blocchi nelle applicazioni multithread. Lock myLock = new(); void Concat<T>(params List<T> items) { lock (myLock) Console.WriteLine(string.Join(«\e[1mItem: \e[0m», items)); }
  • Nel linguaggio F# 9 è stata introdotta la supporto per i tipi che possono assumere il valore null. Nelle unioni sono stati implementati proprietà '.Is*' generate automaticamente (ad esempio, person.contact.IsEmail), che possono essere utilizzate per verificare se un valore appartiene a un insieme. È stato aggiunto il supporto per espressioni calcolate vuote ('let xs = seq { }'). Nelle direttive che iniziano con il simbolo '#', è consentito specificare valori non stringa (ad esempio, si può scrivere #nowarn 0070 invece di #nowarn '0070'). Sono state introdotte funzioni per la selezione casuale o per mescolare elementi nei moduli List, Array e Seq. È consentito applicare operazioni con collezioni a liste (list e set).
  • Sono state ampliate le capacità del stack .NET Aspire, che fornisce un insieme di componenti per la creazione di applicazioni eseguibili in ambienti cloud. Sono state aggiunte nuove funzionalità per la gestione delle risorse e del ciclo di vita delle applicazioni. Sono stati ampliati gli strumenti per la raccolta della telemetria.
  • È stato proposto un nuovo insieme di astrazioni per C# per lo sviluppo di applicazioni AI, per l'utilizzo di grandi modelli di linguaggio, per l'accesso a archivi vettoriali e per l'interazione con i servizi AI. È stato presentato un nuovo tipo 'Tensor' e una collezione di metodi per calcoli e manipolazioni di dati multidimensionali. I complementi per AI sono distribuiti sotto forma di pacchetti System.Numerics.Tensors, Microsoft.Extensions.AI e Microsoft.Extensions.VectorData. È stato aggiornato il framework ML.NET, progettato per integrare modelli di machine learning nelle applicazioni. È stata aggiunta la libreria Microsoft.ML.Tokenizers per la codifica e la decodifica del testo in token.
  • Nel stack per lo sviluppo di applicazioni web ASP.NET Core è stata ampliata la supporto per la compilazione anticipata (ahead-of-time), sono state ampliate le capacità di monitoraggio e tracciamento, è stato ridotto il tempo di avvio e il consumo di memoria è stato ottimizzato, migliorando il funzionamento con file statici. È stata aggiunta una nuova API per l'autenticazione e l'autorizzazione. In Blazor, la piattaforma per la creazione di applicazioni web in C#, sono stati implementati nuovi modelli per applicazioni ibride e web.
  • Le capacità del framework MAUI per lo sviluppo di interfacce utente multiplatform sono state ampliate. È stata ottimizzata la performance. È stata potenziata l'integrazione con applicazioni desktop e mobili. Sono stati aggiunti nuovi elementi dell'interfaccia utente TitleBar e HybridWebView.
  • In WPF (Windows Presentation Foundation) è stato ampliato il supporto per i temi e aggiunto il supporto per i colori accentati.

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