• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MVVM for Modern Applications
 

MVVM for Modern Applications

on

  • 1,299 views

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

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.

Statistics

Views

Total Views
1,299
Views on SlideShare
1,298
Embed Views
1

Actions

Likes
0
Downloads
34
Comments
0

1 Embed 1

http://www.slashdocs.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 MVVM for Modern Applications Presentation Transcript

  • MVVM for Modern App Dev Jeremy Likness Senior Consultant, Project Manager Twitter: @JeremyLikness Blog: http://csharperimage.jeremylikness.com/consulting training debugging wintellect.com
  • CodeStock is proudly partnered with: RecruitWise and Staff with Excellence - www.recruitwise.jobs 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.
  • 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.
  • 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 wintellect.com
  • 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 wintellect.com
  • What is MVVM?consulting training debugging wintellect.com
  • 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 wintellect.com
  • 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 messages.consulting training debugging wintellect.com
  • 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 • Etc.consulting training debugging wintellect.com
  • 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 wintellect.com
  • 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, etc.consulting training debugging wintellect.com
  • What is MVVM What aPresentation Layer View! The Interface Don’t deal with all of thisconsulting training debugging wintellect.com
  • What is MVVM? The View Modelconsulting training debugging wintellect.com
  • 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 vocabulary.consulting training debugging wintellect.com
  • 10 Reasons to Use MVVM 1.Designer/developer workflow. 2.Unit testing.consulting training debugging wintellect.com
  • 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 wintellect.com
  • 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 wintellect.com
  • demo MVVMconsulting training debugging wintellect.com
  • Questions? Jeremy Likness Senior Consultant, Project Manager Twitter: @JeremyLikness Blog: http://csharperimage.jeremylikness.com/consulting training debugging wintellect.com