29
@slodge MvvmCross Gitte Vermeiren @gittetitter proq.blogspot.com

Mvvm crossevent basics

  • Upload
    qframe

  • View
    2.780

  • Download
    0

Embed Size (px)

Citation preview

@slodge

MvvmCross

Gitte [email protected]

@slodge

@slodge

Can we do this?

Portable Class

LibrariesXamarin MvvmCross

@slodge

Portable Class Libraries

@slodge

@slodge

Profile 104• WPF – 4.5+• Windows Store (WinRT)• Windows Phone – 7.1+• Xamarin.Android• Xamarin.iOS

@slodge

Xamarin

@slodge

Xamarin for Android/iOS

Business Logic

UI Logic

WP iOS Droid Win8

Data Access

Business Logic

Service Interface

Service Consumption Local Data/Services

Xamarin

@slodge

Xamarin for Android/iOS

Code Completion for Native

APIs

Visual Studio Integration

Advanced Debugging

Support

Point and click UI design

@slodge

Xamarin for Android/iOS

@slodge

MvvmCross

@slodge

View

ViewM

odel

Model

get/set Propertiescall Commands

notify changessome messaging

Whatever C# you like …

… messages work well!

ViewView

ViewM

odelView

Model

ModelM

odel

Cross PlatformPlatform Specific

@slodge

Separation of Concerns

Designable (Blend)

More structured

code

TestableDatabinding

Code reuse

@slodge

Data Binding

@slodge

INotifyPropertyChanged

@slodge

Typical ViewModel Property

@slodge

One Way BindingPersonViewModel

FirstName

LastName

DateOfBirth

First Name

Jon

Last Name

Doe

Date of birth

12/07/1989

@slodge

UI Syntax

@slodge

Two Way BindingPersonViewModel

FirstName

LastName

DateOfBirth

First Name

Jon

Last Name

Doe

Date of birth

12/07/1989

@slodge

UI Syntax

@slodge

Interface Driven Development

@slodge

MyViewModel

Needs Location

Needs SQL

Needs Calculator

The Container

My TaxCalculator

Windows Phone Location

Inversion of Construction (Inversion of Control)

Windows Phone SQL

@slodge

MyViewModel

Needs Location

Needs SQL

Needs Calculator

The Container

My TaxCalculator

iOS Location

Inversion of Construction (Inversion of Control)

iOS SQL

@slodge

Mvx.Register<T>

The Container

(Mvx)

@slodge

Automatic Registration

@slodge

Mvx.Resolve<T>

@slodge

Mvx Construction• Constructor resolution

@slodge

Nuget packages

@slodge

TipCalc Demo