0% found this document useful (0 votes)
772 views11 pages

WPF MVVM Training

This document provides an overview of MVVM training which includes understanding the MVVM pattern, its motivation and benefits, implementing MVVM with examples, dependency injection, unit testing support, and supporting libraries and frameworks. The MVVM pattern separates an application into three main parts - the view, view model, and model. It aims to increase testability and maintainability. Key aspects covered include keeping the view simple, making the view model testable, and having no dependencies between layers.

Uploaded by

cristina2sabre
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
772 views11 pages

WPF MVVM Training

This document provides an overview of MVVM training which includes understanding the MVVM pattern, its motivation and benefits, implementing MVVM with examples, dependency injection, unit testing support, and supporting libraries and frameworks. The MVVM pattern separates an application into three main parts - the view, view model, and model. It aims to increase testability and maintainability. Key aspects covered include keeping the view simple, making the view model testable, and having no dependencies between layers.

Uploaded by

cristina2sabre
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 11

WPF MVVM Training

Michael Sync (Silverlight MVP)

Adopting the MVVM pattern with WPF


Understanding MVVM Motivation and benefits Implementing the pattern Dependency Injection and IoC Unit Test and Mock Supporting libraries and frameworks

What's MVVM?
is an architectural pattern created by John Gossman from WPF team is a variation of MVC pattern is similar to Martin Fowlers PresentationModel pattern WPF Data Binding & Commanding

Motivation and benefits


Testabiltiy ( ViewModel is easier to unit test than codebehind or event driven code) Clear seperation between UX designer and developer Increases the "Blendability" of your view Model never needs to be changed to support changes to the view ViewModel rarely needs to be changed to support changes to the view No duplicated code to update views

MVVM
View ViewModel Model

View knows ViewModel ViewModel knows Models But not vice versa.

View
represents the user interface that the user will see. can be a user control or Data Template shouldn't contain any logic that you want to test Keep the view as simple as possible.

View Model
An abstraction of View Connector between View and Model Keep View State, Value Conversion No strong or weak (via Interface) reference of View Make VM as testable as possible (e.g. no call to Singleton class) No Control related Stuff in VM

Model
can be Data Model, DTO, POCO, autogenerated proxy of domain class and UI Model based on how you want to have the separation between Domain Service and Presentation Layer No reference to ViewModel

Disadvantages of MVVM
lack of standardization so everyone has own favor For simple UI, M-V-VM can be overkill

Implementing MVVM
DEMO Simple MVVM DEMO MVVM + Data Template DEMO DI + IoC DEMO BDD

Supporting libraries and frameworks


WPF Team : MVVM Toolkit MS Pattern and Practice Team : Composite WPF (Prism) Josh Smith. "MVVM Foundation" Sacha Barber. "Cinch." Karl Shifflett. "Ocean" Laurent Bugnion. "MVVM Light Toolkit" Lester Lobo. "CoreMVVM" Rob Eisenberg. "Caliburn" William e Kempf. "Onyx" Peter OHanlon. "GoldLight" jbe. "WPF Application Framework (WAF)" Paul Stovel : MacroModels

You might also like