Caliburn.Micro框架 概述
1.Caliburn框架
Caliburn是Rob Eisenberg在2009年1月26日(Rob's MIX10 talk "Build Your Own MVVM Framework")提出的一个MVVM类的开源框架。它是一套用于协助开发WPF,Silverlight,WP7和Win RT等的应用程序的库。
针对当时的PC应用程序的如下不足而提出:
- 没有代码后置(Code Behind)
- 没有事件关联
- 没有命令
- 没有数据绑定
- 没有数据模板
- 没有异步编程
- 没有自定义控件
- 没有第三方库
2.Caliburn.Micro框架
由于Caliburn项目太大,10多个工程,数万行代码,使用者反馈该项目太重。于是作者推出了Caliburn.Micro项目,Micro顾名思义,是Caliburn项目的浓缩版,重构了Caliburn项目的代码,精简掉了部分不常用的功能。作者的原话是:
My vision was to take 90% of Caliburn's features and squash them into 10% of the code.
Caliburn.Micro由Rob Eisenberg于2010年6月7日正式发布。
Caliburn.Micro是一个小而强大的框架,专为在所有XAML平台上构建应用程序而设计。凭借对MVVM和其他经证明的UI模式的强大支持,Caliburn.Micro将使你能够快速构建Solution,而无需牺牲代码质量和可测试性。
3.Caliburn.Micro中的核心概念与常用函数
1. ActionMessage,结合了Blend中的TriggerAction,可以通过CanExecute(Guard)作执行前判断并设置控件的Enable等。
2. Conventions,协定。
3. Screen和Conductor,
Screen就是用来表示UI部件的,它定义了一些列UI部件的生命期事件,比如Activated,DeActivated等。
Conductor(指挥/管理者)是用来管理Screen的,类似于传统的Controller,不同的Screen可以用一个Conductor来管理,Conductor也使用了策略模式允许更改对Screen的处理。
a screen is part of an application that goes through a life cycle.
Conductors manage the life cycle state of one or more screens.
4. Coroutines,协程,定义了一组程序的执行,简化了异步编程。
5. 配置性和扩展性,CM移除掉了原Caliburn的一些IOC实现,作为一个通用框架,最常用办法就是使用工厂模式结合配置文件提供可配置性,使用IOC来解耦组件间的依赖。CM默认是使用MEF来做IOC扩展的。
6. 设计时支持(Design-time support)。