Menü
Developer

Build 2018: Microsoft kündigt Windows-Desktopprogrammierung für .NET Core 3.0 an

Für .NET Core 3.0 hat Microsoft große Pläne und will unter anderem WPF und Windows Forms unterstützen, wenn auch nur unter Windows. Entwickler können in die bestehenden Anwendungen unter anderem UWP-Elemente einbinden.

Von
vorlesen Drucken Kommentare lesen 97 Beiträge
Build 2018: Microsoft kündigt Windows-Desktopprogrammierung für .NET Core 3.0 an

Im Rahmen der Keynote der BUILD-2018-Konferenz hat Microsoft angekündigt, dass die dritte Hauptversion von .NET Core auch die Benutzeroberflächenframeworks Windows Presentation Foundation (WPF) und Windows Forms unterstützten wird – allerdings nicht plattformneutral, sondern nur auf Windows. Zudem können diese älteren UI-Frameworks auf Windows 10 die Steuerelemente und Programmierschnittstellen der Windows Universal Platform nutzen.

Das modulare und plattformneutrale .NET Core dient bisher nur dem Erstellen von Konsolenanwendung sowie von Websites und HTTP-APIs mit ASP.NET Core. Softwareentwickler, die noch klassische Desktopanwendungen programmieren, konnten bisher nicht von den Vorteilen von .NET Core profitieren, was viele angestammte Kunden, die seit vielen Jahren mit den Frameworks von Microsoft zahlreiche Desktopanwendungen entwickelt habe, unzufrieden gestimmt hat.

Microsoft hat für diese große Kundengemeinde nun angekündigt, nicht nur WPF, sondern auch das schon seit dem Jahr 2005 auf dem Abstellgleis stehende Windows Forms auf die nächste Hauptversion von .NET Core zu portieren. Das erfolgt allerdings nicht als Kernbestandteil von .NET Core, der auf allen Betriebssystemen läuft, sondern als "Windows Desktop Packs" spezifisch nur für Windows. Dabei können Entwickler dann ihre WPF- und Windows-Forms-Anwendungen weiterhin nicht auf Linux und auf macOS betreiben, sondern nur auf Windows.

Microsoft-Mitarbeiter Rich Lander betont in einem Blogeintrag, dass das Vorgehen keine Abkehr von der Cross-Platform-Strategie mit .NET Core darstelle, sondern man ASP.NET Core und Konsolenanwendungen wie bisher plattformneutral anbieten und auch weiterentwickeln wird. Microsoft will aber Entwickler, die weiterhin ausschließlich für Windows entwickeln wollen, von den Vorteilen, die .NET Core im Bereich Geschwindigkeit und der Verbreitung von Anwendungen bietet, profitieren lassen.

Während im klassischen .NET Framework, das bisher die Basis für WPF und Windows Forms bildet, immer eine Installation des .NET Framework Redistributable einschließlich Neustart des Betriebssystems der eigentlichen Anwendungsinstallation vorausgehen muss, kann man in .NET Core ein sogenannte Self-Contained Apps erstellen, die alle benötigten Teile von .NET mitbringen und ohne vorherige Installation oder einen Systemneustart sofort laufen können. Desktopanwendungen, die unterschiedliche Versionen von .NET Core erfordern, können in verschiedenen Dateisystemverzeichnissen auf einem System koexistieren (Side-by-Side). Zudem sind damit auch die Kommandozeilenwerkzeuge und das vereinfachte Projektformat der .NET Core-Welt (u. a. mit <PackageReference>-Tags in der Projektdatei anstelle der eigenständigen "packages.config"-Datei) für die Windows-Desktop-Programmierung verfügbar. Die Kommandozeilenwerkzeuge erleichtern das Erstellen von Continous-Integration- und Continous-Deployment-Prozessen.

Microsoft wird für die Windows Desktop Packs allerdings nur den eigenen C#-Code von Windows Forms und WPF auf .NET Core portieren und dabei weitere Klassen in den .NET Standard aufnehmen. Die Grundlagentechniken DirectX (für WPF) und GDI+ (für Windows Forms) bleiben weiterhin Bestandteil des Windows-Betriebssystems. Daher ist man weiterhin von einem plattformneutralen Desktopframework weit entfernt, da dafür auch DirecX und GDI+ plattformneutral werden müssten.

Für den Betrieb auf .NET Core müssen bestehende Desktopanwendungen auf das neue Projektformat umgestellt und anschließend neu kompiliert werden. Nutzer der Windows-Desktop-Packs können nicht nur C#, sondern auch Visual Basic .NET oder F# einsetzen.

Microsoft will auch den Objekt-Relationalen Mapper aus der Vor-Core-Ära, das Entity Framework 6.2, umschreiben, sodass es auf .NET Core 3.0 auf Windows läuft (s. Abbildung 1), da viele Desktop-Anwendungen es zum Datenzugriff verwenden. Microsoft betont aber, dass man darüber hinaus keine neuen Features zu Entity Framework 6.2 ergänzen werde und die Weiterentwicklung des OR-Mappers in Form von Entity Framework Core stattfindet. Bei der Portierung von Entity Framework 6.2 auf .NET Core geht es lediglich um das Vereinfachen der Migration bestehender Anwendungen von .NET Framework auf .NET Core.

Vorstellungsfolie zu .NET Core 3.0 (Abb. 1)

(Bild: Microsoft )

Zudem wird Microsoft in .NET Core 3.0 und der kommenden Version 4.8 des klassischen .NET-Frameworks mit sogenannten XAML Data Islands das Modernisieren bestehender WPF- und Windows Forms-Anwendungen unterstützen. In diesen Inseln können Entwickler Oberflächenelemente der Universal Windows Plattform (UWP) sowie die neueren Betriebssystem-Programmierschnittstellen der Windows Runtime Library (WinRT) in WPF- und Windows Forms-Anwendungen einbetten. Das ermöglicht beispielsweise, das UWP Browser Control in WPF- und Windows Forms-Anwendung zu verwenden.

.NET Core 3.0 und .NET Framework 4.8 sind allerdings auf der BUILD 2018-Konferenz nur ein Ausblick. Eine öffentliche Vorschauversion soll es noch 2018 geben, aber das fertige Produkt soll erst im nächsten Jahr erscheinen. (Holger Schwichtenberg) / (rme)