Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How I Accidentally Discovered MVVM

Avatar for Bradford Bradford
October 07, 2014

How I Accidentally Discovered MVVM

Slides for my talk, given at 360iDevMin in Greeneville, SC in October of 2014

Avatar for Bradford

Bradford

October 07, 2014

Other Decks in Programming

Transcript

  1. How I Accidentally Discovered MVVM No frameworks, no tricks, just

    good architectural decisions, come to honestly. 360iDevMin, October 2014
  2. "The Model View ViewModel (MVVM) is an architectural pattern used

    in software engineering that originated from Microsoft as a specialization of the Presentation Model design pattern introduced by Martin Fowler. Largely based on the model–view–controller pattern (MVC), MVVM is a specific implementation targeted at UI development platforms which support the event-driven programming in Windows Presentation Foundation (WPF) and Silverlight on the .NET platforms using XAML and .NET languages. Technically different, but similar, Presentation Model design patterns are available in HTML5 through AngularJS, KnockoutJS, Ext JS, Vue.js, and for Java the ZK framework (Model-View-Binder)."
  3. "The Model View ViewModel (MVVM) is an architectural pattern used

    in software engineering that originated from Microsoft as a specialization of the Presentation Model design pattern introduced by Martin Fowler. Largely based on the model–view–controller pattern (MVC), MVVM is a specific implementation targeted at UI development platforms which support the event-driven programming in Windows Presentation Foundation (WPF) and Silverlight on the .NET platforms using XAML and .NET languages. Technically different, but similar, Presentation Model design patterns are available in HTML5 through AngularJS, KnockoutJS, Ext JS, Vue.js, and for Java the ZK framework (Model-View-Binder)."
  4. "The Model View ViewModel (MVVM) is an architectural pattern used

    in software engineering that originated from Microsoft as a specialization of the Presentation Model design pattern introduced by Martin Fowler. Largely based on the model–view–controller pattern (MVC), MVVM is a specific implementation targeted at UI development platforms which support the event-driven programming in Windows Presentation Foundation (WPF) and Silverlight on the .NET platforms using XAML and .NET languages. Technically different, but similar, Presentation Model design patterns are available in HTML5 through AngularJS, KnockoutJS, Ext JS, Vue.js, and for Java the ZK framework (Model-View-Binder)."
  5. "The Model View ViewModel (MVVM) is an architectural pattern used

    in software engineering that originated from Microsoft as a specialization of the Presentation Model design pattern introduced by Martin Fowler. Largely based on the model–view–controller pattern (MVC), MVVM is a specific implementation targeted at UI development platforms which support the event-driven programming in Windows Presentation Foundation (WPF) and Silverlight on the .NET platforms using XAML and .NET languages. Technically different, but similar, Presentation Model design patterns are available in HTML5 through AngularJS, KnockoutJS, Ext JS, Vue.js, and for Java the ZK framework (Model-View-Binder)."
  6. "The Model View ViewModel (MVVM) is an architectural pattern used

    in software engineering that originated from Microsoft as a specialization of the Presentation Model design pattern introduced by Martin Fowler. Largely based on the model–view–controller pattern (MVC), MVVM is a specific implementation targeted at UI development platforms which support the event-driven programming in Windows Presentation Foundation (WPF) and Silverlight on the .NET platforms using XAML and .NET languages. Technically different, but similar, Presentation Model design patterns are available in HTML5 through AngularJS, KnockoutJS, Ext JS, Vue.js, and for Java the ZK framework (Model-View-Binder)."
  7. “I need to fetch a single file over HTTP, and

    _____ is the best solution.”
  8. “…an augmented version of MVC where we formally connect the

    view and controller, and move presentation logic out of the controller and into a new object, the view model.” Ash Furrow, June 2014
  9. MVVM View Model • Easily Tested • Easily Composed •

    Easily Refactored • Easily Replaced
  10. Example Table VC Table Cell Table Cell Table Cell View

    Model View Model View Model View Model
  11. Example Table VC Table Cell Table Cell Table Cell View

    Model View Model View Model View Model
  12. What I Learned About MVVM 1. Works Well With MVC.

    2. Naturally Pairs With View Controllers.
  13. What I Learned About MVVM 1. Works Well With MVC.

    2. Naturally Pairs With View Controllers. 3. Allows Better Refactoring and Reuse.
  14. What I Learned About MVVM 1. Works Well With MVC.

    2. Naturally Pairs With View Controllers. 3. Allows Better Refactoring and Reuse. 4. Helps Avoid Massive View Controllers.
  15. What I Learned About MVVM 1. Works Well With MVC.

    2. Naturally Pairs With View Controllers. 3. Allows Better Refactoring and Reuse. 4. Helps Avoid Massive View Controllers. 5. Unit Testable.
  16. What I Learned About Cats 1. Avoid Massive View Controllers.

    2. Understand Your Problem and Look for a Solution to THAT Problem.
  17. What I Learned About Cats 1. Avoid Massive View Controllers.

    2. Understand Your Problem and Look for a Solution to THAT Problem. 3. (Sometimes That Solution is a Bandwagon).
  18. What I Learned About Cats 1. Avoid Massive View Controllers.

    2. Understand Your Problem and Look for a Solution to THAT Problem. 3. (Sometimes That Solution is a Bandwagon). 4. Good Architecture is Future-Proof.