Microsoft hat die Veröffentlichung der offenen Plattform .NET 8 vorgestellt, die durch die Vereinheitlichung der Produkte .NET Framework, .NET Core und Mono entstanden ist. Auf der Grundlage von .NET 8 können plattformübergreifende Anwendungen für Browser, Cloud-Systeme, Desktop, IoT-Geräte und mobile Plattformen entwickelt werden, wobei einheitliche Bibliotheken und ein gemeinsamer Build-Prozess verwendet werden, unabhängig vom Anwendungstyp. Die Builds von .NET SDK 8, .NET Runtime 8 und ASP.NET Core Runtime 8 sind für Linux, macOS und Windows verfügbar. .NET Desktop Runtime 8 wird nur für Windows angeboten. Die Entwürfe, die mit dem Projekt verbunden sind, werden unter der MIT-Lizenz veröffentlicht. Der .NET 8-Zweig wird als LTS klassifiziert und bis November 2026 über einen Zeitraum von drei Jahren unterstützt.
.NET 8 umfasst die Runtime mit dem JIT-Compiler RyuJIT, API-Spezifikationen, WPF-Bibliotheken, Windows Forms, WinUI, Entity Framework, die Befehlszeilenschnittstelle dotnet sowie Werkzeuge zur Entwicklung von Mikrodiensten, Bibliotheken, serverseitigen, grafischen und Konsolenanwendungen. Separat veröffentlicht wurden der Stack für die Entwicklung von Webanwendungen ASP.NET Core 8.0, die ORM-Schicht Entity Framework Core 8.0 (mit Treibern, unter anderem für SQLite und PostgreSQL), die WPF 8-Bibliothek (Windows Presentation Foundation), das Windows Forms 8-Framework für die GUI-Entwicklung, die Aspire 8-Plattform zur Erstellung von Cloud-nativen Anwendungen, das MAUI 8-Framework zur Entwicklung plattformübergreifender Benutzeroberflächen sowie die Sprachversionen C# 12 und F# 8. Die Unterstützung von .NET 8.0 und C# 12 ist im kostenlosen Code-Editor Visual Studio Code integriert.
Besonderheiten der neuen Version:
- Eine umfassende Leistungsoptimierung wurde durchgeführt. Ein neuer Codegenerator, der dynamische Optimierung basierend auf der Ausführungsprofilierung unterstützt (Dynamic Profile-Guided Optimization), ist nun standardmäßig aktiv. Der Einsatz des neuen Codegenerators ermöglicht eine Leistungssteigerung von Anwendungen um bis zu 20 %. Darüber hinaus bietet die neue Version Unterstützung für AVX-512-Befehle, die die Leistung paralleler Operationen mit Vektordaten erhöhen. Für primitive Typen wurde eine neue Schnittstelle implementiert, die es ermöglicht, Daten im UTF-8-Format direkt ohne Rekodierung zu analysieren und zu formatieren. In den TechEmpower-Tests wurde die Leistung bei der Arbeit mit JSON-APIs um 18 % gesteigert, während bei Fortunes eine Steigerung von 24 % verzeichnet wurde.

- Ein neuer .NET Aspire-Stack wurde hinzugefügt, der für die Entwicklung von Cloud-Anwendungen (cloud-native) unter Verwendung von .NET-Technologien gedacht ist. .NET Aspire bietet eine umfangreiche Sammlung von Komponenten, die bei der Erstellung von Anwendungen benötigt werden könnten, die in Cloud-Umgebungen ausgeführt werden, einschließlich Tools zur Telemetriesammlung, Konfiguration, Überprüfung der Betriebsbereitschaft und Gewährleistung der Ausfallsicherheit.
- Die Tools zur Verpackung von Anwendungen in isolierte Container wurden erweitert. Standardmäßig erfolgt die Veröffentlichung von Container-Images ohne Dockerfile und ohne Benutzer root. Die Größe des Basis-Container-Images mit .NET-Plattformkomponenten wurde reduziert. Eine minimalistische Version des Images wurde hinzugefügt, um Anwendungen auszuführen, die zu ausführbaren Dateien (Native AOT) kompiliert wurden. Eine sicherere Version der Images auf Basis von Chiseled Ubuntu wurde hinzugefügt.
- Die Effizienz der Kompilierung in selbstständige ausführbare Dateien (Native AOT) wurde gesteigert, bei denen das gesamte Projekt ursprünglich in Maschinencode der Zielplattform ohne Verwendung von Zwischencode und ohne JIT-Anwendung kompiliert wurde.

- Die Möglichkeiten der Programmierschnittstellen, die in Maschinenlern-Systemen verwendet werden können, wurden erweitert. Beispielsweise wurde in der Bibliothek System.Numerics die Kompatibilität mit generativen KI-Systemen verbessert. Es wurden Beispiele für das Bewusstsein von Chatbots, die Generierung von Inhalten und den Zugriff auf Azure AI-Dienste hinzugefügt.
- In Blazor, der Plattform zur Erstellung von Webanwendungen in C#, wurde die Ladezeit der Seiten verkürzt, die Skalierbarkeit verbessert, und die Nutzung sowohl von Blazor Server als auch Blazor WebAssembly in einer Anwendung ermöglicht, um Anwendungen mit kombinierten Funktionen zu erstellen. Server Ein Jiterpreter wurde hinzugefügt, ein neuer, schnellerer WebAssembly-Runtimе, der die Darstellung von Benutzeroberflächen um 20 % beschleunigt hat. Die Möglichkeiten von Authentifizierung, Autorisierung und Identifizierung wurden erweitert.
- Das MAUI-Framework zur Entwicklung plattformübergreifender Benutzeroberflächen wurde erweitert, das die Verwendung einer einzigen Codebasis für die Erstellung von Oberflächen für Windows, macOS, iOS und Android ermöglicht. Experimentelle Unterstützung für die Compilation (Native AOT) wurde hinzugefügt. Unterstützung für die Plattformen Xcode 15 und Android API 34 wurde implementiert. Grafische Elemente und Schaltflächen wurden modernisiert, und die Verarbeitung von Mausklicks sowie Tastaturereignissen wurde verbessert.
- In C# 12 wurde die Unterstützung für eine vereinfachte Syntax zur Erstellung von Primärkonstruktoren in beliebigen Klassen und Strukturen hinzugefügt, und die Erstellung von Arrays, Span und anderen Typen von Sammlungen wurde vereinfacht. Es wurden Mittel zur Festlegung von Standardwerten für Parameter in Lambda-Ausdrücken bereitgestellt. Die Verarbeitung von optionalen Argumenten wurde erleichtert. Es wurde die Möglichkeit hinzugefügt, Aliasnamen für beliebige Typen mit der Direktive „alias“ zu erstellen. // Erstellung einer Liste List a = [1, 2, 3, 4, 5, 6, 7, 8]; // Erstellung von Span-Arrays Span b = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘h’, ‘i’]; // Verwendung des Spread-Operators zur Verknüpfung int[] array1 = [1, 2, 3]; int[] array2 = [4, 5, 6]; int[] array3 = [7, 8, 9]; int[] fullArray = [..array1, ..array2, ..array3]; // der Inhalt wird [1, 2, 3, 4, 5, 6, 7, 8, 9] sein
- In ASP.NET Core wurde die Unterstützung für die Authentifizierung basierend auf Cookies und Tokens für Single-Page-Anwendungen (SPA) und Webanwendungen (Blazor) implementiert. Ein neues Benutzerinterface für die Authentifizierung wurde angeboten. Der Schutz gegen XSRF/CSRF-Angriffe wurde verstärkt.
- In Entity Framework Core wurden neue komplexe Typen bereitgestellt, die als Objekte verwendet werden können. Die Unterstützung für hierarchische Daten in SQL Server wurde hinzugefügt.
- Im NuGet-Paketmanager wurde die Überprüfung von Paketen in Projekten vereinfacht, und es gibt Informationen über bekannte Schwachstellen.
- Im .NET Runtime wurde der proaktive Kompilierungsmodus (AOT) für WebAssembly (WASM) und Android hinzugefügt.
- WPF wurde um den Dialog zum Öffnen von Verzeichnissen (OpenFolderDialog) erweitert und unterstützt nun Hardwarebeschleunigung in RDP.
- Die Unterstützung für die ARM64-Architektur wurde erheblich verbessert, und die Codequalität für ARM wurde gesteigert.
- Im Debugger werden jetzt konsolidierte Debugging-Daten angezeigt, und vereinfachte Debugging-Schichten wurden für häufig verwendete .NET-Typen implementiert.
Quelle: opennet.ru


