Werbung
Begriff Model-View-ViewModell
Abkürzung MVVM
Eintrag zuletzt aktualisiert am 13.03.2022

 Zur Stichwortliste unseres Lexikons

Was ist Model-View-ViewModell?

Model View ViewModell (MVVM) ist eine Variante des Model-View-Controler (MVC)-Konzeptes zur Trennung von Layout und Programmcode. MVVM wird in der Windows Presentation Foundation (WPF) und Microsoft Silverlight angewendet. Dabei erhält die in XAML gestaltete Benutzeroberfläche (View) alle Daten durch Datenbindung und der Programmcode erhält alle Aktionen der Benutzeroberfläche mit Hilfe sogenannter Commands. MVVM realisiert eine klare Kompetenztrennung und eine lose Kooplung zwischen Benutzerschnittstelle und Benutzerschnittstellensteuerung.

Hintergrund
Microsoft hat für WPF und Silverlight eine Anpassung des Model-View-Controller (MVC)-Entwurfsmusters erschaffen, das Model-View-ViewModell (MVVM) genannt wird. Model und View entsprechen dabei der Bedeutung im klassischen MVC-Entwurfsmuster. Das ViewModel kann als eine spezielle Implementierungsform eines Controllers gesehen werden, das die Aufgabe hat, die im Modell enthaltenen Informationen in einer Form aufzubereiten („adaptieren“), die die Datenbindungstechniken in WPF und Silverlight direkt nutzen können. Das ViewModel hat auch die Aufgabe, sogenannte Commands zu implementieren, die an Ereignisse der Benutzeroberfläche gebunden werden. Das oberste Ziel von MVVM ist es, die Arbeit von Grafiker/Designern (die Views erstellen) und die Arbeit der Entwickler (die Models und ViewModels erstellen) zu trennen. Ein View enthält in reinen MVVM-Muster keinen Programmcode, sondern besteht nur als XAML-Markup.

Vorteile
1. Bessere Trennung der Arbeit des Oberflächengestalters und des Entwicklers
2. Bessere Testbarkeit der Oberfläche (ohne Klickfolgen, stattdessen mit codebasierten Unit Tests)
3. Leichtere Austauschbarkeit des Uis

Nachteile
1. Hoher Mehraufwand im Vergleich zur klassischen Programmierung mit dem Code-Behind-Modell und Ereignissen
2. MVVM wird bisher nur sehr unzureichend durch Werkzeuge unterstützt.

Versuche, diese Situation zu verbessern
http://www.caliburnproject.org/
http://www.galasoft.ch/mvvm/getstarted/
http://www.calciumsdk.net/
http://wpfonyx.codeplex.com/

Beratung & Support:

Schulungen zu diesem Thema

 Model-View-ViewModel (MVVM)-Pattern mit XAML für WPF und/oder Universal Windows Platform (UWP) Apps
 knockout.js - Model-View-ViewModel (MVVM) mit JavaScript
 Windows Presentation Foundation (WPF) für typische Geschäftsanwendungen
 Kendo UI - HTML5/JavaScript-Webanwendungen mit Progress/Telerik Kendo UI
 Single-Page-Web-Applications (SPAs) entwickeln mit HTML5/CSS3 und JavaScript (oder TypeScript)
 .NET Akademie: Windows UI Library 3 (WinUI 3): Moderne Windows-Desktop-Anwendungen (3-Tages-Agenda des öffentlichen Seminars)
 Konzepte moderner Web-, Mobil- und Cross-Platform-Anwendung
 Xamarin: .NET-/C#-Cross-Plattform-Entwicklung für Android, iOS (iPhone, iPad), macOS und Windows (.NET Mobile/.NET for iOS/.NET for Android/.NET MAUI)
 Modulare Softwarearchitektur mit .NET: Modularisierung, Lose Kopplung, Austauschbarkeit und Erweiterbarkeit von .NET-Anwendungen
 Objektorientierte Entwurfsmuster (Design-Pattern/Architektur-Pattern) mit .NET (C#, Visual Basic .NET, C++/CLI)
 Extensible Application Markup Language (XAML)
 Windows Presentation Foundation (WPF) - Basiswissen
 .NET Akademie: Windows-Desktop-Anwendungen mit der Windows Presentation Foundation (WPF) (3-Tages-Agenda des öffentlichen Seminars)
 .NET Multi-Platform App UI (MAUI)
 Prism - Composite UI Framework für XAML (WPF, Windows Apps und Xamarin Forms)
 .NET-Softwarearchitektur (Architektur von .NET-Anwendungen)
 Windows UI Library 3 (WinUI 3) - Basiswissen
 Windows Presentation Foundation (WPF) - Architektur
 Windows Presentation Foundation (WPF) - Aufbauwissen
 Anfrage für eine individuelle Schulung zum Thema Model-View-ViewModell;MVVM  Gesamter Schulungsthemenkatalog