Caliburn.Microan open source micro-framework for WPF, Silverlight and Windows Phone  7Presented by Bryan HunterPartner , Software Engineer Firefly Logic , Inc.Twitterhash tagsTweeps#devlink 	#geeksocial	@bryan_hunter  (your presenter)#caliburn	#FTW		@EisenbergEffect (the creator of Caliburn)
Brief History of Caliburn.MicroI use it. I’m a fanBased on the mature Caliburn projectCreated by Rob EisenbergGrew from Rob’s MIX10 talk “Build Your Own MVVM Framework”Around 2,000 lines of codeMade public July 2010Now the mainline
Caliburn.Micro Elevator SpeechA better version of what nearly every WPF veteran has attempted to home-growReduces the drudgery of property binding and commands Simplifies building a deeply composed UIHelps unify the programming models of WPF,  Silverlight and Windows Phone 7 Simplifies asynchronous programmingBuilt in Tombstone & Resurrection for WP7Small enough to grok and to “own”
Important TermsMVVM (Model-View-ViewModel)Convention over ConfigurationEvent Aggregator (pub-sub)CoroutinesBootstrapper
The GameLibrary Demo Run the demo fool
The GameLibrary Demo Wow that was fun!Rob’s “Game Library” sample from “Build you won MVVM Framework” talk was the inspiration for Caliburn.Micro. After Caliburn.Micro  was made public Marco Amendola ported the Game Library sample to Caliburn.Micro.
The lifecycleApp starts up
The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>public class ShellViewModel{   public void Back() {…}   public IScreenActiveScreen   { get; set; }   …}
The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ViewLocator.LocateForModel finds ShellView<ContentControl x:Name=“ActiveScreen”/>public class ShellViewModel{   public void Back() {…}   public IScreenActiveScreen   { get; set; }   …}
The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ViewLocator.LocateForModel finds ShellView<ContentControl x:Name=“ActiveScreen”/>ViewModelBinder.Bind()public class ShellViewModel{   public void Back() {…}   public IScreenActiveScreen   { get; set; }   …}
The lifecycleApp starts upNews up Bootstrapper<ShellViewModel><ContentControl x:Name=“ActiveScreen”/>ViewLocator.LocateForModel finds ShellViewViewModelBinder.Bind()
The lifecycleApp starts upNews up Bootstrapper<ShellViewModel><ContentControl x:Name=“ActiveScreen”/>ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds ShellViewViewModelBinder.Bind()public class SearchViewModel{   public string SearchText   { get; set; }   public void AddGame {…}   public void Search {…}   …}
The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds ShellViewViewLocator.LocateForModel finds SearchViewViewModelBinder.Bind()public class SearchViewModel{   public string SearchText   { get; set; }   public void AddGame {…}   public void Search {…}   …}
The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds ShellViewViewLocator.LocateForModel finds SearchViewViewModelBinder.Bind()ViewModelBinder.Bind()public class SearchViewModel{   public string SearchText   { get; set; }   public void AddGame {…}   public void Search {…}   …}
The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds ShellViewViewLocator.LocateForModel finds SearchViewViewModelBinder.Bind()ViewModelBinder.Bind()
The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ViewLocator.LocateForModel finds ShellViewViewModelBinder.Bind()ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds SearchViewViewModelBinder.Bind()and so on, and so on, and so on…
The Code for the Demo BootstrapperConvention over ConfigView Location and compositionViewModelBinder (Property Binding & Action Binding)Conductors and ScreenCoroutines
Wrapping upHope this was enough to get you rollingCaliburn.Micro is on Codeplexhttp://caliburnmicro.codeplex.comThese slides and the code will be athttp://codeswamp.comPlease fill out the your session evals
Big ThanksRob Eisenberg has stuck with it for three years and has built a great frameworkMarco Amendola  ported the GameLibrary to Caliburn.Microhttp://marcoamendola.wordpress.com
My Contact InfoBryan HunterPartner, Software EngineerFirefly Logic, Inc.1000 Main Street, Suite 201Nashville, TN 37206Twitter: @bryan_hunterBlog: codeswamp.comEmail: bryan.hunter@fireflylogic.com

More Related Content

PDF
Bootiful Development with Spring Boot and React - Richmond JUG 2018
PDF
Meteor presentation
PDF
Microservices for the Masses with Spring Boot, JHipster, and JWT - Devoxx UK...
PDF
20150415 Something About Meteor
PDF
Microservices for the Masses with Spring Boot, JHipster, and JWT - J-Spring 2017
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
PDF
Bootiful Development with Spring Boot and React - SpringOne 2017
PDF
Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - Richmond JUG 2018
Meteor presentation
Microservices for the Masses with Spring Boot, JHipster, and JWT - Devoxx UK...
20150415 Something About Meteor
Microservices for the Masses with Spring Boot, JHipster, and JWT - J-Spring 2017
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - RWX 2017

What's hot (20)

PDF
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
PDF
A realtime infrastructure for Android apps: Firebase may be what you need..an...
PDF
Continuous Deploy
PDF
Secrets mvc-diagram
PDF
Secrets app presentation
PDF
Get Hip with JHipster - GIDS 2019
PDF
What's New in JHipsterLand - Devoxx Poland 2017
PDF
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
PDF
Orchestrating Microservices
PDF
Front End Development for Back End Developers - Devoxx UK 2017
PDF
Microservices for the Masses with Spring Boot, JHipster and OAuth - GIDS 2019
PDF
Spring IO '15 - Developing microservices, Spring Boot or Grails?
PPTX
Building Event Driven API Services Using Webhooks
PDF
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
PDF
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
PDF
Front End Development for Back End Developers - UberConf 2017
PDF
Seven Simple Reasons to Use AppFuse
PDF
From Monolith to K8s - Spring One 2020
PPTX
If Hemingway Wrote JavaDocs
PDF
How to Win at UI Development in the World of Microservices - THAT Conference ...
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
A realtime infrastructure for Android apps: Firebase may be what you need..an...
Continuous Deploy
Secrets mvc-diagram
Secrets app presentation
Get Hip with JHipster - GIDS 2019
What's New in JHipsterLand - Devoxx Poland 2017
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Orchestrating Microservices
Front End Development for Back End Developers - Devoxx UK 2017
Microservices for the Masses with Spring Boot, JHipster and OAuth - GIDS 2019
Spring IO '15 - Developing microservices, Spring Boot or Grails?
Building Event Driven API Services Using Webhooks
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Front End Development for Back End Developers - UberConf 2017
Seven Simple Reasons to Use AppFuse
From Monolith to K8s - Spring One 2020
If Hemingway Wrote JavaDocs
How to Win at UI Development in the World of Microservices - THAT Conference ...
Ad

Similar to Caliburn.Micro (20)

PPT
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
PPTX
Caliburn micro
PPTX
Getting started with caliburn.micro and windows phone 7
PPTX
Caliburn.micro
PDF
Wpf Introduction
PDF
XAML Development with Xamarin - Jesse Liberty | FalafelCON 2014
PPTX
Building xamarin.forms apps with prism and mvvm
PDF
Sharing up to 80% code for iOS, Android, and Windows platforms, a Retail App ...
PPTX
Developing on Windows 8
PDF
Real World Windows Phone Development
PPTX
Applied MVVM in Windows 8 apps: not your typical MVVM session!
PPTX
Windows Phone 7 and Silverlight
PPT
WPF Windows Presentation Foundation A detailed overview Version1.2
PPTX
Silverlight 5 whats new overview
PDF
MvvmCross Seminar
PDF
MvvmCross Introduction
PPTX
02 wp7 building silverlight applications
PPTX
Windows Phone 7 Silverlight MVVM App the Test-Driven
PPTX
Presentation - Windows App Development - II - Mr. Chandan Gupta
PPTX
Advanced MVVM in Windows 8
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn micro
Getting started with caliburn.micro and windows phone 7
Caliburn.micro
Wpf Introduction
XAML Development with Xamarin - Jesse Liberty | FalafelCON 2014
Building xamarin.forms apps with prism and mvvm
Sharing up to 80% code for iOS, Android, and Windows platforms, a Retail App ...
Developing on Windows 8
Real World Windows Phone Development
Applied MVVM in Windows 8 apps: not your typical MVVM session!
Windows Phone 7 and Silverlight
WPF Windows Presentation Foundation A detailed overview Version1.2
Silverlight 5 whats new overview
MvvmCross Seminar
MvvmCross Introduction
02 wp7 building silverlight applications
Windows Phone 7 Silverlight MVVM App the Test-Driven
Presentation - Windows App Development - II - Mr. Chandan Gupta
Advanced MVVM in Windows 8
Ad

Recently uploaded (20)

PDF
Hindi spoken digit analysis for native and non-native speakers
DOCX
search engine optimization ppt fir known well about this
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
CloudStack 4.21: First Look Webinar slides
PDF
DP Operators-handbook-extract for the Mautical Institute
PPT
What is a Computer? Input Devices /output devices
PPTX
Tartificialntelligence_presentation.pptx
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
STKI Israel Market Study 2025 version august
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Five Habits of High-Impact Board Members
PDF
Hybrid model detection and classification of lung cancer
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPT
Geologic Time for studying geology for geologist
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
A novel scalable deep ensemble learning framework for big data classification...
Hindi spoken digit analysis for native and non-native speakers
search engine optimization ppt fir known well about this
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
sustainability-14-14877-v2.pddhzftheheeeee
1 - Historical Antecedents, Social Consideration.pdf
CloudStack 4.21: First Look Webinar slides
DP Operators-handbook-extract for the Mautical Institute
What is a Computer? Input Devices /output devices
Tartificialntelligence_presentation.pptx
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
STKI Israel Market Study 2025 version august
Web Crawler for Trend Tracking Gen Z Insights.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Five Habits of High-Impact Board Members
Hybrid model detection and classification of lung cancer
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Geologic Time for studying geology for geologist
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
A novel scalable deep ensemble learning framework for big data classification...

Caliburn.Micro

  • 1. Caliburn.Microan open source micro-framework for WPF, Silverlight and Windows Phone 7Presented by Bryan HunterPartner , Software Engineer Firefly Logic , Inc.Twitterhash tagsTweeps#devlink #geeksocial @bryan_hunter (your presenter)#caliburn #FTW @EisenbergEffect (the creator of Caliburn)
  • 2. Brief History of Caliburn.MicroI use it. I’m a fanBased on the mature Caliburn projectCreated by Rob EisenbergGrew from Rob’s MIX10 talk “Build Your Own MVVM Framework”Around 2,000 lines of codeMade public July 2010Now the mainline
  • 3. Caliburn.Micro Elevator SpeechA better version of what nearly every WPF veteran has attempted to home-growReduces the drudgery of property binding and commands Simplifies building a deeply composed UIHelps unify the programming models of WPF, Silverlight and Windows Phone 7 Simplifies asynchronous programmingBuilt in Tombstone & Resurrection for WP7Small enough to grok and to “own”
  • 4. Important TermsMVVM (Model-View-ViewModel)Convention over ConfigurationEvent Aggregator (pub-sub)CoroutinesBootstrapper
  • 5. The GameLibrary Demo Run the demo fool
  • 6. The GameLibrary Demo Wow that was fun!Rob’s “Game Library” sample from “Build you won MVVM Framework” talk was the inspiration for Caliburn.Micro. After Caliburn.Micro was made public Marco Amendola ported the Game Library sample to Caliburn.Micro.
  • 8. The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>public class ShellViewModel{ public void Back() {…} public IScreenActiveScreen { get; set; } …}
  • 9. The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ViewLocator.LocateForModel finds ShellView<ContentControl x:Name=“ActiveScreen”/>public class ShellViewModel{ public void Back() {…} public IScreenActiveScreen { get; set; } …}
  • 10. The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ViewLocator.LocateForModel finds ShellView<ContentControl x:Name=“ActiveScreen”/>ViewModelBinder.Bind()public class ShellViewModel{ public void Back() {…} public IScreenActiveScreen { get; set; } …}
  • 11. The lifecycleApp starts upNews up Bootstrapper<ShellViewModel><ContentControl x:Name=“ActiveScreen”/>ViewLocator.LocateForModel finds ShellViewViewModelBinder.Bind()
  • 12. The lifecycleApp starts upNews up Bootstrapper<ShellViewModel><ContentControl x:Name=“ActiveScreen”/>ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds ShellViewViewModelBinder.Bind()public class SearchViewModel{ public string SearchText { get; set; } public void AddGame {…} public void Search {…} …}
  • 13. The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds ShellViewViewLocator.LocateForModel finds SearchViewViewModelBinder.Bind()public class SearchViewModel{ public string SearchText { get; set; } public void AddGame {…} public void Search {…} …}
  • 14. The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds ShellViewViewLocator.LocateForModel finds SearchViewViewModelBinder.Bind()ViewModelBinder.Bind()public class SearchViewModel{ public string SearchText { get; set; } public void AddGame {…} public void Search {…} …}
  • 15. The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds ShellViewViewLocator.LocateForModel finds SearchViewViewModelBinder.Bind()ViewModelBinder.Bind()
  • 16. The lifecycleApp starts upNews up Bootstrapper<ShellViewModel>ViewLocator.LocateForModel finds ShellViewViewModelBinder.Bind()ActiveScreen set to SearchViewModelViewLocator.LocateForModel finds SearchViewViewModelBinder.Bind()and so on, and so on, and so on…
  • 17. The Code for the Demo BootstrapperConvention over ConfigView Location and compositionViewModelBinder (Property Binding & Action Binding)Conductors and ScreenCoroutines
  • 18. Wrapping upHope this was enough to get you rollingCaliburn.Micro is on Codeplexhttp://caliburnmicro.codeplex.comThese slides and the code will be athttp://codeswamp.comPlease fill out the your session evals
  • 19. Big ThanksRob Eisenberg has stuck with it for three years and has built a great frameworkMarco Amendola ported the GameLibrary to Caliburn.Microhttp://marcoamendola.wordpress.com
  • 20. My Contact InfoBryan HunterPartner, Software EngineerFirefly Logic, Inc.1000 Main Street, Suite 201Nashville, TN 37206Twitter: @bryan_hunterBlog: codeswamp.comEmail: bryan.hunter@fireflylogic.com