deep dive mvvm laurent bugnion director, ux integration identitymine

19
DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine http://blog.galasoft.ch

Upload: cora-enix

Post on 15-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

DEEP DIVEMVVMLaurent BugnionDirector, UX IntegrationIdentityMine

http://blog.galasoft.ch

Page 2: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

LAST YEAR WE…

Page 3: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

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

AND THEN CAME THE QUESTIONS…

Page 5: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

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

© 2010 IdentityMine Inc. All Rights Reserved. 6Page:

Page 7: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

© 2010 IdentityMine Inc. All Rights Reserved. 7Page:

Page 8: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

DEMOConnecting to JSON

Page 9: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

© 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

© 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

© 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

DEMOBehaviours

Injecting View ServicesNavigation

Page 13: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

© 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

© 2011 IdentityMine Inc. All Rights Reserved. 14Page:

TESTING THE VIEWMODEL

ViewModel IDialogService

DialogService View

MockDialogServiceUnit Test

Page 16: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

DEMOUnit Testing ViewModels

Mocking Services

Page 17: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

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

Please fill out your evaluation forms…

Page 19: DEEP DIVE MVVM Laurent Bugnion Director, UX Integration IdentityMine

THANKS!