building testable silverlight and wpf applications wih caliburn micro
DESCRIPTION
TRANSCRIPT
© 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
Background InformationCaliburn Micro, Presentation Patterns
Example Code, FrameworksThe CQRS Kitchen, Rhino Mocks, Fluent Assertions