Caliburn.MicroOpinionated MVVM Framework<br />
Brief History of Caliburn.Micro<br />Created by Rob Eisenberg<br />Based on mature Caliburn project<br />Opens source<br /...
Caliburn.Micro Elevator Pitch<br />A better version of what nearly every WPF veteran has attempted to home-grow<br />Reduc...
Core Concepts<br />MVVM (Model-View-ViewModel)<br />Convention over Configuration<br />Actions<br />Event Aggregator (pub-...
Demo<br />WE WANT THE DEMO!<br />WE WANT THE DEMO!<br />WE WANT THE … CUP!<br />
Lifecycle<br /><ul><li>Application start up
Bootstrapper code is executed
ViewLocator.LocateForModel()
ViewModelBinder.Bind()
The rest of stuff happens</li></li></ul><li>Conventions = Magic<br />
Convention Over Configuration<br />Convention = Do More With Less Code<br />View Location & Composition<br />Property Bind...
Troubleshooting Magic<br />Common Issues With Conventions:<br />Misspellings<br />Data Templates<br />Troubleshooting Tech...
Data Binding<br />PropertyChangedBase<br />No strings when notifying about property change!<br />Lambda-based notification...
Actions<br />Allows to bind UI triggers to ViewModel methods<br />Allows for passing parameters<br />Parameters are type c...
Event Aggregator<br />Pub/Sub<br />Communication between ViewModels<br />Highly decoupled<br />
Upcoming SlideShare
Loading in …5
×

Caliburn micro

1,495 views
1,391 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,495
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Caliburn micro

  1. 1. Caliburn.MicroOpinionated MVVM Framework<br />
  2. 2. Brief History of Caliburn.Micro<br />Created by Rob Eisenberg<br />Based on mature Caliburn project<br />Opens source<br />Around 2,700 lines of code<br />Single dependency - System.Windows.Interactivity<br />Enterprise team is having fun learning it right now<br />
  3. 3. Caliburn.Micro Elevator Pitch<br />A better version of what nearly every WPF veteran has attempted to home-grow<br />Reduces the drudgery of property binding and commands <br />Simplifies building a deeply composed UI<br />Helps unify the programming models of WPF, Silverlight and Windows Phone 7<br />Asynchronous programming support<br />Small footprint & highly customizable<br />
  4. 4. Core Concepts<br />MVVM (Model-View-ViewModel)<br />Convention over Configuration<br />Actions<br />Event Aggregator (pub-sub)<br />Bootstrapper<br />Conductors and Screens<br />Coroutines<br />
  5. 5. Demo<br />WE WANT THE DEMO!<br />WE WANT THE DEMO!<br />WE WANT THE … CUP!<br />
  6. 6. Lifecycle<br /><ul><li>Application start up
  7. 7. Bootstrapper code is executed
  8. 8. ViewLocator.LocateForModel()
  9. 9. ViewModelBinder.Bind()
  10. 10. The rest of stuff happens</li></li></ul><li>Conventions = Magic<br />
  11. 11. Convention Over Configuration<br />Convention = Do More With Less Code<br />View Location & Composition<br />Property Binding<br />Content controls<br />Items controls<br />Action Binding<br />Configurable Conventions (Convention Manager)<br />
  12. 12. Troubleshooting Magic<br />Common Issues With Conventions:<br />Misspellings<br />Data Templates<br />Troubleshooting Techniques:<br />Logging<br />Refactoring with R#<br />
  13. 13. Data Binding<br />PropertyChangedBase<br />No strings when notifying about property change!<br />Lambda-based notifications<br />NotifyOfPropertyChange(() => PropertyName); <br />      <br />BindableCollection<br />ObservableCollection extension<br />Raises events on the UI thread<br />
  14. 14. Actions<br />Allows to bind UI triggers to ViewModel methods<br />Allows for passing parameters<br />Parameters are type converted to method’s signature<br />CanExecute guard is supported<br />Full design-time support in Blend<br />Support Coroutines<br />
  15. 15. Event Aggregator<br />Pub/Sub<br />Communication between ViewModels<br />Highly decoupled<br />
  16. 16. Screens & Conductors<br />State machine for UI composition<br />Screen has a lifecycle associated with it<br />Activation<br />Deactivation<br />Screen Conductor<br />Orchestrates screens<br />Enforces screen lifecycle<br />Graceful shutdown<br />
  17. 17. Coroutines<br />Asynchronous programming support<br />Utilizes iterators to yield results<br />
  18. 18. FIN<br />

×