BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

WAF和Caliburn:两种WPF应用程序框架

| 作者 Abel Avram 关注 7 他的粉丝 ,译者 侯伯薇 关注 0 他的粉丝 发布于 2010年8月24日. 估计阅读时间: 3 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

WPF应用程序框架(WAF)和Caliburn是两种开源框架,它们基于模型-视图-视图模型(MVVM)模式,使用分层的架构,为开发者提供了编写WPF和Silverlight应用程序的基础。

WAF使用了模型-视图-视图模型(MVVM)模式,这与Martin Fowler定义的PresentationModel非常类似。WAF使用了这种模式,我们可以使用下面的UML图来对其进行描述:

Model-View-ViewModel Pattern

View – 这个类中包含了所有GUI小工具,但不包括状态和行为。

IView – 针对View类的接口。

ViewModel – 其中包含了GUI小工具的状态和行为。之所以将那些元素保存与此,是为了避免将应用程序的代码放在GUI界面程序中,从而我们可以很容易地把应用程序迁移到不同的GUI系统中。ViewModel可以通过它的接口与View交互。

Controller – MVVM模式中没有提到控制器,但是WAF中包含了一个,它的职责是指引程序的流向。如果需要的话,ViewModel在变更的时候会通过事件通知Controller。

Model – 底层的领域类。在Model中的改变会通过事件发送给View或者ViewModel。

WAF是按照分层的思想构建的,如下所示:

layered-architecture.png

框架中包含了基本的类和接口,我们可以对其进行扩展以适应应用程序。这些类和接口包括Controller、IView、ViewModel、Model以及大量文件对话框和消息服务类。框架中还带有一些代码示例,包括图书馆、电子邮件客户端以及面向文档的应用程序,另外还带有对单元测试的基本支持。WAF已经由用户jbe2277提交到CodePlex上,该用户没有声明他是谁,但看起来应该是微软的模式与实践中智能客户端团队的开发人员。

Caliburn是另一个开源的WPF和Silverlight框架,它也是围绕MVVM模式构建的。这个项目的站点上提到了以下特性:

  1. 将数据绑定扩展为方法,使得MVVM架构更加简单和直观。
  2. 为MVVM动作添加了前置/后置执行过滤器和修复程序。
  3. 通过对co-routines的强大实现,简化了异步编程。
  4. 提供了支持通用的UI角色——像Screen Activator、Screen Conductor、Screen Collection以及Application Controller——的基础类。
  5. 改善了从配置方法向架构解决方案转变的协议。
  6. 通过为WPF提供强大的数据绑定验证框架支持TDD。
  7. 使WPF和Silverlight架构能够使用相同的API。

在很多方式上这个框架与WAF都非常类似,但它更加成熟,并且拥有上百个类和接口。其中还带有Silverlight和WPF示例,像联系人管理器和游戏库。 Caliburn由Blue Spire为其提供支持。

查看英文原文:WAF and Caliburn: 2 WPF Application Frameworks

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

openexpressapp也是一个基于WPF的应用框架 by jg zhou

OpenExpressApp是将现有技术和产品中有价值的部分引入到一起,它要做的是整合别人已经实践的方法来提高我们自身的开发能力。不同于以往为特定开发角色提供独立的开发工具和框架,它基于业务模型驱动开发指导思想,为业务分析人员、软件设计和开发人员提供的一种集成的开发平台,提供报表、流程、元数据等基础引擎,具有业务建模、领域建模和应用建模等模型,并提供权限、报表等多个通用应用模块。为了支持软件开发,还提供基于敏捷思想、软件产品线工程的软件项目管理工具、快速原型工具和测试支持。
其网站地址为:openexpressapp.codeplex.com/

非常好 by Java 陈

从MVC到MVP到Passive View 到 Supervising Controller 到MVVM,界面框架的架构不段进化中

还是那句话,让我们
Low Coupling
High Cohesion

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT