1 / 22

Understanding the MVVM pattern

Understanding the MVVM pattern. Laurent Bugnion Senior User Experience Integrator IdentityMine http://[www|blog].galasoft.ch http://www.identitymine.com. What is MVVM?. A weird acronym Model – View – ViewModel « MVVM in a SLOOB with SLUT » Woven into WPF/SL Some confusion:

lily
Download Presentation

Understanding the MVVM pattern

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Understanding the MVVM pattern Laurent Bugnion Senior User Experience Integrator IdentityMine http://[www|blog].galasoft.chhttp://www.identitymine.com

  2. 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

  3. The MVC pattern Model View Controller

  4. The Passive View pattern Model View Controller

  5. The Presentation Model pattern Model View DataBinding Presentation Model (ViewModel)

  6. 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

  7. Demo Hello MVVM (and Hi Blend)

  8. Bridging the gap View DataBinding Commands Messages ViewModel Model

  9. Bridging the gap View View ViewModel Messages ViewModel View Messages + callback ViewModel

  10. Commands “Point of entry” for a method Can be data bound ICommand interface • Execute method • CanExecute method • CanExecuteChanged event

  11. Messaging Should be simple by default Possible to open filtered channels • To a target Type (or an Interface) • With a Token No constraints at all

  12. Demo Commands and RelayCommands, Messaging

  13. MVVM Light Toolkit “Breaking the monotony” http://www.galasoft.ch/mvvm/getstarted http://mvvmlight.codeplex.com V3 SP1 released with phone support Keep it small Keep it simple

  14. MVVM Light Toolkit ESSENTIALS • RelayCommand • Messenger • ViewModelBase EXTRAS • EventToCommand • DispatcherHelper

  15. MVVM Light Toolkit Project templates (VS + Blend) Item templates (VS + Blend) Code snippets

  16. Demo MVVM Light, Unity, Blendability

  17. 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

  18. Debunk 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”

  19. Debunk 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”

  20. Further information http://blog.galasoft.ch http://www.galasoft.ch/mvvm/getstarted http://tinyurl.com/mvvmexplained Twitter: @LBugnion

More Related