1.简介

Caliburn是Rob Eisenberg在2009年提出的一个开源框架,可以应用于WPF,Silverlight,WP7等,框架基于MVVM模式,像它的名字一样,是企业级应用的一把利器。而Caliburn.Micro是Caliburn项目的精简版,重构了Caliburn的代码,精简掉了一些不常用的功能。

2.CM优点

1. ActionMessage,结合了Blend中的TriggerAction,可以把UI控件中的事件绑定到后台方法,类似于CallMethodAction。 CM对ActionMessage进行了很多扩展,包括可以传入多个参数,参数支持绑定,可以通过CanExecute作执行前判断并
设置控件的Enable等。
2. Conventions,协定,这个词听上去有点虚,其实就是智能匹配的意思。CM制定了一系列匹配的规则,比如说View和ViewModel之间的匹配,绑定时传入控件名可以找到控件,传入方法名可以绑定到方法等等。
3. Screen和Conductor,作为一个Presentation的框架,各个UI部件(Widget或者叫Pad)的管理是必不可少的。Screen就是用来表示UI部件的,它定义了一些列UI部件的生命期事件,比如Activated,DeActivated等。Conductor是用来管理Screen的,类似于传统的Controller,不同的Screen可以用一个Conductor来管理,Conductor也使用了策略模式允许更改对Screen的处理。
4. Coroutines,协同程序,定义了一组程序的执行,简化了异步编程。比如说在网络中下载图片并显示,通常来说需要显示BusyIndicator,后台线程去网络读取图片,读取成功后Invoke到UI线程,取消BusyIndicator,显示图片。CM提供了一个IResult接口,大大的简化了异步编程,结合ActionMessage,为AOP的扩展提供了可能。
5. 配置性和扩展性,CM移除掉了原Caliburn的一些IOC实现,作为一个通用框架,最常用办法就是使用工厂模式结合配置文件提供可配置性,使用IOC来解耦组件间的依赖。CM默认是使用MEF来做IOC扩展的,你可以自定义Bootstrapper来使用你喜欢的IOC容器,如Unity等。
6. 设计时支持(Design-time support),CM中的ActionMessage是继承自Blend中的TriggerAction的,也就是说可以在Blend编辑ActionMessage,大大方便了使用。
3.简单demo

Caliburn是Rob Eisenberg在2009年提出的一个开源框架,可以应用于WPF,Silverlight,WP7等,框架基于MVVM模式,像它的名字一样,是企业级应用的一把利器。而Caliburn.Micro是Caliburn项目的精简版,重构了Caliburn的代码,精简掉了一些不常用的功能。

Caliburn.Micro入门相关推荐

  1. C# WPF MVVM开发框架Caliburn.Micro入门介绍①

    01 - Caliburn.Micro简介 Caliburn.Micro是一套基于XAML的MVVM模式的开发框架,它小巧而强大.在CaliburnMicro中只需要按照约定把View的名字加上后缀V ...

  2. Caliburn.Micro 入门

    新建工程 本文只介绍ViewModel First的方式,因为View First比较少用,虽然CM也支持. 在Visual Studio中新建一个WPF工程"Caliburn.Micro. ...

  3. C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅

    01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Caliburn提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间 ...

  4. Caliburn.Micro 杰的入门教程3,事件和参数

    Caliburn.Micro 杰的入门教程1(翻译) Caliburn.Micro 杰的入门教程2 ,了解Data Binding 和 Events(翻译) Caliburn.Micro 杰的入门教程 ...

  5. 事件聚合器 - Caliburn.Micro 文档系列

    文章目录 事件聚合器 (Event Aggregator) 入门 创建与生命周期 发布事件 使用自定义线程发布事件 订阅事件 订阅许多事件 多态的订阅者 查询处理程序 协同感知订阅者 任务感知订阅者 ...

  6. 服务定位器 - Caliburn.Micro 文档系列

    文章目录 服务定位器 (Service Locator) 入门 为 IoC 注入功能 在你的应用中使用 IOC 获取单一服务 获得一系列服务 注入实例 服务定位器 (Service Locator) ...

  7. Caliburn.Micro 资源随时添加

    Caliburn.Micro – Hello World http://buksbaum.us/2010/08/01/caliburn-micro-hello-world/ http://blog.c ...

  8. Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 IhandleT

    Caliburn.Micro学习笔记目录 今天 说一下Caliburn.Micro的IEventAggregator和IHandle<T>分成两篇去讲这一篇写一个简单的例子 看一它的的实现 ...

  9. C# WPF MVVM开发框架Caliburn.Micro View / View Model 命名⑨

    01 - 约定 在收到Caliburn Micro中有关视图和ViewModel解析的反馈后,我们添加了新功能,以简化类型解析,同时保持驱动它的健壮的基于正则表达式的名称转换机制.为了更好地了解这些新 ...

  10. C# WPF MVVM开发框架Caliburn.Micro 名称Transformer⑩①

    使用名称Transformer NameTransformer是在Caliburn.Micro v1.1中引入的,它是ViewLocator和ViewModelLocator如何将类名映射到其伙伴角色 ...

最新文章

  1. 利用FreeNas创建AFP共享
  2. 《赤壁》:吴宇森恶搞三国的经过
  3. python方格染色_判定二部图的着色算法(Python),题,染色法,判断,二分
  4. STM32开发 -- Keil使用(2)
  5. 我们用过的linux系统
  6. vscode 调试_如何使用VSCode调试JS?
  7. 6.这就是搜索引擎:核心技术详解 --- 链接分析
  8. 中信所怎么查期刊影响因子_《2019年版中国科技期刊引证报告(核心版)自然科学卷》医学类期刊目录(附影响因子)...
  9. 2020过去了,我们想给那些病毒和劫持软件颁个奖……
  10. Java学习笔记(一)
  11. 使用c++实现一个FTP客户端(一)
  12. vlookup使用步骤_vlookup函数的使用方法
  13. extjs控件只读、,extjs多行只读文本框
  14. vue项目中eslint规则校验配置
  15. USB设备驱动程序-USB Gadget Driver(四)
  16. 用PayPal在eBay上撸货加哪种卡可以长期用?
  17. c语言中错误c2062,C/C++编译器错误消息大全
  18. QFile创建文件以及递归文件删除文件
  19. 数据库原理及应用第2版(雷景生编著)课后习题答案第4章
  20. WEBGL 2D游戏引擎研发系列 第三章 正交视口

热门文章

  1. SPSS PROCESS插件安装及使用【SPSS 046期】
  2. 梯度离散_使用策略梯度同时进行连续/离散超参数调整
  3. cpu内存和线程和pool多进程池 Python
  4. Latex:使用latex双栏模板时,图片caption名称不显示
  5. VS2017:无法安装Win10SDK_10.0.15063.UWP.Native、无法安装Microsoft.VisualC.Redist.12
  6. redux异步action_Redux 异步action的内部实现
  7. huffman编码的程序流程图_基于哈夫曼编码的压缩解压程序(C 语言)
  8. 将Web项目War包部署到Tomcat服务器基本步骤
  9. calamari构架图
  10. Lync Server 2010安装笔记之五-Lync Server前端服务器高可用