.NET Core (DOTNETCORE)

Eintrag zuletzt aktualisiert am: 01.07.2019


.NET Core ist eine modulare, kompaktere, optimiertere und plattformunabhängige Neuentwicklung des .NET Frameworks.

Vorgeschichte
13.5.2014 (TechEd USA): Erste öffentliche Erwähnung, noch unter dem Namen "cloud-optimized .NET Framework" und "Project K"
12.11.2014 (connect 2014): Benennung .NET Core
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
Sollte eigentlich erscheinen Frühjahr 2015
Ein Teil ist dann erschienen als "RTM" am 29.7.2015 in Rahmen von Windows 10
Rest dann verschoben auf 1. Quartal 2016
18.11.2015: RC1
19.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 1.0 erscheint endlich

RTM-Versionen


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 + WebAPI, 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!)

Passende Entwicklungsumgebung
Visual Studio (Visual Studio Version 14 und höher)
Visual Studio Code
Jetbrains Rider

Details zu .NET Core 1.0
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. WebAPI) 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.