.NET Core
Eintrag zuletzt aktualisiert am: 18.02.2022
.NET Core (DOTNETCORE) ist eine modulare, kompaktere, optimiertere und plattformunabhängige Neuentwicklung des .NET Frameworks.
Vorgeschichte
Sollte eigentlich erscheinen Frühjahr 2015
Ein Teil ist dann erschienen als "RTM" am 29.7.2015 in Rahmen von
Windows 10 (
Universal Windows Platform -
UWP)
Rest dann verschoben auf 1. Quartal 2016
13.5.2014 (
TechEd USA in Housten): Erste öffentliche Erwähnung, noch unter dem Namen "cloud-optimized .NET Framework" und "
Project K"
12.11.2014 (connect 2014): Benennung "
.NET Core 5.0"
18.11.2015 (connect 2015): RC1-Version für Windows, MacOS und
Linux
21.01.2016: Umbenennung von
.NET Core 5.0 in
.NET Core 1.0
16.05.2016: RC2
1.2.2016: Erscheinungstermin verschoben auf "irgendwann 2016"
26.7.2016: Die Version "
.NET Core 1.0" erscheint endlich
10.11.2020: Die vierte Hauptversion heitßt nun "
.NET 5.0" (4.0 wird übersprungen, "Core" entfällt)
RTM-Versionen
- .NET Core 1.0 ist erschienen am 26.07.2016 (ursprünglich: "Project K" und ".NET Core 5.0")
- .NET Core 1.1 ist erschienen am 16.11.2016
- .NET Core 1.1.1 ist erschienen am 07.03.2017
- .NET Core 2.0 ist erschienen am 14.08.2017
- .NET Core 2.1 ist erschienen am 31.05.2018
- .NET Core 2.2 ist erschienen am 04.12.2018
- .NET Core 3.0 ist erschienen am 23.09.2019
- .NET Core 3.1 ist erschienen am 03.12.2019
- .NET Core 5.0 ist erschienen am 10.11.2020 (heißt offiziell ".NET 5.0", intern aber .NET Core 5.0)
- .NET Core 6.0 ist erschienen am 08.11.2021 (heißt offiziell ".NET 6.0", intern aber .NET Core 6.0)
- .NET Core 7.0 ist erschienen am 08.11.2022 (heißt offiziell ".NET 7.0", intern aber .NET Core 7.0)
- .NET Core 8.0 ist erschienen am 31.12.2023 (heißt offiziell ".NET 8.0", intern aber .NET Core 8.0)
Zukunft
.NET Core 3.1 wird die letzte Version sein, die "Core" im Namen trägt. Der Nachfolger heißt "
.NET 5.0".
.NET Core ist…
- plattformunabhängig
- verfügbar für Linux, MacOS und Windows
- eine Mischung aus Neuimplementierung und Redesign/Refactoring von .NET Framework 4.x
- leichtgewichtiger / schneller
- sehr modular aufgebaut
- komplett Open Source https://github.com/dotnet/corefx
- ein Parallelprodukt zu .NET Framework 4.x
- nur teilweise kompatibel zum bisherigen .NET Framework (die Kompabilität wurde in .NET Core 1.1 bis 3.0 verbessert, .NET Core enthält aber weiterhin nicht alle Klassen und alle Funktionen aus dem klassischen .NET Framework)
Vorteile des .NET Core Framework gegenüber dem vollständigen .NET Framework
- Schnellerer Anwendungstart
- Wenig RAM-Bedarf durch nur benötigte Komponenten
- Höhere Dichte von Anwendungen
- Weniger Angriffsfläche
- Agilere Entwicklung möglich
.NET Core umfasst
Die Ursprünge von .NET Core liegen in .NET for
Windows 8: "The .NET Core
API started as the
API for
Windows 8 Store Apps." [
http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-net-framework-4-6.aspx]
Auf .NET Core bauen auf
.NET Core-Entwicklungsstufen aus der Vogelperspektive
v1.0 Juni 2016: Konsolenanwendungen,
ASP.NET MVC + Web
API,
EFCore
v1.1 Nov 2016: nur wenig neue Feature
v2.0 August 2017:
.NET Standard,
DataSet ;-), ASP.NET
Razor Pages
v2.1 Mai 2018:
ASP.NET SignalR, viele neue Features,
Windows Compatibility Pack (
WCP)
v2.2 Ende 2018: nur wenige neue Feature
v3.0 in 2019:
WPF,
Windows Forms (nur auf Windows!)
Visual Studio (Visual Studio Version 14 und höher)
Visual Studio Code
Jetbrains
Rider
Im zweiten Entwicklungszweig von
.NET 2015 fasst Microsoft
.NET Core 1.0 fasst das im April 2014 angekündigte
.NET Native (Codename „Project N“), mit dem
Windows Apps direkt zu
Native Code kompiliert werden können, und die im Mai 2014 angekündigte modulare Variante der Webentwicklungsplattform ASP.NET („
Project K“) zusammen.
Im Gegensatz zum bisherigen monolithischen .NET Framework mit rund 200 MB Setup, bei dem es sehr viele komplexe Abhängigkeiten zwischen den einzelnen Bibliotheken gibt, wird
.NET Core 1.0 ein sehr modulares Framework sein mit einem vergleichsweise kleinen Kern. Während die „
CoreCLR“ in
.NET Core 1.0 fast identisch zur CLR im bisherigen .NET Framework ist (es fehlen nur
Application Domains und
Code Access Security), wird Microsoft die .NET-Klassenbibliothek radikal „ausmisten“ und sich auf die unbedingt notwendigen Klassen beschränken, die Microsoft in einer neuen Version der „System.Runtime.dll“ ausliefert. Die mscorlib.dll wird hier nicht mehr gebraucht. Weitere Funktionen kann man auf
.NET Core 1.0 aber als Erweiterungspakete installieren und Microsoft will daran arbeiten, in den kommenden Jahren sinnvolle Klassen aus dem bisherigen .NET Framework in die .NET Core-Sphäre als Erweiterungspakete zu überführen.
Umgangssprachlich grenzt Microsoft das bisherige .NET Framework mit .NET „Full“ Framework, .NET „Desktop“ Framework und auch .NET „Classic“ Framework von
.NET Core 1.0 ab, für das auch die Namen „Cloud optimized Framework“ und modular .NET Framework im Umlauf sind.
Mit .NET Core kann man zunächst nur
Windows Apps mit
Windows Runtime-
XAML und Webanwendungen mit ASP.NET erstellen. Das nächste ASP.NET (bisher Codename „ASP.NET vNext“ und "ASP.NET 5") erhält auch die Versionsnummer Core 1.0, umfasst dann aber nur
ASP.NET MVC (inkl. Web
API) und - geplant auch - ASP.NET WebPages.
Eine klassische Desktop-Anwendung mit
Windows Forms und
WPF kann man mit .NET Core zunächst nicht erzeugen. Alle Klassen der beiden Desktop-UI-Frameworks fehlen in .NET Core. Es gab noch keine konkrete Ankündigung dazu, ob Microsoft
Windows Forms und
WPF auf .NET Core portieren wird. Zugesagt ist aber, dass Microsoft beide Frameworks zunächst im Rahmen weiterer Versionen der .NET 4.x-Produktlinie weiterhin pflegen wird. Langfristig will Microsoft aber .NET Core zur Basis für alle Einsatzgebiete des .NET Frameworks – von Desktop-Anwendungen über Apps bis hin zu Server und Cloud - machen. Daraus lässt sich ableiten, dass entweder eine Portierung kommen wird oder ein neues UI-Framework. Durchaus möglich erscheint auch, dass Microsoft dann das
Windows Runtime-basierte
XAML zum vollständigen UI-Framework für alle Desktop-Anwendungen ausbaut. In
Windows 10 kann man
Windows Runtime-
XAML-Apps als größenveränderbares Fenster auf dem Windows-Desktop laufen lassen, sodass es nur noch wenige Unterschiede zwischen
WPF-Anwendung und einer
WinRT-App gibt.