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