| .NET | |
|---|---|
| Basisdaten | |
| Entwickler | Microsoft |
| Erscheinungsjahr | 2016 |
| Aktuelle Version | 10.0.3[1] (10. Februar 2026) |
| Aktuelle Vorabversion | 11.0.0-preview.1[2] (10. Februar 2026) |
| Betriebssystem | Linux,macOS,Windows |
| Programmiersprache | vorwiegendC# |
| Lizenz | MIT |
| dotnet.microsoft.com | |
.NET, bis 2020.NET Core, ist einefreie und quelloffeneSoftware-Plattform innerhalb des.NET-Systems, die zur Entwicklung und Ausführung vonAnwendungsprogrammen dient und unter der Koordination vonMicrosoft entwickelt wird.
.NET Core wurde mehrere Jahre als Modernisierungsprojekt von zentralen Komponenten des.NET-Frameworks parallel zu diesem entwickelt und bildet jetzt als .NET den Nachfolger des bisherigenmonolithischen .NET-Frameworks.
Klassenbibliotheken können kompatibel zum bisherigen .NET-Framework entwickelt werden, indem als Zielframework .NET Standard 2.0 verwendet wird.
| Version | Letzte Release | End of Life[3] |
|---|---|---|
| Ältere Version; nicht mehr unterstützt: 1.0 (27. Juni 2016) | Ältere Version; nicht mehr unterstützt: 1.0.16 (14. Mai 2019) | 27. Juni 2019 |
| Ältere Version; nicht mehr unterstützt: 1.1 (17. November 2016) | Ältere Version; nicht mehr unterstützt: 1.1.13 (14. Mai 2019) | 27. Juni 2019 |
| Ältere Version; nicht mehr unterstützt: 2.0 (14. August 2017) | Ältere Version; nicht mehr unterstützt: 2.0.9 (10. Juli 2018) | 1. Okt. 2018 |
| Ältere Version; nicht mehr unterstützt: 2.1 (30. Mai 2018) | Ältere Version; nicht mehr unterstützt: 2.1.30 (19. August 2021) | 21. Aug. 2021 |
| Ältere Version; nicht mehr unterstützt: 2.2 (4. Dezember 2018) | Ältere Version; nicht mehr unterstützt: 2.2.8 (19. November 2019) | 23. Dez. 2019 |
| Ältere Version; nicht mehr unterstützt: 3.0 (23. September 2019) | Ältere Version; nicht mehr unterstützt: 3.0.3 (18. Februar 2020) | 3. März 2020 |
| Ältere Version; nicht mehr unterstützt: 3.1 (3. Dezember 2019) | Ältere Version; nicht mehr unterstützt: 3.1.32 (13. Dezember 2022) | 23. Dez. 2019 |
| Ältere Version; nicht mehr unterstützt: 5.0 (10. November 2020) | Ältere Version; nicht mehr unterstützt: 5.0.17 (10. Mai 2022) | 10. Mai 2022 |
| Ältere Version; nicht mehr unterstützt: 6.0 (8. November 2021) | Ältere Version; nicht mehr unterstützt: 6.0.36 (12. November 2024) | 12. Nov. 2024 |
| Ältere Version; nicht mehr unterstützt: 7.0 (8. November 2022) | Ältere Version; nicht mehr unterstützt: 7.0.20 (28. Mai 2024) | 14. Mai 2024 |
| Ältere Version; noch unterstützt: 8.0 (14. November 2023) | Aktuelle Version:8.0.24 (10. Februar 2026) | 10. Nov. 2026 |
| Ältere Version; noch unterstützt: 9.0 (14. November 2024) | Aktuelle Version:9.0.13 (10. Februar 2026) | 10. Nov. 2026 |
| Ältere Version; noch unterstützt: 10.0 (11. November 2025) | Aktuelle Version:10.0.3 (10. Februar 2026) | 14. Nov. 2028 |
.NET Core wurde erstmals im Mai 2014 angekündigt, und zwar unter dem NamenCloud-optimized .NET Framework. Es folgten die Alpha- und Beta-Variante, bis im November 2015 der ersteRelease Candidate erschien, womit Anwendungen für den Produktivbetrieb entwickelt werden dürfen. Dieser Release Candidate erhielt den Namen .NET Core 5, wobei die 5 die Fortsetzung der Versionsnummerierung des .NET-Frameworks bedeutet.[4] Im Januar 2016 wurde von Seiten Microsofts allerdings angekündigt, diese Nummerierung dahingehend zu ändern, dass .NET Core in seiner ersten Version beginnend mit 1 nummeriert wird.[5] Am 27. Juni 2016 wurde die Version 1.0 veröffentlicht.[6] Die erste offizielle Version der Softwareentwicklungswerkzeuge erschien am 7. März 2017. Am 14. August 2017 erschien die Version 2.0 mit umfangreichen Ergänzungen der APIs zur Angleichung an das bisherige .NET-Framework bzw. den festgelegten .NET Standard 2.0. Die am 30. Mai 2018 erschienene Version 2.1 enthielt Unterstützung für weitere Architekturen, zusätzliche Anweisungen imSDK und Performance-Verbesserungen.[7][8] Diese Version wurde auch zurLTS-Version erklärt, die dann bis zum 21. August 2021 unterstützt wurde.[9]
Am 23. September 2019 erschien die Version 3.0 mit umfangreichen Verbesserungen wie der Verwendung der neuenC#-Version 8.0,F# 4.7, der Unterstützung von Desktop-Oberflächen in Form von Zusatzpaketen und Performance-Verbesserungen undAOT-Kompilierung.[10] Zusätzliche Möglichkeiten gab es auch beim auf .NET Core 3 basierendenASP.NET Core wie das neue Server Side Blazor-Framework und die Unterstützung vongRPC.[11][12] Verbesserungen gab es auch beimEntity Framework Core.[13] Die Version 3.1 war als LTS-Version konzipiert und enthielt eine Reihe von Fehlerbehebungen und Verbesserungen, insbesondere bei Windows Desktop und dem neuen Blazor Framework. Neu war die Unterstützung von C++/CLI (nur unter Windows).[14]
Im November 2020 wurde dann .NET 5 als Nachfolger zu .NET Core und (nur eingeschränkt kompatibel) zu .NET 4.8 freigegeben. Bestimmte API-Lücken gegenüber dem klassischen .NET werden nur durch Windows-spezifische Zusatzpakete geschlossen (z. B.Microsoft.Windows.Compatibility). Das betrifft auch die im September 2019 im Rahmen der .NET Core Version 3.0 freigegebenengrafischen BenutzeroberflächenWindows Forms undWPF.[15][16]
Seit Dezember 2020 werden die Updates auf Windows für .NET 5 und .NET Core als „Microsoft Updates“ unter bestimmten Voraussetzungen automatisch ausgeliefert.[17]
Im November 2021 wurde .NET 6 freigegeben, mit Performanceverbesserungen und neuen Sprachfeatures in C# 10 und F# 6.[18][19] Mit Hilfe der neuen Hot-Reload Funktion sind Änderungen an einer laufenden Anwendung unter bestimmten Voraussetzungen möglich (beispielsweise beimDebuggen mit Visual Studio 2022). Beim Arbeiten mit der Kommandozeile steht diese Funktion durch Start mithilfe vondotnet watch zur Verfügung.[20][21][22]
Im Mai 2022 wurde die.NET Multi-Platform App UI (MAUI) eingeführt, die es ermöglicht, grafische Anwendungen mit einer einheitlichenCodebasis für verschiedene Plattformen (Windows, Android, iOS und macOS) zu entwickeln.[23][24][25]
Im November 2022 erschien die Version 7 mit zahlreichen Leistungsverbesserungen,[26] vollständiger AOT-Kompilierung und neuen Funktionen in C#11, F# 7, .NET MAUI, ASP.NET Core/Blazor, Web-APIs, WinForms, WPF.[27]
Im November 2023 wurde die Version 8 freigegeben und enthält umfangreiche Neuerungen im WebframeworkBlazor, Erweiterungen und neuen Funktionen u. a. in C# 12, F# 8, WPF, .NET MAUI und dem Entity Framework Core.[28][29] Mit .NET 8 wurde auch die.NET Aspire eingeführt. Die Veröffentlichung für .NET Aspire ist für das erste Halbjahr 2024 geplant.[30] .NET Aspire bildet einencloudnativenStack ab und bietet eine Reihe von Vorlagen und Werkzeugen, um das Erstellen und Ausführenverteilter Anwendungen zu vereinfachen. .NET Aspire hilft mit:[31]
Microsoft gab bekannt, dass derXamarin-Support im Mai 2024 endet.
Die Version 9 wurde im November 2024 veröffentlicht mit umfangreichen Leistungsverbesserungen und Integration von KI-Tools.[32]
Die Version 10 wurde im November 2025 veröffentlicht und beinhaltet erneut Leistungsverbesserungen, weitere KI-Tools sowie Verbesserungen an zahlreichen Komponenten des Frameworks.[33]
Die Arten der Softwarelösungen
.NET 9 wird auf folgenden Architekturen unterstützt:Windows (ab Version 10, fürIA-32,x64 undArm mit 32Bit),macOS (ab 10.12) und verschiedeneLinux-Distributionen (fürx64 sowieARM, letztere mit 32- und 64-Bit-Unterstützung).[37] Auch fürDocker gibt es offizielle Images.[38]Canonical bietet zudem Pakete fürSnapcraft an.[39]
Bis .NET Core 3.0 erzeugte der .NET Compiler Programmdateien, in denenCommon Intermediate Language durch dieCommon Language Runtime auf der Zielplattform inMaschinencode übersetzt werden musste. DieJust-in-time-Kompilierung (JIT) erfordert die zusätzliche und ineffiziente Verteilung vonLaufzeitbibliotheken für die Zielplattform.
Eine in .NET Core 3.0 neu eingeführteAhead-of-Time-Kompilierung (AOT) kann denIL-Code der Anwendung für die Zielplattform vorkompilieren. Dies ist optional und geschieht nachträglich im Rahmen eines „Veröffentlichung“ genannten Entwicklungsschrittes.[40] Die entstehenden Programmdateien, dieReadyToRun-Images genannt werden, sollen dann schneller starten, da dieCommon Language Runtime den Code vor der Ausführung nicht mehr übersetzen muss. Diese AOT-Kompilierung stand zunächst nur fürCLI-Software zur Verfügung.[41] Als solche werdenCronjobs undHintergrunddienste geschrieben, die aufServern ohneDesktop-Oberfläche, zum Beispiel inCloud-Umgebungen,stand-alone betrieben werden und die auf eine möglichst kurze Initialisierungszeit angewiesen sind.
.NET 7 unterstützte als erste Version der .NET-Plattform dann die vollständige, „native“Ahead-of-time-Kompilierung fürWindows undLinux, wodurch Software, die mit .NET geschrieben wurde, nicht länger auf eine Laufzeitbibliothek und eineJust-in-time-Kompilierung angewiesen ist und auf den Zielplattformen ohne zusätzlich einzubindende Softwarepakete ausgeführt werden kann.[42] Diese echte AOT-Kompilierung kann aber zu Einschränkungen bei der Programmierung führen oder zusätzliche Maßnahmen erforderlich machen.[43]
Damit kehrten die .NET-Plattformentwickler zum ursprünglichen Konzept der Anwendungsentwicklung zurück, bei dem Software vom Hersteller gezielt für bestimmte Plattformen veröffentlicht werden kann. Vorher entwickelte sich die .NET-Konzeption hin zur Idee eines auf allen Plattformen lauffähigen, universellen Programmpaketes, welches mit einem JIT-Compiler des Zulieferers (Microsoft) auf der Zielplattform ausgeführt wird.
Mit .NET sind nach wie vor beide Verbreitungswege möglich, da mit einem UWP-Paket Software imMicrosoft Store für verschiedene Windows-Systeme (meist als Desktop-Software) vertrieben wird, während mit derAhead-of-Time-Kompilierung durch eine zielgerichtet erzeugte, kleinere Programmdatei die Verteilung für verschiedene Betriebssysteme (meist als Hintergrundprozess ohne Benutzeroberfläche) erleichtert und die Performance der Software weiter verbessert werden soll.
DieAhead-of-Time-Kompilierung hat gegenüber dem herkömmlichen Verbreitungsweg einige Einschränkungen. Der Hersteller listet auf, dass mitNative AOT-Applikationen
.NET-Anwendungen lassen sich mit folgenden Entwicklungsumgebungen entwickeln:
Als Programmiersprachen für .NET werdenC#,F# undVB auf allen oben genannten Betriebssystemen unterstützt, unter Windows zusätzlich nochC++/CLI.[50][51][52]
Ähnlich wie beim klassischem .NET-Framework sind weitere Sprachen implementierbar. So entwickelt Iolevel, eine tschechische Firma, mit demPeachPie-Compiler einen PHP-Compiler für .NET sowie eine dazu passende Visual-Studio-Erweiterung. Im März 2021 wurde die Version 1 freigegeben.[53][54][55]
.NET kennt verschiedene Arten der Veröffentlichung und Bereitstellung. Dieframework-abhängigen Methoden setzten die Installation einer passenden Version des Laufzeitsystems auf dem Zielrechner voraus. Bei dereigenständigen Bereitstellung werden die benötigten Teile des Laufzeitsystems gemeinsam mit der Anwendung in einem Verzeichnis bereitgestellt, passend für Betriebssystem und Architektur des Zielrechners.[56]
Es existieren offiziell von Microsoft unterstützteDocker-Images für das Entwickler-SDK sowie die Laufzeitumgebungen.[57] Man kann seine .NET Anwendung daher vergleichsweise einfach plattformübergreifend in Containern betreiben. Auch eine Veröffentlichung des erstellten Images ist möglich. Das SDK-Image ist hierbei für die Kompilierung notwendig, während die daraus erstellten DLL-Dateien lediglich die schlankere Laufzeitumgebung benötigen.
.NET selbst ist ohneZusatzpakete fürKonsolenanwendungen undASP.NET Core (automatisch integriertes Zusatzpaket) verwendbar.[58]
Durch Zusatzpakete, die auch vonDrittanbietern stammen können und in einer sehr großen Anzahl auf nuget.org verfügbar sind[59] lässt sich die Basis-Funktionalität des Frameworks erheblich erweitern. Einsatzgebiete, bei denen .NET einen zentralen Bestandteil darstellt, sind beispielsweise:
Die allermeisten Einsatzszenarien, bei denen das frühere .NET-Framework verwendet wurde, können auch mit .NET (ggf. ergänzt um Zusatzpakete) realisiert werden. Für einige der gekündigten Techniken gibt es Lösungen als Community-Projekt (z. B. fürWCF das Projekt CoreWCF).[63][64][65]
Die wichtigsten Komponenten von .NET sind:[66]
Ist das SDK installiert, so können zahlreiche Aufgaben der Softwareentwicklung mit dem Kommandodotnet erledigt werden, z. B.dotnet build – also (englisch für) „[das] Übersetzen der Anwendung“.[67]
Lehrbücher