MVVM for Modern Applications


Published on

The Model-View-ViewModel pattern was introduced for Windows Presentation Foundation applications (WPF) and later exploded in popularity with the introduction of various frameworks to support development on additional platforms including Silverlight and Windows Phone. The release of KnockoutJS the pattern has extended MVVM to the web and exposed it to the JavaScript stack, while the new Windows 8 Metro platform embraces the same XAML and C#-based technologies that WPF and Silverlight pioneered. In this talk, Jeremy Likness takes a deep dive into the history of the pattern, describes its benefits, and discusses how it relates to modern application development. Is it a bad fit for web applications? Does it belong in the Metro space? Learn the benefits and trade-offs to help decide if this pattern makes sense in your projects moving forward.

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • This is the first slide in your presentation!
  • An example demo slide. You can insert this slide with the New Slide button.
  • MVVM for Modern Applications

    1. 1. MVVM for Modern App Dev Jeremy Likness Senior Consultant, Project Manager Twitter: @JeremyLikness Blog: training debugging
    2. 2. CodeStock is proudly partnered with: RecruitWise and Staff with Excellence - Send instant feedback on this session via Twitter: Send a direct message with the room number to @CodeStock d codestock 503 This session is great! For more information on sending feedback using Twitter while at CodeStock, please see the “CodeStock README” in your CodeStock guide.
    3. 3. Aspect is helping customer-centric organizations deliver a next-generation customer experience through software solutions that fully exploit enterprise communications and collaborationplatforms with particular advantage to Microsoft- centric organizations.
    4. 4. what we do consulting training design debugging who we are Founded by top experts on Microsoft – Jeffrey Richter, Jeff Prosise, and John Robbins – we pull out all the stops to help our customers achieve their goals through advanced software-based consulting and training solutions. how we do it Training • On-site instructor-led training Consulting & Debugging • Virtual instructor-led training • Architecture, analysis, and design services • Devscovery conferences • Full lifecycle custom software development • Content creation Design • Project management • User Experience Design • Debugging & performance tuning • Visual & Content Design • Video & Animation Productionconsulting training debugging
    5. 5. Agenda • What is MVVM? • Why use MVVM? • 10 Reasons to Use MVVM • MVVM Frameworks • What is the Cost? • Demo: Portable Library • Demo: Web Applications • Questionsconsulting training debugging
    6. 6. What is MVVM?consulting training debugging
    7. 7. What is MVVM? • Do you ever have to start work on an application before the design team is ready? • Do you make updates in parallel with the design team? • Do you unit test your solutions? • Do you reuse code and components both within and across projects? • Do you ever have to change the user interface, and wouldn’t it be nice to do it without having to hit your code as well? • MVVM solves these types of problems!consulting training debugging
    8. 8. What is MVVM? To any given Model there is attached one or interface between An Editor is an more Views, each a user and one or more views. It View being capable of Something that is of interest to the provides the user with a showing one or more pictorial user. suitable be concrete, like a for It could command system, representations of the Model on the • Thing-Model-View-Editor exampleor an on house in the form of menus that integrated A Model could activehardcopy. A screen and is an be abstract, like a representation circuit. Itmay change dynamically • 12 May 1979 – Trygve Reenskaug View is also able to perform such new idea or to the in the form of It of an abstraction opinions about a operations in a computingcontext. accordingupon the Model that is data current paper. It could be a whole, the provides the Views with reasonabely associated system. like a computer, or a part, like and necessarythat View. a Thing with coordination circuit element. command training debugging
    9. 9. What is MVVM? The Model • Domain object • Application solution • Data/Information and/or Behavior • Possible persistence information (id, GUID, etc.) • Separate from “how it got there” • Let’s be specific: • C# • VB • JavaScript • training debugging
    10. 10. What is MVVM? The View • What the user “sees” / experiences • User-friendly format for presentation • Multiple inputs (gestures) • Behaviors • Events • Data-bindings • Let’s be specific: • XAML • HTML5consulting training debugging
    11. 11. What is MVVM? The View Model • The “controller” – holds state • Doesn’t know about the view • Exposes methods and commands • Coordinates with services • “Owns” models, and knows how to retrieve/update them • Might be used in multiple views • Can communicate with other view models • Let’s be specific: • C# • JavaScript, training debugging
    12. 12. What is MVVM What aPresentation Layer View! The Interface Don’t deal with all of thisconsulting training debugging
    13. 13. What is MVVM? The View Modelconsulting training debugging
    14. 14. 10 Reasons to Use MVVM 1. Separation of concerns/de-coupling. 2. Designer/developer workflow. 3. Unit testing. 4. Data-binding. 5. Code reuse. 6. Modularity. 7. Refactoring containment. 8. Extensibility. 9. Tools support (Windows Phone 7, MVVM Light, etc.) 10.Pattern training debugging
    15. 15. 10 Reasons to Use MVVM 1.Designer/developer workflow. 2.Unit training debugging
    16. 16. MVVM Frameworks 1. PRISM (Guidance/Quickstart) 2. MVVM Light 3. Jounce 4. Caliburn / Caliburn.Micro 5. Cinch 6. nRoute 7. Catel 8. Knockout.JS 9. Kendo UIconsulting training debugging
    17. 17. How Much Does it Cost? •Learning Curve (Developers) •Bigger down payment (architecture, infrastructure) - Low interest rates and minimum monthly payments! •Visibility (de-coupling can backfire) •Unnecessary complexityconsulting training debugging
    18. 18. demo MVVMconsulting training debugging
    19. 19. Questions? Jeremy Likness Senior Consultant, Project Manager Twitter: @JeremyLikness Blog: training debugging