Caliburn.Micro – Introduction

Caliburn.Micro is a lightweight and small, yet powerful framework for developing rich WPF, Silverlight or Windows Phone applications. Caliburn.Micro has only a single dependency to the System.Windows.Interactivity library. Due to its small footprint of only 75 k and approximately 2700 lines of code it is not only lightning fast in startup and execution time but also easy to understand. The framework offers pattern guidance for the following well established design patterns:

  • Model – View – ViewModel (MVVM)
  • Model – View – Presenter (MVP)
  • Model – View – Controller (MVC)

Rob Eisenberg (www.robeisenberg.com) and Marco Amendola (marcoamendola.wordpress.com) are actively maintaining the project and taking care of the documentation. The documentation is really thorough and offers tips and tricks how to avoid the common pitfalls. The project is released under a developer and company friendly license namely the MIT License.

Caliburn vs. Caliburn.Micro

But wait isn’t there a full framework called Caliburn. Why should I even care about Caliburn.Micro? Caliburn and Caliburn.Micro are even compared to samples and documentation. But if we take a closer look into the code base, packages and dependencies we see a huge difference.

Lines of code vs. features

LOC Features Learning effort
Caliburn 27000 100% Huge
Caliburn.Micro 2700 90% Easy to grasp

Packages

Caliburn Caliburn.Micro
Caliburn.CoreCaliburn.PresentationFramework

Caliburn.ShellFramework

Caliburn.Testability

Caliburn.[ThirdParty]

Caliburn.Micro

Dependencies

Caliburn Caliburn.Micro
Castle (DP / Windsor)

Autofac

Spring

StructureMap

Unity

Ninject

FluentValidation

Reactive

Managed Extensibility Framework

System.Windows.Interactivity

Core infrastructure

Caliburn.Micro has a small core infrastructure which is easy to grasp but it is crucial to know the core infrastructure in detail to be able to design maintainable applications. What you need to get started are the following components:

  • Bootstrapper
  • PropertyChangedBase
  • ViewAware
  • Screen
  • Conductor
  • Conventions
  • Coroutines
  • Actions

Once understood and integrated into the application Caliburn.Micro becomes almost transparent and works its magic behind the scenes. More on the upcoming blog posts.

About the author

Daniel Marbach

1 comment

By Daniel Marbach

Recent Posts