.NET Core: Microsofts plattformunabhängiges Entwicklungs-Framework erreicht Version 1.0
Mehr als zwei Jahre nach der Erstankündigung hat Microsoft die Version 1.0 des .NET-Core-Frameworks veröffentlicht. Die zugehörigen Werkzeuge bleiben aber vorerst weiterhin im Preview-Status.
- Dr. Holger Schwichtenberg
Zu den nun erschienenen Produkten gehört nicht nur das modulare .NET Core 1.0 für Windows, Linux (Ubuntu, Fedora, CentOS, Oracle Linux OpenSUSE, RHEL) und OS X sowie Docker, sondern auch das Webframework ASP.NET Core 1.0 und der objektrelationale Mapper Entity Framework Core 1.0. Diese stellen überarbeitete Varianten von ASP.NET MVC 5.2 beziehungsweise Entity Framework 6.1 dar. Die zugehörigen Werkzeuge in Visual Studio sowie das Software Development Kit (SDK) zur Entwicklung mit .NET Core, ASP.NET Core und Entity Framework Core haben aber vorerst weiterhin Preview-Status; sie sollen erst mit dem Erscheinen von Visual Studio 15 (= Visual Studio 2016) einen endgültigen Zustand erreichen.
Verschiedene Installationspakete
Softwareentwickler, die Visual Studio 2015 verwenden, installieren auf ihrem Entwicklungssystem Visual Studio 2015 Update 3 und ".NET Core VS 2015 Tooling Preview 2". Hierdurch erhalten sie sowohl die (fertige) Laufzeitumgebung als auch das SDK und die Visual-Studio-Werkzeuge im Preview-2-Stadium. Wer kein Visual Studio verwendet, installiert nur das SDK-Setup.
Die Laufzeitumgebung und das SDK finden sich nach der Installation im Dateisystem unter C:\Program Files\dotnet. Für den Betrieb von .NET-Core-Anwendungen wird dann nur die .NET-Core-Runtime, die im SDK enthalten ist, und für ASP.NET-Core-Webanwendungen zusätzlich das Paket ".NET Core Windows Server Hosting" benötigt, das die Verbindung zwischen den Internet Information Services (IIS) und ASP.NET Core herstellt.
Für Entity Framework Core 1.0 werden nur DLLs benötigt, die es auf Nuget.org gibt. Alle benötigten Komponenten installiert man, indem man einen Datenbank-Provider einbindet, zum Beispiel den für SQL Server, SQL Server Compact Edition Version 3.5 und Version 4.0, SQLlite, PostgreSQL oder den für Unit-Tests gedachten In-Memory-Treiber. Für die Generierung von Datenbankschemata aus Objektmodellen (Forward Engineering) oder die Generierung von Objektmodellen aus Datenbankschemata (Reverse Engineering) benötigen Softwareentwickler außerdem das Paket "Microsoft.EntityFrameworkCore.Tools" sowie das zugehörige Design-Paket für die jeweilige Datenbank. Bei diesen vielen Paketen trägt zur Verwirrung bei, das auch noch Pakete mit dem Namen "EntityFramework.Core" (also mit zusätzlichem Punkt im Namen) auf Nuget.org gibt; das sind aber veraltete Versionen auf dem Stand von November 2015.
Mehrere Betriebsvarianten
ASP.NET Core und Entity Framework Core können dabei nicht nur auf .NET Core, sondern auch auf dem bisherigen .NET "Full" Framework oder dem Mono-Framework der kürzlich von Microsoft übernommenen Firma Xamarin aufsetzen.
.NET Native, eine nicht auf Managed Code aufsetzende Variante von .NET Core, ist schon im letzten Jahr im Rahmen von Windows 10 als Basis für die Universal Windows Apps erschienen. Microsoft will vorerst das .NET "Full" Framework, ASP.NET MVC und Entity Framework parallel zu den neuen Core-Produkten weiterentwickelt.
Vorabversionen seit 2014
Microsoft hatte erstmals im Mai 2014 öffentlich über ein Redesign von .NET unter dem Schlagwörtern "Cloud-optimized .NET", "Project K" und "ASP.NET vNext" sowie "Entity Framework 7" gesprochen. Im November 2014 erfolgt dann die konkrete Benennung in .NET Core 5 und ASP.NET 5, die aber am 19. Januar 2016 auf die heutigen Namen revidiert wurde.
Der Erscheinungstermin wurde mehrfach verschoben. Eine ersten Release Candidate 1 gab es im November 2015. Der zweite lies dann jedoch bis Mai 2016 auf sich warten, nachdem sich Microsoft abermals zu gravierenden Ă„nderungen entschlossen hatte.
Open Source auf GitHub
Alle Softwareprodukte der Core-Familie sind Open Source, die die Lizenzen der MIT, der Apache Software Foundation beziehungsweise die Creative Commons 4.0 verwenden. Die Entwicklung findet auf GitHub statt, und Microsoft hat zahlreiche Beiträge externer Entwickler in die Software einfließen lassen. Rund 20 % des .NET-Core-Quellcodes stammen von externen Entwicklern.
Microsoft hat heute erstmals Support-Richtlinien für .NET Core veröffentlicht. .NET Core 1.0 wird mindestens drei Jahre bzw. noch ein Jahr nach dem Erscheinen der nächsten Hauptversion 2.0 unterstützt. Die .NET-Core-Dokumentation steht auf einer Site, während es separate Dokumentationen für ASP.NET Core und Entity Framework Core gibt. Alle drei Sites haben jedoch noch erhebliche Lücken und Platzhalter (s. Abb. 2).
Weitere Termine bleiben offen
Eine Roadmap für die Weiterentwicklung der Core-Produkte ist noch nicht veröffentlicht, Microsoft hat lediglich unter der Überschrift "Future Work" einige Features angekündigt, die in den kommenden Monaten folgen sollen. Dazu gehört die Unterstützung für Benachrichtigungen mit SignalR in ASP.NET Core und NoSQL-Datenspeichern in Entity Framework Core. Angekündigt ist auch, dass Microsoft zumindest die Basisklassenbibliothek von .NET Core an die in .NET Framework 4.6.x verfügbaren Klassen angleichen will, um die Portierung bestehender .NET-Anwendungen auf .NET Core zu erleichtern.
Zu den Basisklassen gehören aber nicht die Anwendungsframeworks wie Windows Presentation Foundation (WPF), Windows Forms oder ASP.NET Webforms. Mit der ersten Version von .NET Core können Softwareentwickler lediglich plattformunabhängige Konsolenanwendungen, Webserveranwendungen und Windows-10-Apps entwickeln. Wann ein plattformunabhängiges GUI-Framework im Rahmen von .NET folgen wird, ist offen. (ane)