Das Unternehmen Microsoft hat die Veröffentlichung der Open-Source-Plattform .NET 8 vorgestellt, die durch die Vereinheitlichung der Produkte .NET Framework, .NET Core und Mono entstanden ist. Auf Basis von .NET 8 können plattformübergreifende Anwendungen für Webbrowser, Cloud-Systeme, Desktop, IoT-Geräte und mobile Plattformen erstellt werden, indem einheitliche Bibliotheken und ein gemeinsamer Build-Prozess verwendet werden, der nicht vom Anwendungstyp abhängt. Die Builds von .NET SDK 8, .NET Runtime 8 und ASP.NET Core Runtime 8 sind für Linux, macOS und Windows erstellt. .NET Desktop Runtime 8 wird nur für Windows bereitgestellt. Die damit verbundenen Projektergebnisse werden unter der MIT-Lizenz veröffentlicht. Die .NET 8-Version gehört zur Kategorie LTS und wird bis November 2026 drei Jahre lang unterstützt.
.NET 8 enthält 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, Server-, Grafik- und Konsolenanwendungen. Separat veröffentlicht wurde der Stack zur 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-Bibliothek 8 (Windows Presentation Foundation), das Windows Forms 8-Framework zur GUI-Entwicklung, die Plattform Aspire 8 zur Erstellung von Cloud-nativen Anwendungen, das MAUI 8-Framework zur Entwicklung plattformübergreifender Benutzeroberflächen sowie die Releases der Sprachen C# 12 und F# 8. Unterstützung für .NET 8.0 und C# 12 ist im kostenlosen Code-Editor Visual Studio Code integriert.
Besonderheiten der neuen Version:
- Eine erhebliche Leistungsoptimierung wurde durchgeführt. Standardmäßig wird der neue Code-Generator aktiviert, der dynamische Optimierung basierend auf der Profilerstellung der Codeausführung (Dynamic Profile-Guided Optimization) unterstützt. Die Verwendung des neuen Code-Generators bietet eine Leistungssteigerung von bis zu 20 % für Anwendungen. Zudem wird in der neuen Version die Unterstützung für AVX-512-Anweisungen hinzugefügt, die die Leistung paralleler Operationen mit Vektordaten verbessern. Für primitive Typen wurde eine neue Schnittstelle implementiert, die es ermöglicht, Daten im UTF-8-Format direkt ohne Umkodierung zu parsen und zu formatieren. In den TechEmpower-Tests wurde die Leistung bei der Arbeit mit JSON-APIs um 18 % und bei Fortunes um 24 % gesteigert.

- Ein neuer .NET Aspire-Stack wurde hinzugefügt, der für die Entwicklung von Cloud-Anwendungen (cloud-native) unter Verwendung von .NET-Technologien konzipiert ist. .NET Aspire bietet eine große Sammlung von Komponenten, die beim Erstellen von Anwendungen, die in Cloud-Umgebungen betrieben werden, erforderlich sein können, einschließlich Tools zur Datensammlung, Konfiguration, Überwachung der Funktionsfähigkeit und Gewährleistung der Ausfallsicherheit.
- Die Werkzeuge zum Verpacken von Anwendungen in isolierte Container wurden erweitert. Standardmäßig erfolgt die Veröffentlichung von Container-Images ohne Dockerfile und ohne Root-Benutzer. Die Größe des Basis-Images mit .NET-Plattformkomponenten wurde reduziert. Eine minimalistischer Variante des Images zum Ausführen von Anwendungen, die in ausführbare Dateien (Native AOT) kompiliert wurden, wurde hinzugefügt. Eine sicherere Version des Images auf Basis von Chiseled Ubuntu wurde hinzugefügt.
- Die Effizienz der Kompilierung von selbständigen ausführbaren Dateien (Native AOT), in denen das gesamte Projekt ursprünglich in Maschinencode der Zielplattform kompiliert wurde, ohne Zwischencode und ohne JIT-Anwendung, wurde verbessert.

- Die Möglichkeiten der Programmierschnittstellen, die in maschinellen Lernsystemen verwendet werden können, wurden erweitert. Beispielsweise wurde die Kompatibilität der System.Numerics-Bibliothek mit generativen KI-Systemen erhöht. Beispiele für das Bewusstsein von Chatbots, die Generierung von Inhalten und den Zugriff auf Azure AI-Dienste wurden hinzugefügt.
- In Blazor, der Plattform für die Erstellung von Webanwendungen in C#, wurde die Ladezeit der Seiten verkürzt, die Skalierbarkeit verbessert und die Verwendung von Blazor Server und Blazor WebAssembly in einer einzigen Anwendung zur Erstellung von Programmen, die Funktionen kombinieren, erlaubt. Server Ein Jiterpreter, eine neue, schnellere WebAssembly-Laufzeit, wurde hinzugefügt, die es ermöglicht, die Benutzeroberflächen-Renderingzeit um 20% zu beschleunigen. Die Möglichkeiten der Authentifizierung, Autorisierung und Identifizierung wurden erweitert.
- Das MAUI-Framework zur Entwicklung plattformübergreifender Benutzeroberflächen wurde erweitert, wobei die Möglichkeit hinzugefügt wurde, eine Codebasis zu verwenden, um Benutzeroberflächen für Windows, macOS, iOS und Android zu erstellen. Experimentelle Unterstützung für die Kompilierung (Native AOT) wurde hinzugefügt. Unterstützung für die Plattformen Xcode 15 und Android API 34 wurde hinzugefügt. Grafikelemente und Tasten wurden modernisiert, die Verarbeitung von Mausklicks und 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 Sammlungsarten wurde vereinfacht. Es wurden Mittel bereitgestellt, um Standardwerte für Parameter von Lambda-Ausdrücken festzulegen. Die Verarbeitung von optionalen Argumenten wurde vereinfacht. Es wurde die Möglichkeit eingeführt, Aliasnamen für beliebige Typen mithilfe der Direktive „alias“ zu erstellen. // Erstellen einer Liste List a = [1, 2, 3, 4, 5, 6, 7, 8]; // Erstellen von Span-Arrays Span b = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘h’, ‘i’]; // Verwenden Sie den Spread-Operator 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 auf Basis von Cookies und Tokens für Single-Page-Anwendungen (SPA) und Webanwendungen (Blazor) implementiert. Eine neue Benutzeroberfläche für die Authentifizierung wurde vorgeschlagen. Der Schutz vor XSRF/CSRF-Angriffen wurde verstärkt.
- In Entity Framework Core wurden neue komplexe Typen bereitgestellt, die als Objekte verwendet werden können. Die Unterstützung hierarchischer Daten in SQL Server wurde hinzugefügt.
- Im NuGet-Paketmanager wurde das Audit von Paketen in Projekten vereinfacht und die Information über bekannte Schwachstellen sichergestellt.
- Im .NET Runtime wurde ein AOT-Modus (Ahead-of-Time) für WebAssembly (WASM) und Android hinzugefügt.
- WPF hat den Dialog zum Öffnen von Verzeichnissen (OpenFolderDialog) hinzugefügt und die Unterstützung für Hardwarebeschleunigung in RDP aktiviert.
- Die Unterstützung für die ARM64-Architektur wurde erheblich verbessert und die Codequalität für ARM erhöht.
- Im Debugger wird die Anzeige zusammenfassender Debug-Daten bereitgestellt und vereinfachte Debugging-Proxy-Schichten für häufig verwendete .NET-Typen implementiert.
Quelle: opennet.ru


