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.
Presentation on how to chat with PDF using ChatGPT code interpreter
MVVM for Modern Applications
1. MVVM for Modern App Dev
Jeremy Likness
Senior Consultant, Project Manager
Twitter: @JeremyLikness
Blog: http://csharperimage.jeremylikness.com/
consulting training debugging wintellect.com
2. 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.
3. Aspect is helping customer-centric organizations
deliver a next-generation customer experience
through software solutions that fully exploit
enterprise communications and collaboration
platforms with particular advantage to Microsoft-
centric organizations.
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 Production
consulting training debugging wintellect.com
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
• Questions
consulting training debugging wintellect.com
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 wintellect.com
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 messages.
consulting training debugging wintellect.com
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
• Etc.
consulting training debugging wintellect.com
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
• HTML5
consulting training debugging wintellect.com
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, etc.
consulting training debugging wintellect.com
12. What is MVVM
What a
Presentation Layer View!
The Interface
Don’t deal with
all of this
consulting training debugging wintellect.com
13. What is MVVM? The View Model
consulting training debugging wintellect.com
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 vocabulary.
consulting training debugging wintellect.com
15. 10 Reasons to Use MVVM
1.Designer/developer
workflow.
2.Unit testing.
consulting training debugging wintellect.com
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 complexity
consulting training debugging wintellect.com
18. demo
MVVM
consulting training debugging wintellect.com
19. Questions?
Jeremy Likness
Senior Consultant, Project Manager
Twitter: @JeremyLikness
Blog: http://csharperimage.jeremylikness.com/
consulting training debugging wintellect.com
Notas del editor
This is the first slide in your presentation!
An example demo slide. You can insert this slide with the New Slide button.