Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Programmiersprachen
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: .NET 8.0 (.NET 8)
Begriff
.NET 8.0
Abkürzung
.NET 8
Eintrag zuletzt aktualisiert am
17.03.2024
Zur Stichwortliste unseres Lexikons
Was ist
.NET 8.0
?
.NET 8.0 ist der Nachfolger von
.NET 7.0
, der am 14. November 2023 erschienen ist.
Fakten zu .NET 8.0
erschienen am 14. November 2023
Nachfolger von
.NET 7.0
Basis für alle .NET-Anwendungsarten: Desktop Apps, Mobile Apps, Browser-Apps sowohl mit client- als auch server-basiertem Rendering,
Webservice
s, Betriebssystem-Dienste, Konsolenanwendungen
Long-Term-Support (
LTS
) für 36 Monate bis November 2026
plattformunabhängig (mit
Ausnahme
von
WPF
,
Windows Forms
,
WinUI3
u.a. Klassen)
sehr modular aufgebaut
beinhaltet
C# 12.0
,
ASP.NET Core 8.0
(inkl.
Blazor 8.0
) und
Entity Framework Core 8.0
komplett
Open Source
[
https://github.com/dotnet/runtime
]
erfordert
Visual Studio 2022
Version 17.8 oder höher
Versionsgeschichte inkl. Vorabversionen
Preview 1 am 21.2.2023
Preview 2 am 14.3.2023
Preview 3 am 11.4.2023
Preview 4 am 16.5.2023
Preview 5 am 13.6.2023
Preview 6 am 11.7.2023
Preview 7 am 8.8.2023
Release Candidate 1 am 12.9.2023 mit Go-Live-Lizenz
Release Candidate 2 am 10.10.2023 mit Go-Live-Lizenz
RTM-Version am 14.11.2023
Neues zum AOT-
Compiler
Der im Jahr 2022 in
.NET 7.0
eingeführte, aber dort noch auf Konsolenanwendungen beschränkte Ahead-of-Timer-
Compiler
"
Native AOT
" kann in .NET 8.0 nun auch Worker Services,
gRPC
-Dienste und
ASP.NET Core WebAPI
s (aber nur, wenn diese als Minimal-APIs angelegt sind) übersetzen.
Datenbank
zugriffe sind nur per
ADO.NET
(
DataReader
,
DataSet
, Command etc) möglich; Entity Framework Core funktioniert noch nicht mit dem AOT-
Compiler
.
Bei dotnet new gibt es einen neuen Parameter: --aot, z.B.
Konsolenanwendung: dotnet new console --aot
Minimal WebAPI: dotnet new api --aot
gRPC
: dotnet new grpc --aot
Worker Service: dotnet new worker --aot
Neuerungen im .NET 8.0
SDK
Löschen verwaister Workloads
dotnet workload clean: Löscht nur verwaiste Workloads
dotnet workload clean --all: Alle Workloads löschen
Kompaktere und farbige Ausgabe bei Build: Terminal Logger statt Console Logger (in
Windows Terminal
, nicht in alter Windows-Konsole!)
dotnet build /tl oder msbuild /tl
Sicherheitswarnungen vor
NuGet
-Paketen beim Build aktivieren
<
NuGet
Audit>true</
NuGet
Audit>
<
NuGet
AuditLevel>moderate</
NuGet
AuditLevel> (low, moderate, high, critical)
Nun automatisch Release-Kompilierung bei dotnet publish und dotnet pack
Debug-Kompilierung weiterhin möglich auf Wunsch: dotnet publish -c debug bzw. dotnet pack -c debug
Optionale neue Zusammenfassung von /bin /obj /publish per Eintrag in Directory.Build.props
<ArtifactsPath>$(
MSBuild
ThisFileDirectory)artifacts</ArtifactsPath>
Erstellen einer
Container
-Datei ohne Veröffentlichung bei Registry
dotnet publish -p PublishProfile=Default
Container
-p
Container
ArchiveOutputPath=t:\meinblazorimage.tar.gz -p:
Container
BaseImage=mcr.microsoft.com/dotnet/aspnet:8.0-alpine
Neuigkeiten in der .NET-Klassenbibliothek in .NET 8.0
Neue Validierungsannotationen im Namensraum
System.ComponentModel
.Data
Annotation
s, z.B. [AllowedValues], [DeniedValues] und [Base64String] und Erweiterungen bei [Range] und [Length]
Eingefrorene
Objektmenge
n: FrozenSet<T> und FrozenDictionary<T, T> im neuen Namensraum
System.Collections
.Frozen, die Elemente schneller liefern als andere verfügbare
Objektmenge
n
Neue Zufallsfunktionen in der Klasse System.Random: Zufallsreihenfolge mit Random.Shared.Shuffle() und
Zufallsauswahl via Random.Shared.GetItems()
Neue
Methode
n zum Auslösen von Fehlern in
Methode
nparametern, z.B. ArgumentOutOfRange
Exception
.ThrowIfZero(), ArgumentOutOfRange
Exception
.ThrowIfNegative(), ArgumentOutOfRange
Exception
.ThrowIfNegativeOrZero() und ArgumentOutOfRange
Exception
.ThrowIfGreaterThan()
Neue Code-Analyzer und
Refactoring
-Funktionen, z.B. hinsichtlich der Verwendung von Equals() statt Case-Insensitive-Vergleichen mit ToLower()/ToUpper(), StartsWith() statt IndexOf() == 0 und Length/Count statt Any()
Plattformneutrale Privilegien-Abfrage mit System.Environment.IsPrivilegedProcess
Dependency Injection
mit Schlüsseln: services.AddKeyed
Singleton
<T1, T2>("Name") und serviceProvider.GetKeyedService<T1>("Name")
Zeitabstraktion mit der neuen abstrakten Klasse System.TimeProvider für Tests mit Zeitangaben
Methode
n Parse() und TryParse() in Klasse
System.Net
.IPNetwork
Source-Generator für die Interoperabilität mit dem
Component Object Model
(COM): [GeneratedComInterface] und [GeneratedComClass] im Namensraum
System.Runtime.InteropServices
.
Marshalling
Razor
-
Template
-Rendering außerhalb von Blazor in beliebigen .NET-Anwendungen mit der Klasse Microsoft.AspNetCore.Components.Web.HtmlRenderer im
NuGet
-Paket Microsoft.AspNetCore.Components.Web
Neues in
System.Text.Json
8.0
Serialisierung neuerer Datentypen: Half, Int128 und UInt128 sowie Memory<T> und ReadOnlyMemory<T>
Zusätzliche JSON-Daten wurden bei der
Deserialisierung
bisher ignoriert. Nun neu:
Annotation
[JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)] oder
Eigenschaft UnmappedMemberHandling.Disallow im Objekt JsonSerializerOptions
Enumeration
JsonNamingPolicy für
Namenskonvention
en (z.B. für FullName): CamelCase (bisher Standard): fullName, KebabCaseLower: full-name, KebabCaseUpper: FULL-NAME, SnakeCaseLower: full
name und SnakeCaseUpper: FULL
NAME
Serialisierung in bestehende Objekte ohne
Setter
(siehe dazu auch Bug:
https://github.com/dotnet/runtime/issues/92877)
JsonObjectCreationHandling.Populate / [JsonObjectCreationHandling(JsonObjectCreationHandling.Populate)]
Deserialisierung
in nicht-öffentliche Mitglieder via Konstruktor mit [JsonConstructor] und [JsonInclude]
Alle Daten-Mitglieder aus Interface-Hierarchien verwenden beachtet
Bei JsonArray nun Ienumerable, was Aufzählung mit foreach und
Language Integrated Query
(
LINQ
) ermöglicht
JsonNode aus
Stream
: JsonNode
node
=
await
JsonNode.ParseAsync(stream);
Die Klasse JsonNode hat neue
Methode
n wie DeepClone() und DeepEquals() erhalten
Source Generator
unterstützt nun auch
alle Optionen wie
Reflection
-basierte Serialisierung (z.B. String Enums)
die in
C# 9.0
eingeführten Init-Only-Properties + die in
C# 11.0
eingeführten Required Properties
Reflection
-basierte Features im Projekt deaktivierbar (ab Preview 4) --> Für AOT! --> nur noch
Source Generator
(seit
.NET 6.0
/
System.Text.Json
.SourceGeneration.JsonSourceGenerator) nutzbar
<JsonSerializerIs
Reflection
EnabledByDefault>false</JsonSerializerIs
Reflection
EnabledByDefault>
Reflection
-Versuch Laufzeitfehler:
Prüfen im Code mit: if (JsonSerializer.Is
Reflection
EnabledByDefault) { … }
Analyzer warnt vor dem Performanceverlust bei immer neuen Instanzen von JsonSerializerOptions
Verbesserungen für
GUI
-Frameworks in .NET 8.0
Bei
Windows Forms
hat Microsoft die in
.NET 7.0
noch experimentell eingeführte verbesserte
Datenbindung
mit Datenkontexten und Command-Pattern in .NET 8.0 produktionsreif gemacht. Über SystemIcons.GetStockIcon() können Entwicklerinnen und Entwickler jetzt die in Windows integrierten
Symbol
e in eigene Anwendungen integrieren.
Die
Windows Presentation Foundation
(
WPF
), die in den letzten .NET-Versionen keinerlei nennenswerte Verbesserung erhielt, bekam in .NET 8.0 einen neuen Dialog zum Öffnen von Ordnern (Klasse
Microsoft.Win32
.OpenFolderDialog). Zudem können Entwicklerinnen und Entwickler nun eine GPU-basiertes
Hardware
-Rendering anstelle des Software-Rendering für
WPF
-Anwendungen, die per
Remote Desktop
Protocol (
RDP
) übertragen werden:
<ItemGroup>
<RuntimeHostConfigurationOption Include=" Switch.System.Windows.Media.Enable
Hardware
AccelerationInRdp " Value="true" />
</ItemGroup>
Dies ist eine Funktion, die viele
WPF
-Anwender seit den Anfangstagen des
GUI
-Frameworks im Jahr 2006 forderten.
Bei dem im Vergleich zu
Windows Forms
und
WPF
noch jungen
Cross-Platform
-
GUI
-Framework .NET
MAUI
hat sich Microsoft auf die Fehlerbehebung und Leistungsoptimierung konzentriert, was das Framework auch dringend nötig hatte. Daneben gibt es noch wenige neue Funktionen: In .NET
MAUI
8.0 funktionieren nun auch Layouts mit Rechts-nach-Links-Ausrichtung. Menüeinträge in .NET
MAUI
können jetzt einen Tastatur-Shortcut besitzen. Für den Mauszeiger gibt es in .NET
MAUI
die neuen Ereignisse PointerPressed() und PointerReleased(). .NET
MAUI
8.0 arbeitet nun auch mit Xcode-Version 15 und
Android
API-Version 34 zusammen.
Weitere Ressoucen auf dieser Website
Webbasiertes Diskussionsforum zum .NET Framework
Querverweise zu anderen Begriffen im Lexikon
Windows Presentation Foundation (WPF)
System.Runtime.InteropServices
Language Integrated Query (LINQ)
Entity Framework Core 8.0
Component Object Model (COM)
System.ComponentModel
Dependency Injection
ASP.NET Core WebAPI
System.Collections
Visual Studio 2022 (VS17)
System.Text.Json (STJ)
Windows Terminal
ASP.NET Core 8.0
Source Generator
Namenskonvention
Deserialisierung
Microsoft.Win32
Cross-Platform
Remote Desktop
Windows Forms (WinForms)
Datenbindung
Refactoring
Marshalling
Enumeration
Open Source
Objektmenge
System.Net
DataReader
Annotation
Native AOT (NAOT)
Reflection
Blazor 8.0
Webservice
Container
Exception
Singleton
Datenbank (DB)
Hardware
.NET 7.0 (.NET 7)
Ausnahme
Template
.NET 6.0 (.NET 6)
Compiler
Methode
DataSet
Android
Setter
Symbol
Stream
await
Razor
Active Data Objects .NET (ADO.NET )
Microsoft .NET Build Engine (MSBuild)
CSharp 12.0 (C# 12.0)
CSharp 11.0 (C# 11.0)
Windows UI Library 3.0 (WinUI3)
CSharp 9.0 (C# 9.0)
NuGet Library Package Manager (NuGet)
Language Integrated Query (LINQ)
node.js (node)
.NET Multi-Platform App UI (MAUI)
Google Remote Procedure Call (gRPC)
Long-term-Support (LTS)
Software Development Kit (SDK)
Remote Desktop Proctocol (RDP)
Windows Presentation Foundation (WPF)
Graphical User Interface (GUI)
Beratung & Support
Anfrage für Beratung/Consulting zu .NET 8.0 .NET 8
Gesamter Beratungsthemenkatalog
Technischer Support zum .NET 8.0 .NET 8
Schulungen zu diesem Thema
Umstieg auf WPF Core 8.0/9.0 in .NET 8.0/9.0 (Umstellung/Migration von WPF-Anwendungen von .NET Framework auf .NET 6.0/7.0/8.0)
Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
.NET 9.0 - Änderungen und Neuerungen gegenüber .NET 8.0
Umstieg auf .NET 8.0/9.0 - Entscheiderworkshop (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
.NET 8.0 - Änderungen und Neuerungen gegenüber .NET 7.0
Umstieg auf Windows Forms Core 8.0/9.0 in .NET 8.0/9.0 (Umstellung/Migration von Windows Forms-Anwendungen von .NET Framework auf .NET 6.0/7.0)
Umstieg auf ASP.NET Core WebAPI und Google RPC (gRPC) in .NET 8.0/9.0 (Umstellung/Migration von ASP.NET WebAPI und/oder WCF in .NET Framework auf ASP.NET Core und gRPC in .NET 6.0/7.0/8.0)
Entity Framework Core 8.0/9.0 (EF Core 8.0/9.0): Objekt-Relationales Mapping (ORM) für .NET 8.0/9.0 (komplettes Wissen)
Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop mit allen Anwendungsgebieten (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
.NET-Entwickler-Update 2023
ASP.NET SignalR / ASP.NET Core SignalR
ASP.NET Core WebAPI 8.0/9.0: REST Services/HTTP Services/Microservices
Anfrage für eine individuelle Schulung zum Thema .NET 8.0 .NET 8
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
.NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr