Microsoft
18.05.2021, 10:18 Uhr
Windows Forms und VB.NET auf .NET 5
Merrie McGaw und Klaus Loeffelmann, beide arbeiten für Microsofts Windows-Forms-Entwicklungsteam haben in einem Video über die Herausforderung gesprochen, die das Anpassen von Winforms und VB.NET unter .NET 5 darstellt. Zudem präsentieren sie zwei Demo-Anwendungen.
Windows Forms ist insbesondere unter VB-Entwicklern ein Thema. Merrie McGaw: "Wir wissen, dass viele Kunden wirklich begeistert waren, als Windows Forms Teil von .NET Core wurde und wir eine Menge Migration sahen, aber wir hatten keine Unterstützung für Visual Basic.NET". Die Informationen, die wir erhalten, zeigen, dass VB-Kunden einen großen Teil der WinForms-Kunden ausmachen. Wir wussten, dass wir sie ausschließen, und wir wollten sie nicht mehr ausschließen. Wir haben diese Fähigkeit in .NET 5 hinzugefügt."
Die Aufgabe, an der das Windows-Forms-Entwicklungsteam, zu dem Klaus Löffelmann gehört und dessen Leiterin Merrie McGaw ist, gerade arbeitet besteht darin, den Windows-Forms-Designer dazu zu bringen, sich in VB.NET-Projekten genauso zu verhalten wie in C#-Projekten. Das Problem dabei ist laut Visual-Basic-Spezialist Klaus Löffelmann, dass es zwischen den beiden Sprachen deutliche idiomatische Unterschiede gibt.
Schon im September 2019 sagte Olia Gavrysh, Program Manager, .NET, bei der Besprechung einer Preview: "Für Entwickler wird der .NET Core Windows Forms Designer (wenn wir die GA-Version veröffentlichen) genauso aussehen und sich genauso anfühlen wie der .NET Framework Windows Forms Designer. Aber für uns ist es eine große technische Herausforderung, den Designer nach .NET Core zu bringen, weil die Design-Oberfläche, die das Live-Formular in .NET Core hostet, außerhalb des Visual-Studio-Prozesses laufen muss. Das bedeutet, dass wir die Art und Weise, wie die Designer-Oberfläche mit Visual Studio 'kommuniziert', neu entwerfen müssen."
Klaus Löffelmann: "Klassischerweise ist es eine große Herausforderung für uns, wenn wir einen Core-Designer schreiben oder umschreiben, in C#, wenn Sie Ereignisse wie ein Mausklick-Event einbinden, dann geht alles in den Zwischencode, der zunächst als Komponente in WinForms gehostet wird. In Visual Basic ist das ganz anders als in C#. Wir verwenden in Visual Basic keine Ad-Handler. Wir haben die Handles-Klausel und die Handles-Klausel ist etwas, das sich auf der eigentlichen Methode befindet, die das Ereignis behandelt. Das ist völlig anders als in C#, und es muss im Designer einfach anders adressiert werden. Es ist eine große Herausforderung, das zu tun."
Der WinForms-Designer war auch mit C#-Code ein heikles Problem beim Übergang vom alten, proprietären .NET-Framework zum quelloffenen, plattformübergreifenden .NET-Core-Framework, das mit der Einführung von .NET 5 im vergangenen November auf ein Namensschema von .NET 5, .NET 6 und so weiter umgestellt hat.
Im März 2020 hat Microsoft VB-Unterstützung für .NET 5 angekündigt, unter anderem für WPF und Windows Forms. Die Beitrag aus dem November 2020 "Visual Basic in .NET 5: Ready for WinForms Apps" erläutert den damaligen Stand. Die aktuelle Dokumentation von Windows Forms auf .NET 5.0 inklusive Listen der Breaking Changes sowie der über den Stand von .NET Framework 4.8 hinausgehenden Features finden Sie unter docs.microsoft.com/en-us/dotnet/desktop/winforms/?view=netdesktop-5.0.
Das aktuelle Video mit Merrie McGaw und Klaus Loeffelmann finden Sie hier.