ui application logic out of the box approach view viewmodel model model-view-viewmodel (mvvm)

25

Upload: karissa-terrill

Post on 15-Dec-2015

231 views

Category:

Documents


1 download

TRANSCRIPT

Building an MVVM-Based Architecture That WorksChris [email protected]@ZeroKoll

DEV-B304

Who is that guy?

Welcome to the messed up world that is my head!

Shu Ha Ri”first learn, then detach, and finally transcend”

Architecture is the differentiator

Simplify development or maintenance

UI

Application Logic

Out of the box approach

View

ViewModel

Model

Model-View-ViewModel (MVVM)

View

ViewModel

Services

Model

View

ViewModel

Services

ModelPlatform-specific

functionality

Portable Class LibraryForcing separation / guiding architecture

Portable/Common

Platform specific

View

ViewModel

Services

ModelPlatform-specific

functionality

Service Implementation

Platform specific

Portable/Common

To framework or not to frameworkNuGet, BYO or maybe “plain vanilla”

Dependency Inversion

Options for DISingletonFactoryService LocatorDependency Injection

VM <> V CommunicationCoupling, interfaces or bindings

VM <> VM CommunicationEvents, callbacks or event aggregator

AsynchronocityYes…you have to go there…

Action<T> || async/awaitFlexible and easy to use || Simple, easy and integratedManual threading || SimplicityBackwards compatible || NuGet Microsoft.Bcl.Async

Useful platform abstractionsNavigationService, Dispatcher, Application

Questions?”There is no such thing as a stupid question”

[email protected]@ZeroKollhttp://chris.59north.com/

msdn

Resources for Developers

http://microsoft.com/msdn

Learning

Microsoft Certification & Training Resources

www.microsoft.com/learning

TechNet

Resources

Sessions on Demand

http://channel9.msdn.com/Events/TechEd

Resources for IT Professionals

http://microsoft.com/technet

Evaluate this session

Scan this QR code to evaluate this session.

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.