![Page 1: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/1.jpg)
DEEP DIVEMVVMLaurent BugnionDirector, UX IntegrationIdentityMine
http://blog.galasoft.ch
![Page 2: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/2.jpg)
LAST YEAR WE…
![Page 3: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/3.jpg)
3Page:
© 2011 IdentityMine Inc. All Rights Reserved.
1. Talked about the history of MVVM
2. Cleared some confusion
3. Refactored a non-MVVM application
4. Made it Blendable
5. Talked about additional components
6. Did a more complex demo
![Page 4: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/4.jpg)
AND THEN CAME THE QUESTIONS…
![Page 5: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/5.jpg)
5Page:
© 2011 IdentityMine Inc. All Rights Reserved.
Q• How do you avoid
redundancy?
• How do you start animations?
• How do you show dialogs?
• How do you do navigation?
• How do you handle multiple VMs?
• How do you test your VMs?
![Page 6: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/6.jpg)
© 2010 IdentityMine Inc. All Rights Reserved. 6Page:
![Page 7: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/7.jpg)
© 2010 IdentityMine Inc. All Rights Reserved. 7Page:
![Page 8: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/8.jpg)
DEMOConnecting to JSON
![Page 9: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/9.jpg)
© 2010 IdentityMine Inc. All Rights Reserved. 9Page:
VIEWMODEL VIEW
ViewModel View
• Complicates the testing, hard coupling
• Hard to design and tweak
MessageBoxAnimationsNavigation
![Page 10: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/10.jpg)
© 2011 IdentityMine Inc. All Rights Reserved. 10Page:
VIEWMODEL VIEW
BehaviourBinding
• Loose coupling, more flexibility
• Behavior is highly Blendable
ViewModel View
![Page 11: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/11.jpg)
© 2011 IdentityMine Inc. All Rights Reserved. 11Page:
INJECTING VIEW SERVICES
ViewModel IDialogService
DialogService View
injection
INavigationService
injection
actionNavigationService
![Page 12: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/12.jpg)
DEMOBehaviours
Injecting View ServicesNavigation
![Page 13: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/13.jpg)
© 2011 IdentityMine Inc. All Rights Reserved. 13Page:
INJECTING VIEW SERVICES
ViewModel IDialogService
DialogService View
injection
INavigationService
injection
actionNavigationService
![Page 14: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/14.jpg)
© 2011 IdentityMine Inc. All Rights Reserved. 14Page:
TESTING THE VIEWMODEL
ViewModel IDialogService
DialogService View
MockDialogServiceUnit Test
![Page 15: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/15.jpg)
© 2011 IdentityMine Inc. All Rights Reserved. 15Page:
TESTING THE VIEWMODEL
Unit test on WP7 cheat sheet:http://www.smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone-7
![Page 16: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/16.jpg)
DEMOUnit Testing ViewModels
Mocking Services
![Page 17: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/17.jpg)
FURTHER INFORMATIONhttp://blog.galasoft.chhttp://www.galasoft.ch/mvvm/http://mvvmlight.codeplex.comTwitter: @LBugnion #deepdivemvvm
![Page 18: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/18.jpg)
Please fill out your evaluation forms…
![Page 19: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine](https://reader030.vdocuments.site/reader030/viewer/2022032517/56649c9a5503460f94957089/html5/thumbnails/19.jpg)
THANKS!