Presentation is loading. Please wait.

Presentation is loading. Please wait.

Understanding the MVVM pattern Laurent Bugnion Senior User Experience Integrator IdentityMine

Similar presentations


Presentation on theme: "Understanding the MVVM pattern Laurent Bugnion Senior User Experience Integrator IdentityMine"— Presentation transcript:

1

2 Understanding the MVVM pattern Laurent Bugnion Senior User Experience Integrator IdentityMine

3 What is MVVM? A weird acronym Model – View – ViewModel « MVVM in a SLOOB with SLUT » Woven into WPF/SL Some confusion: MVVM is really just the pattern The rest are helpers, practices, etc

4 The MVC pattern ModelView Controller

5 The Passive View pattern ModelView Controller

6 The Presentation Model pattern ModelView Presentation Model (ViewModel) DataBinding

7 Blendability Testability, Maintainability, Blendability “The ability to be edited in Blend” (and Visual Studio designer…) Differentiate code in design and runtime Create design time data

8 Hello MVVM (and Hi Blend)

9 Bridging the gap View ViewModel DataBindingCommandsMessages Model

10 Bridging the gap View ViewModel View ViewModel View ViewModel Messages + callback

11 Commands “Point of entry” for a method” Can be data bound ICommand interface Execute method CanExecute method CanExecuteChanged event handler

12 Commands and RelayCommands

13 RelayCommands RelayCommand MyCommand = new RelayCommand( () =>..., () => true | false); RelayCommand MyGenericCommand = new RelayCommand ( p =>..., p => true | false);

14 Messaging Should be simple by default Possible to open filtered channels To a target Type (or an Interface) With a Token With various Messenger instances No constraints at all

15 Messaging

16 Messenger.Default.Register ( this, p => DoSomething(p)); Messenger.Default.Send (p);

17 MVVM Light Toolkit “Breaking the monotony” V3 released at MIX10 Keep it small Keep it simple

18 MVVM Light Libraries V3 ESSENTIALS RelayCommand Messenger ViewModelBase EXTRAS EventToCommand DispatcherHelper

19 MVVM Light Tools V3 Project templates (VS + Blend) Item templates (VS + Blend) Code snippets

20 MVVM Light Toolkit, Unity, Blendability

21 Flaws of MVVM Too much code needed INotifyPropertyChanged Commands Some operations are tricky (set focus…) Not applicable to ASP.NET, etc Message to community is not clear

22 Debunking the myths “No code in the code behind” “If you put code in the View's code-behind, the MVVM police will take your family away” “No need for converters” “MVVM is only suitable for big projects” “MVVM costs performance” “MVVM is complex / makes my head hurt”

23 Debunking the myths “I don’t need separation because I don’t have a designer” “You cannot use MVVM with other patterns” “MVVM will make you rich and attractive”

24 MVVM on the Windows Phone 7

25


Download ppt "Understanding the MVVM pattern Laurent Bugnion Senior User Experience Integrator IdentityMine"

Similar presentations


Ads by Google