Tipp der Woche
01.02.2023, 09:41 Uhr
Von Winforms über MVVM zu .NET MAUI
Microsoft-Mitarbeiter Klaus Löffelmann erklärt die wichtigsten Konzepte und Architekturmuster von MVVM, einschließlich Datenbindung und Befehlsbindung. Zudem zeigt er, wie man .NET-7-Tools nutzt um, Winforms-Apps zu modernisieren und sie auf .NET MAUI vorzubereiten.
Große Winforms-Anwendungen können oft von der Verwendung des Model-View-ViewModel (MVVM)-Musters profitieren, um Wartung, Wiederverwendung und Unit-Tests zu vereinfachen. In seinem Beitrag erklärt Microsoft-Mitarbeiter Klaus Löffelmann die wichtigsten Konzepte und Architekturmuster von MVVM, einschließlich Datenbindung und Befehlsbindung. Dann lenkt er den Blick darauf, wie man moderne Bibliotheken, .NET 7-Features und Visual Studio-Tools nutzt, um Winforms-Anwendungen effizient zu modernisieren. Am Ende zeigt er, wie dieser Ansatz Winforms-Anwendungen für den plattformübergreifenden Einsatz mit beliebten Frameworks wie .NET MAUI vorbereitet, die den MVVM-Code für iOS, Android, Mac und Windows nutzen können.
Der umfangreiche Beitrag stellt nicht nur klar, warum Anwendungen mit umfangreichem Code-Behind zum Alptraum werden können, sondern liefert zudem das erforderliche Know-how sowie Code-Beispiele in CSharp und viel Screenshots zur Umstellung von Winforms-Anwendungen auf das Architekturmuster Model-View-ViewModel (MVVM).
Command Binding in Winforms wird es einfacher machen, Winforms-Anwendungen auf praktikable Weise zu modernisieren. Die Trennung der Benutzeroberfläche von der Geschäftslogik durch die Einführung von UI-Controllern kann Schritt für Schritt im Laufe der Zeit durchgeführt werden. Die Einführung von Unit-Tests macht Winforms-Anwendungen robuster. Die Verwendung von ViewModels in zusätzlichen UI-Stacks wie .NET MAUI ermöglicht es, Teile einer LOB-App plattformübergreifend zu nutzen und Mobile Apps für Bereiche anzubieten, in denen dies sinnvoll ist. Außerdem wird die Übernahme von Azure-Diensten mit einer soliden Architektur viel einfacher, und wesentlicher Code kann auch leicht mit dem Ableger der Mobile App geteilt werden.