Building testable Silverlight and WPF applications wih Caliburn Micro

Post on 13-Jan-2015

2.802 views 1 download

description

 

Transcript of Building testable Silverlight and WPF applications wih Caliburn Micro

© 2010 Aviva Solutions 10 april 2023

Testable Silverlight/WPF Apps

Dennis Doomen

With

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Model View-ViewModel

XAML (+C#) ViewModel

Model

ServiceAgent

    INotifyPropertyChanged

Loads

Events

{Binding}

CommandCall

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Asynchronity

Thread Marshaling

WCF Data Services

WCF, RIA or Data

Shell-View Life Cycle Mgmt

Untyped PropertyChanged

Inter-VM Communication

Bootstrapping

Command = Ugly Code

Interception

Hooking Views to VMs No IObservableCollection

Challenges

© 2010 Aviva Solutions 10 april 2023

Basic Example

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Solves Testability Bootstrapping Untyped PropertyChanged Thread Marshaling Hooking Views to VMs Command = Ugly Code

© 2010 Aviva Solutions 10 april 2023

Collection Example

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Solves Testability No IObservableCollection Command = Ugly Code

© 2010 Aviva Solutions 10 april 2023

Inversion of Control Example

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Solves Testability Hooking Views to VMs Command = Ugly Code

© 2010 Aviva Solutions 10 april 2023

Coroutine Example

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Solves Testability Asynchrony

© 2010 Aviva Solutions 10 april 2023

Screens and Conductors Example

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Solves Testability Hooking Views to VMs Shell-View Life Cycle Management

© 2010 Aviva Solutions 10 april 2023

Business Navigation Example

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Solves Testability Hooking Views to VMs Shell-View Life Cycle Management

© 2010 Aviva Solutions 10 april 2023

Event Aggregation Example

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Solves Testability Inter-View Model communication

© 2010 Aviva Solutions 10 april 2023

Action Filters Example

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

Solves Interception

© 2010 Aviva Solutions 10 april 2023Dennis Doomen

In summary Inter-VM Communication Untyped PropertyChanged Bootstrapping Thread Marshaling Interception WCF, RIA or Data Hooking Views to VMs No IObservableCollection Asynchronity Shell-View Life Cycle Mgmt WCF Data Services Command = Ugly Code

© 2010 Aviva Solutions 10 april 2023

Emaildennis.doomen@avivasolutions.nl

Twitter@ddoomen

Blogwww.dennisdoomen.net