Sie sind hier: Startseite | Wissen
BASTA 2016
Begriff Model View ViewModell
Abkürzung MVVM
Eintrag zuletzt aktualisiert am 06.12.2011

 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 für WPF und/oder XAML-basierte WinRT-Anwendungen
 knockout.js - Model-View-ViewModel (MVVM) mit JavaScript
 .NET Akademie: Windows-Desktop-Anwendungen mit der Windows Presentation Foundation (WPF) 4.5 (3-Tages-Agenda des öffentlichen Seminars)
 .NET-Softwarearchitektur (Architektur von .NET-Anwendungen)
 Extensible Application Markup Language (XAML)
 JavaScript für .NET-Entwickler: Umstieg von .NET/C#/Visual Basic auf HTML 5, CSS und JavaScript zur Entwicklung moderner Webanwendungen
 Kendo UI - HTML5/JavaScript-Webanwendungen mit Telerik Kendo UI
 Microsoft Silverlight 2.0/3.0/4.0/5.1
 Moderne Web-Anwendungen mit ASP.NET MVC, WebAPI, HTML5/CSS3 und JavaScript-Frameworks
 Modulare Softwarearchitektur mit .NET: Modularisierung, Lose Kopplung, Austauschbarkeit und Erweiterbarkeit von .NET-Anwendungen
 Objektorientierte Entwurfsmuster (Design Pattern) mit .NET (C#, Visual Basic .NET, C++/CLI)
 Prism - Composite UI Framework für XAML (WPF, Windows Apps und Xamarin Forms)
 Silverlight 5.1 - Die Neuerungen für Umsteiger von Silverlight 4.0
 Upshot.js - Eine JavaScript-Bibliothek für Datenzugriff über AJAX und Single-Page-Web-Applications (SPAs)
 Windows Phone 7 für Softwareentwickler
 Windows Phone 8 mit C# und XAML / Windows Phone 8 für Softwareentwickler
 Windows Presentation Foundation (WPF) - Architektur
 Windows Presentation Foundation (WPF) - Aufbauwissen
 Windows Presentation Foundation (WPF) - Basiswissen
 Windows Presentation Foundation (WPF) für typische Geschäftsanwendungen
 Anfrage für eine individuelle Schulung zum Thema Model View ViewModell  Gesamter Schulungsthemenkatalog