Das Model-View-ViewModel-Pattern

Slides:



Advertisements
Ähnliche Präsentationen
Windows Vista für Entwickler
Advertisements

Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
05 Stammdaten Arbeitsgang. © beas group 2011 / Page 2 This documentation and training is provided to you by beas group AG. The documents are neither approved.
12 Produktkonfiguration
Windows Small Business Server 2008
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 3 Folie 2 Windows Presentation Foundation (WPF) s.a.
Hochverfügbarkeit mit { SQL Server 2008 }
Kooperationsmöglichkeiten im Bereich Medienkompetenzförderung Heidelberg, 06.Juni 2011 Jürgen Nilgen Area Sales Lead Germany | Microsoft Learning.
Begeisternde User Experience mit Silverlight
Video Streaming mit Silverlight
Michael Köster User Experience Specialist Microsoft Corporation.
Bitlocker mit Server 2008 in Enterprise Umgebungen
Jean-Claude Trachsel Senior Consultant Trivadis AG.
Roger Boesch Technology Solution Professional - Visual Studio Team System blogs.msdn.com/rogerboesch Microsoft Schweiz GmbH.
Neno Loje Berater & MVP für Visual Studio ALM und TFS (ehemals VSTS) Hochqualitative Produkte mit Visual Studio & TFS 2010.
Windows Server 2008 Server Deployment
ASP.NET 3.5 AJAX Live Coding {mit Visual Studio 2008}
BusinessPerformancePoint Server 2007 Planen, Überwachen, Analysieren
SQL Server 2008 Überblick Steffen Krause Technical Evangelist
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
Steffen Krause Technical Evangelist Microsoft Deutschland GmbH
Scripting mit Windows PowerShell
Thomas Claudius Huber Senior Consultant Trivadis AG Silverlight 5 die Neuerungen.
SQL Azure Administration
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Windows Server 2008 Terminal Services
Der Moderne Verwaltungsarbeitsplatz Die perfekte Symbiose der neuen Microsoft Technologien mit Ihrer bestehenden IT-Infrastruktur Michael Schäffer
MVVM in Windows 8 und Windows Phone 8
Expression Blend for developers
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 Dependency Properties s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 Styles (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 11 Folie 2 Model-View-ViewModel s.a.
2 VirtualisierungSpeicher Web- und Anwendungsplattform Verwaltung & Automatisierung Virtuelle DesktopinfrastrukturIdentität & ZugriffNetzwerk Mehr als.
Virtual Earth Visualisierung von Geodaten Daniel Walzenbach, Microsoft Deutschland GmbH
Cyber-Security und Datenschutz in der Cloud Wie passt das zusammen?
Intensivmedizin-Applikation mit WPF, WCF und LINQ
3/31/ :26 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Microsoft Cloud Day Herzlich willkommen!. Microsoft Cloud Day MSDN Veranstaltung Die Cloud Plattform als Erfolgsbaustein – Wie Sie als Softwarefirma von.
Developer Day Deep Dive into WinRT-Controls: FlipView, ListView, GridView and SemanticZoom Thomas Claudius Huber Principal Consultant, Trivadis AG
Thomas Claudius Huber Senior Consultant Trivadis AG WCF RIA Services Datengetriebene Apps.
…und nun aber zum heutigen Vortrag Die Herausforderung: Krisen und andere Verwerfungen Die Herangehensweise: Kosten senken & Produktivität erhöhen Das.
Mit IT IS enbex Hand in Hand Zeitgemäße Unternehmen sind auf schnellen und sicheren Datenaustausch angewiesen IT IS AG.
Sprachneuerungen des .NET Frameworks 3.5
Weg mit Fehlern, die kein Entwickler versteht …
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
Arbeiten in einem agilen Team mit VS & TFS 11
? What is Open PS? SAP Open PS based on EPS 4.0
Holen Sie das Beste aus Ihrer SharePoint Installation Michael Greth, SharePoint MVP, Microsoft Deutschland GmbH.
Mitmachen – IBM lädt Studenten zur DNUG-Frühjahrkonferenz! Freikarten gegen Fachbeitrag zu Enterprise 2.0, Collaboration oder IBM Lotus.
Microsoft Online Services Technischer Überblick (BPOS-S)
© 2012 IBM Corporation © 2013 IBM Corporation IBM Storage Germany Community Josef Weingand Infos / Find me on:
Cubido business solutions gmbh Haidfeldstrasse 33 A-4060 Leonding di(fh) Wolfgang Straßer ° Rundumblick.
Bing SMB Advertisers – Search Ads
Lync and Learn mit Manfred Helber Thema heute:
Azure Backup, Azure Backup Server und Azure Site Recovery
Arbeiten mit virtuellen Maschinen in Microsoft Azure
Azure Active Directory und Azure Active Directory Domain Services
Erweiterte Azure Dienste
Lync and Learn mit Manfred Helber Thema heute:
Wege in die Cloud: Office 365
oder: Was Licht mit autonomen Fahren zu tun hat
Wachstumsmotor für Ihr Unternehmen: Bing Ads
Firmeninternes Softwarelogo
 Präsentation transkript:

Das Model-View-ViewModel-Pattern Thomas Claudius Huber Senior Consultant Trivadis AG

About Thomas C. Huber Senior Consultant @Trivadis Autor der umfassenden Handbücher zu WPF und Silverlight www.thomasclaudiushuber.com

Trivadis solutions portfolio and competences IT SOLUTIONS, SERVICES, & PRODUCTS TECHNOLOGIES Microsoft, Oracle, IBM, Open Source Integration, Application Performance Management, Security Training Managed Services Infrastructure Engineering Application Development Enterprise Content Management BUSINESS INTEGRATION SERVICES IT departments Business departments CUSTOMER Business Intelligence Business Integration Services

Trivadis facts & figures Hier könnte eine Kopfzeile stehen 28.03.2017 Trivadis facts & figures 11 Trivadis locations with more than 550 employees Financially independent and sustainably profitable Key figures 2010 Revenue CHF 101 / EUR 73 mio. Services for more than 700 clients in over 1‘800 projects Over 170 Service Level Agreements More than 5'000 training participants Research and development budget: CHF 5.0 / EUR 3.6 mio. Hamburg Düsseldorf ~170 employees Frankfurt Stuttgart Vienna Munich Freiburg Basel Zurich ~20 employees Bern ~370 employees Lausanne Hier könnte eine Fusszeile stehen

Agenda MVVM-Grundlagen Daten und Commands Fortgeschrittene Tasks

Model-View-Controller – der Ursprung von MVVM das Datenmodell View die Benutzeroberfläche Controller behandelt Benutzereingaben und modifiziert das Model Model

Model-View-ViewModel erstmals 2005 von John Gossman beschrieben einer der Architekten von Expression Blend http://blogs.msdn.com/johngossman „State-of-the-Art“-Pattern für WPF- und Silverlight-Anwendungen etabliert Nutzt zentrale Features von WPF und Silverlight Data-Binding Commands

Model-View-ViewModel View (wie bei MVC) In WPF/Silverlight XAML mit Code-behind ViewModel Datenklasse spezifisch für das UI Kapselt das Model Model (wie bei MVC) DataSets, XML, Custom Objects, ... XAML View VB.NET / C# ViewModel Model

Stärken von MVVM Höhere Wartbarkeit aufgrund von UI-Trennung UI und UI-Logik sind strikter getrennt, wodurch die Anwendung modularer aufgebaut ist und wartbarer wird. Unterstützung von Unit-Tests Ein großer Teil der UI-Logik kann in Unit-Tests eingebunden werden. Workflow zwischen Entwickler und Designer Bessere Arbeitsaufteilung aufgrund des Patterns

Agenda MVVM-Grundlagen Daten und Commands Fortgeschrittene Tasks

Daten und Commands View Das ViewModel stellt über Properties Daten und Commands bereit Die View hat das ViewModel im DataContext, womit sich jedes Element in der View an Properties des ViewModels binden lässt XAML DataContext Data-Binding ViewModel Model

Der DataContext Zum expliziten Setzen der Quelle eines Data-Bindings bietet die Binding-Instanz drei Möglichkeiten: Source-Property ElementName-Property RelativeSource-Property Ist keine der drei Properties gesetzt, hält die Binding-Instanz nach dem DataContext Ausschau: FrameworkElement definiert eine DataContext-Property. Der Wert dieser Property wird über den Element Tree vererbt. Das ViewModel wird in den DataContext der View gesetzt. Demo

Data-Binding Benachrichtigungen Ist die Quelle eine Dependency-Property, ist alles ok. Ist die Quelle eine normale .NET Property INotifyPropertyChanged implementieren Ist die Quelle eine Collection INotifyCollectionChanged implementieren ObservableCollection<T> impl. das Interface bereits Demo

Commands In WPF/Silverlight ist ein Command ein Objekt, das die Schnittstelle ICommand implementiert Ein Command wird ausgeführt von Objekten, die eine Command-Property besitzen In Silverlight 4: Button, Hyperlink In WPF: Button, MenuItem public interface ICommand{ bool CanExecute(object parameter); void Execute(object parameter); event EventHandler CanExecuteChanged; }

Commands Das ViewModel enthält Properties vom Typ ICommand für die Steuerung UIElemente binden sich an diese Properties Um die vom ICommand auszuführende Logik im ViewModel und nicht im ICommand selbst zu haben, werden Delegates genutzt. Demo

Agenda MVVM-Grundlagen Daten und Commands Fortgeschrittene Tasks

Benutzerinteraktion aus dem ViewModel An einer Stelle im ViewModel wird Feedback benötigt. Dem Benutzer muss ein Dialog angezeigt werden. Problem: ViewModel darf kein UI enthalten Nur so bleibt das ViewModel für Unit-Tests geeignet Lösung???

Benutzerinteraktion aus dem ViewModel Lösung: Das ViewModel stellt ein Event bereit. Die Daten werden über spezielle EventArgs übergeben View zeigt im Eventhandler einen Dialog an. Demo

DataProvider für Designzeit-Daten Für den Designer ist es hilfreich, wenn zur Designzeit Beispieldaten zur Verfügung stehen Diese Funktionalität wird über eine IDataProvider-Schnittstelle erreicht Zur Designzeit wird eine andere IDataProvider-Implementation geladen. Demo

Unit-Testing [TestMethod()] public void DeleteCommandTest() { MainViewModel_Accessor target = new MainViewModel_Accessor(); target.Speakers = new ObservableCollection<Speaker>{ new Speaker(), new Speaker(), new Speaker(), new Speaker()}; target.CurrentSpeaker = target.Speakers[0]; target.DeleteCommand.Execute(null); Assert.AreEqual(target.Speakers.Count, 3); }  

Agenda MVVM-Grundlagen Daten und Commands Fortgeschrittene Tasks

Fazit Bessere Unterstützung für den Designer-/Entwicker-Workflow Die Logik liegt im vom UI unabhängigen ViewModel, was gefundenes Fressen für Unit-Tests ist Die Anwendung bekommt eine bessere Strutkur und wird wartbarer

Trivadis TechDays11 Wettbewerb 1. Preis 2. Preis Mit Signatur von Thomas Huber 3. Preis Gutschein für einen kostenlosen Trivadis Training Tag Mehr Infos am -Stand f

Q&A

3/28/2017 8:10 PM © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.