写点什么

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

  • 2010-08-23
  • 本文字数:1013 字

    阅读完需:约 3 分钟

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

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

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

IView – 针对 View 类的接口。

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

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

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

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

框架中包含了基本的类和接口,我们可以对其进行扩展以适应应用程序。这些类和接口包括 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

2010-08-23 07:326508
用户头像

发布了 340 篇内容, 共 138.2 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

架构实战营 模块一 作业

Pitt

作业1-20210406

Geek_b437fc

CLOSE_WAIT过多导致Jetty服务器假死

风翱

Java Jetty Web 4月日更

vue接入腾讯实时音视频trtc-js-sdk的技术难点与解决方案

孙叫兽

Vue 音视频 解决方案 trtc-js-sdk

树莓派的组装与开机

IT蜗壳-Tango

IT蜗壳教学 4月日更

Wireshark数据包分析学习笔记Day26

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

复兴or幻象?VR的2021三重门

脑极体

架构实战营模块一 - 总结

凯迪

面试官

ES_her0

4月日更

【Java试题】从一道题目再看Java继承

程序员架构进阶

Java 面试 28天写作 4月日更

区块链技术,通证经济未来趋势,两者有什么关系?

CECBC

区块链

学生管理系统架构

Fleng

架构实战营

H1 作业1

wade

架构实战营 模块一 总结

Pitt

华仔架构设计-模块1作业

大师兄

业务架构训练营第 0 期模块一作业

菠萝吹雪—Code

数据结构和算法

奈奈奈奈

数据结构与算法

模块1作业

王硕

架构实战营

架构师实战营 模块一作业 微信业务架构图

好吃不贵

软件架构设计分层模型和构图思考

xcbeyond

方法论 分层架构 架构设计 4月日更

区块链技术引领新一轮技术变革浪潮

CECBC

Vue中Echarts基本使用

Chalk

大前端 eCharts 4月日更

跟着源码一起学:手把手教你用WebSocket打造Web端IM聊天

JackJiang

网络编程 websocket 即时通讯 IM

编程好习惯之理清数据的可变性

顿晓

4月日更 不可变

架构实战营 模块1 课后作业

Keyto

博文推荐|多图详解 Apache Pulsar 消息存储模型

Apache Pulsar

大数据 开源 流计算 Apache Pulsar 消息系统

区块链技术解决信任问题

CECBC

信任 信任机制

架构实战营 模块一作业

ercjul

架构实战营

模块一作业

鲲哥

Redis 6.0 多线程、客户端缓存、权限控制

escray

redis 学习 极客时间 Redis 核心技术与实战 4月日更

架构实战营课程一作业

Saber

架构实战营

WAF和Caliburn:两种WPF应用程序框架_.NET_Abel Avram_InfoQ精选文章