SlideShare uma empresa Scribd logo
1 de 20
Caliburn.Microan open source micro-framework for WPF, Silverlight and Windows Phone  7 Presented 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.Micro I use it. I’m a fan Based on the mature Caliburn project Created by Rob Eisenberg Grew from Rob’s MIX10 talk “Build Your Own MVVM Framework” Around 2,000 lines of code Made public July 2010 Now the mainline
Caliburn.Micro Elevator Speech 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  Simplifies asynchronous programming Built in Tombstone & Resurrection for WP7 Small enough to grok and to “own”
Important Terms MVVM (Model-View-ViewModel) Convention over Configuration Event Aggregator (pub-sub) Coroutines Bootstrapper
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 lifecycle App starts up
The lifecycle App starts up News up Bootstrapper<ShellViewModel> public class ShellViewModel {    public void Back() {…}    public IScreenActiveScreen    { get; set; }    … }
The lifecycle App starts up News up Bootstrapper<ShellViewModel> ViewLocator.LocateForModel finds ShellView <ContentControl x:Name=“ActiveScreen”/> public class ShellViewModel {    public void Back() {…}    public IScreenActiveScreen    { get; set; }    … }
The lifecycle App starts up News up Bootstrapper<ShellViewModel> ViewLocator.LocateForModel finds ShellView <ContentControl x:Name=“ActiveScreen”/> ViewModelBinder.Bind() public class ShellViewModel {    public void Back() {…}    public IScreenActiveScreen    { get; set; }    … }
The lifecycle App starts up News up Bootstrapper<ShellViewModel> <ContentControl x:Name=“ActiveScreen”/> ViewLocator.LocateForModel finds ShellView ViewModelBinder.Bind()
The lifecycle App starts up News up Bootstrapper<ShellViewModel> <ContentControl x:Name=“ActiveScreen”/> ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds ShellView ViewModelBinder.Bind() public class SearchViewModel {    public string SearchText    { get; set; }    public void AddGame {…}    public void Search {…}    … }
The lifecycle App starts up News up Bootstrapper<ShellViewModel> ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds ShellView ViewLocator.LocateForModel finds SearchView ViewModelBinder.Bind() public class SearchViewModel {    public string SearchText    { get; set; }    public void AddGame {…}    public void Search {…}    … }
The lifecycle App starts up News up Bootstrapper<ShellViewModel> ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds ShellView ViewLocator.LocateForModel finds SearchView ViewModelBinder.Bind() ViewModelBinder.Bind() public class SearchViewModel {    public string SearchText    { get; set; }    public void AddGame {…}    public void Search {…}    … }
The lifecycle App starts up News up Bootstrapper<ShellViewModel> ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds ShellView ViewLocator.LocateForModel finds SearchView ViewModelBinder.Bind() ViewModelBinder.Bind()
The lifecycle App starts up News up Bootstrapper<ShellViewModel> ViewLocator.LocateForModel finds ShellView ViewModelBinder.Bind() ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds SearchView ViewModelBinder.Bind() and so on, and so on, and so on…
The Code for the Demo  Bootstrapper Convention over Config View Location and composition ViewModelBinder (Property Binding & Action Binding) Conductors and Screen Coroutines
Wrapping up Hope this was enough to get you rolling Caliburn.Micro is on Codeplex http://caliburnmicro.codeplex.com These slides and the code will be at http://codeswamp.com Please fill out the your session evals
Big Thanks Rob Eisenberg has stuck with it for three years and has built a great framework Marco Amendola  ported the GameLibrary to Caliburn.Micro http://marcoamendola.wordpress.com
My Contact Info Bryan HunterPartner, Software EngineerFirefly Logic, Inc.1000 Main Street, Suite 201Nashville, TN 37206 Twitter: @bryan_hunter Blog: codeswamp.com Email: bryan.hunter@fireflylogic.com

Mais conteúdo relacionado

Mais procurados

Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Matt Raible
 
A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...Alessandro Martellucci
 
Secrets mvc-diagram
Secrets mvc-diagramSecrets mvc-diagram
Secrets mvc-diagramsecrets app
 
Secrets app presentation
Secrets app presentationSecrets app presentation
Secrets app presentationsecrets app
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Matt Raible
 
What's New in JHipsterLand - Devoxx Poland 2017
What's New in JHipsterLand - Devoxx Poland 2017What's New in JHipsterLand - Devoxx Poland 2017
What's New in JHipsterLand - Devoxx Poland 2017Matt Raible
 
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Matt Raible
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017Matt Raible
 
Microservices for the Masses with Spring Boot, JHipster and OAuth - GIDS 2019
Microservices for the Masses with Spring Boot, JHipster and OAuth - GIDS 2019Microservices for the Masses with Spring Boot, JHipster and OAuth - GIDS 2019
Microservices for the Masses with Spring Boot, JHipster and OAuth - GIDS 2019Matt Raible
 
Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?Fátima Casaú Pérez
 
Building Event Driven API Services Using Webhooks
Building Event Driven API Services Using WebhooksBuilding Event Driven API Services Using Webhooks
Building Event Driven API Services Using WebhooksCloud Elements
 
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Matt Raible
 
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...Matt Raible
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Matt Raible
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseMatt Raible
 
If Hemingway Wrote JavaDocs
If Hemingway Wrote JavaDocsIf Hemingway Wrote JavaDocs
If Hemingway Wrote JavaDocsVMware Tanzu
 
How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...How to Win at UI Development in the World of Microservices - THAT Conference ...
How to Win at UI Development in the World of Microservices - THAT Conference ...Matt Raible
 

Mais procurados (20)

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

Semelhante a Caliburn.Micro

Creating Swing DSL with_Kotlin
Creating Swing DSL with_KotlinCreating Swing DSL with_Kotlin
Creating Swing DSL with_KotlinNebojša Vukšić
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Matt Raible
 
China Science Challenge
China Science ChallengeChina Science Challenge
China Science Challengeremko caprio
 
SgCodeJam24 Workshop
SgCodeJam24 WorkshopSgCodeJam24 Workshop
SgCodeJam24 Workshopremko caprio
 
Spring training
Spring trainingSpring training
Spring trainingTechFerry
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyJames Williams
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Matt Raible
 
JavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthJavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthDanno Ferrin
 
Android presentation
Android presentationAndroid presentation
Android presentationImam Raza
 
Play Support in Cloud Foundry
Play Support in Cloud FoundryPlay Support in Cloud Foundry
Play Support in Cloud Foundryrajdeep
 
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7Igor Moochnick
 
Plone FSR
Plone FSRPlone FSR
Plone FSRfulv
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...DataLeader.io
 
Android architecture
Android architecture Android architecture
Android architecture Trong-An Bui
 

Semelhante a Caliburn.Micro (20)

Caliburn micro
Caliburn microCaliburn micro
Caliburn micro
 
Creating Swing DSL with_Kotlin
Creating Swing DSL with_KotlinCreating Swing DSL with_Kotlin
Creating Swing DSL with_Kotlin
 
Griffon Presentation
Griffon PresentationGriffon Presentation
Griffon Presentation
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
 
Javascript talk1
Javascript talk1Javascript talk1
Javascript talk1
 
China Science Challenge
China Science ChallengeChina Science Challenge
China Science Challenge
 
SgCodeJam24 Workshop
SgCodeJam24 WorkshopSgCodeJam24 Workshop
SgCodeJam24 Workshop
 
Spring training
Spring trainingSpring training
Spring training
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java Technology
 
Micronaut Launchpad
Micronaut LaunchpadMicronaut Launchpad
Micronaut Launchpad
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
JavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthJavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In Depth
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
EmbbededGF@JavaOneHyd
EmbbededGF@JavaOneHydEmbbededGF@JavaOneHyd
EmbbededGF@JavaOneHyd
 
Play Support in Cloud Foundry
Play Support in Cloud FoundryPlay Support in Cloud Foundry
Play Support in Cloud Foundry
 
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
 
Plone FSR
Plone FSRPlone FSR
Plone FSR
 
Understanding meteor
Understanding meteorUnderstanding meteor
Understanding meteor
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
 
Android architecture
Android architecture Android architecture
Android architecture
 

Último

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 

Último (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 

Caliburn.Micro

  • 1. Caliburn.Microan open source micro-framework for WPF, Silverlight and Windows Phone 7 Presented 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.Micro I use it. I’m a fan Based on the mature Caliburn project Created by Rob Eisenberg Grew from Rob’s MIX10 talk “Build Your Own MVVM Framework” Around 2,000 lines of code Made public July 2010 Now the mainline
  • 3. Caliburn.Micro Elevator Speech 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 Simplifies asynchronous programming Built in Tombstone & Resurrection for WP7 Small enough to grok and to “own”
  • 4. Important Terms MVVM (Model-View-ViewModel) Convention over Configuration Event Aggregator (pub-sub) Coroutines Bootstrapper
  • 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.
  • 7. The lifecycle App starts up
  • 8. The lifecycle App starts up News up Bootstrapper<ShellViewModel> public class ShellViewModel { public void Back() {…} public IScreenActiveScreen { get; set; } … }
  • 9. The lifecycle App starts up News up Bootstrapper<ShellViewModel> ViewLocator.LocateForModel finds ShellView <ContentControl x:Name=“ActiveScreen”/> public class ShellViewModel { public void Back() {…} public IScreenActiveScreen { get; set; } … }
  • 10. The lifecycle App starts up News 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 lifecycle App starts up News up Bootstrapper<ShellViewModel> <ContentControl x:Name=“ActiveScreen”/> ViewLocator.LocateForModel finds ShellView ViewModelBinder.Bind()
  • 12. The lifecycle App starts up News up Bootstrapper<ShellViewModel> <ContentControl x:Name=“ActiveScreen”/> ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds ShellView ViewModelBinder.Bind() public class SearchViewModel { public string SearchText { get; set; } public void AddGame {…} public void Search {…} … }
  • 13. The lifecycle App starts up News up Bootstrapper<ShellViewModel> ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds ShellView ViewLocator.LocateForModel finds SearchView ViewModelBinder.Bind() public class SearchViewModel { public string SearchText { get; set; } public void AddGame {…} public void Search {…} … }
  • 14. The lifecycle App starts up News up Bootstrapper<ShellViewModel> ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds ShellView ViewLocator.LocateForModel finds SearchView ViewModelBinder.Bind() ViewModelBinder.Bind() public class SearchViewModel { public string SearchText { get; set; } public void AddGame {…} public void Search {…} … }
  • 15. The lifecycle App starts up News up Bootstrapper<ShellViewModel> ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds ShellView ViewLocator.LocateForModel finds SearchView ViewModelBinder.Bind() ViewModelBinder.Bind()
  • 16. The lifecycle App starts up News up Bootstrapper<ShellViewModel> ViewLocator.LocateForModel finds ShellView ViewModelBinder.Bind() ActiveScreen set to SearchViewModel ViewLocator.LocateForModel finds SearchView ViewModelBinder.Bind() and so on, and so on, and so on…
  • 17. The Code for the Demo Bootstrapper Convention over Config View Location and composition ViewModelBinder (Property Binding & Action Binding) Conductors and Screen Coroutines
  • 18. Wrapping up Hope this was enough to get you rolling Caliburn.Micro is on Codeplex http://caliburnmicro.codeplex.com These slides and the code will be at http://codeswamp.com Please fill out the your session evals
  • 19. Big Thanks Rob Eisenberg has stuck with it for three years and has built a great framework Marco Amendola ported the GameLibrary to Caliburn.Micro http://marcoamendola.wordpress.com
  • 20. My Contact Info Bryan HunterPartner, Software EngineerFirefly Logic, Inc.1000 Main Street, Suite 201Nashville, TN 37206 Twitter: @bryan_hunter Blog: codeswamp.com Email: bryan.hunter@fireflylogic.com