SlideShare una empresa de Scribd logo
1 de 19
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 collaboration
platforms 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 Production


consulting    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
 • Questions



consulting   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
      • HTML5



consulting   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 a
Presentation Layer                  View!




                                              The Interface




                                             Don’t deal with
                                               all of this




consulting   training   debugging                 wintellect.com
What is MVVM? The View Model




consulting   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 UI


consulting   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 complexity


consulting   training   debugging         wintellect.com
demo
   MVVM




consulting   training   debugging   wintellect.com
Questions?




                            Jeremy Likness
                            Senior Consultant, Project Manager
                            Twitter: @JeremyLikness
                            Blog: http://csharperimage.jeremylikness.com/



consulting   training   debugging                                           wintellect.com

Más contenido relacionado

Similar a MVVM for Modern Applications

Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesQamar Abbas
 
Building databound JavaScript apps with Knockoutjs
Building databound JavaScript apps with KnockoutjsBuilding databound JavaScript apps with Knockoutjs
Building databound JavaScript apps with KnockoutjsNish Anil
 
jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture Jiby John
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesUlrich Krause
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCUlrich Krause
 
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...OpenWhisk
 
A Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMA Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMChris Bannon
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: AndroidJitendra Kumar
 
Models used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMModels used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMAndrei Popa
 
A Brief Note On Asp.Net And Cloud Computing Essay
A Brief Note On Asp.Net And Cloud Computing EssayA Brief Note On Asp.Net And Cloud Computing Essay
A Brief Note On Asp.Net And Cloud Computing EssayLanate Drummond
 
Design Pattern - MVC, MVP and MVVM
Design Pattern - MVC, MVP and MVVMDesign Pattern - MVC, MVP and MVVM
Design Pattern - MVC, MVP and MVVMMudasir Qazi
 
Choosing the Right HTML5 Framework to Build your Mobile Web Application White...
Choosing the Right HTML5 Framework to Build your Mobile Web Application White...Choosing the Right HTML5 Framework to Build your Mobile Web Application White...
Choosing the Right HTML5 Framework to Build your Mobile Web Application White...RapidValue
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsMatteo Emili
 
A Smooth Transition to HTML5
A Smooth Transition to HTML5A Smooth Transition to HTML5
A Smooth Transition to HTML5Chris Bannon
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobilenaral
 

Similar a MVVM for Modern Applications (20)

Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelines
 
Training: MVVM Pattern
Training: MVVM PatternTraining: MVVM Pattern
Training: MVVM Pattern
 
Building databound JavaScript apps with Knockoutjs
Building databound JavaScript apps with KnockoutjsBuilding databound JavaScript apps with Knockoutjs
Building databound JavaScript apps with Knockoutjs
 
jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPages
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
 
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
 
IBM Bluemix Openwhisk
IBM Bluemix OpenwhiskIBM Bluemix Openwhisk
IBM Bluemix Openwhisk
 
A Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMA Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVM
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: Android
 
Models used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMModels used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVM
 
MVC
MVCMVC
MVC
 
MVC.pptx
MVC.pptxMVC.pptx
MVC.pptx
 
A Brief Note On Asp.Net And Cloud Computing Essay
A Brief Note On Asp.Net And Cloud Computing EssayA Brief Note On Asp.Net And Cloud Computing Essay
A Brief Note On Asp.Net And Cloud Computing Essay
 
Software Engineering 2014
Software Engineering 2014Software Engineering 2014
Software Engineering 2014
 
Design Pattern - MVC, MVP and MVVM
Design Pattern - MVC, MVP and MVVMDesign Pattern - MVC, MVP and MVVM
Design Pattern - MVC, MVP and MVVM
 
Choosing the Right HTML5 Framework to Build your Mobile Web Application White...
Choosing the Right HTML5 Framework to Build your Mobile Web Application White...Choosing the Right HTML5 Framework to Build your Mobile Web Application White...
Choosing the Right HTML5 Framework to Build your Mobile Web Application White...
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOps
 
A Smooth Transition to HTML5
A Smooth Transition to HTML5A Smooth Transition to HTML5
A Smooth Transition to HTML5
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
 

Último

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
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
  • 6. What is MVVM? 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
  • 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 UI 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

  1. This is the first slide in your presentation!
  2. An example demo slide. You can insert this slide with the New Slide button.