写点什么

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:326784
用户头像

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

关注

评论

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

数据的不确定性及可视化方法

搞大屏的小北

秒云荣获四川省创新型中小企业认定

MIAOYUN

创新型中小企业 2022创新型中小企业 四川省创新型中小企业 科技型中小企业

4种LED显示屏箱体连接方式

Dylan

LED LED显示屏 户外LED显示屏

Databend 借助对象存储帮你实现降本增效

Databend

TiDB 中标杭州银行核心系统数据库项目

PingCAP

#TiDB

数据可视化图表系列解析——漏斗图

Data 探险实验室

数据分析 可视化 数据可视化 图表 可视化数据

为测试管理正名,华为云CodeArts TestPlan的守护之道

华为云开发者联盟

云计算 测试 华为云 华为CodeArts 企业号 1 月 PK 榜

解决高基数难题,云原生时序数据库 TDengine 3.0 荣获 IT168 2022 年度技术卓越奖

TDengine

数据库 tdengine 时序数据库

Sentinel Go-毫秒级统计数据结构揭秘

阿里巴巴中间件

Go 阿里云 云原生 Sentienl

软件测试/测试开发 | 一文搞定 Appium 环境配置

测试人

软件测试 自动化测试 测试开发 appium app自动化测试

NFTScan 与 Afflux 孵化器达成战略合作伙伴,共同促进 Web3 生态发展!

NFT Research

NFT

pip安装'torch'出现PackageNotFoundError报错解决办法

Geek_7ubdnf

Python

新一代云原生日志架构 - Loggie的设计与实践

网易数帆

开源 云原生 日志 Loggie 企业号 1 月 PK 榜

为什么 APISIX Ingress 是比 Ingress NGINX 更好的选择?

API7.ai 技术团队

APISIX Ingress Controller Kubernetes Serverless NGINX Ingress Controller

关于局域网中的攻击溯源问题

郑州埃文科技

IP溯源 局域网

工业5.0:为何是下一个10年的制造业关键性变革方向?

PreMaint

工业4.0 智能制造

AirServer正式版Mac7.2.7屏幕软件下载

茶色酒

AirServer AirServer2023

基于 APISIX 的服务网格方案 Amesh 积极开发中!

API7.ai 技术团队

Service Mesh Service Mesh 服务网格 服务网格 APISIX

啥玩意儿?一个计时模块要做2天?

为自己带盐

dotnetcore

TiDB 底层存储结构 LSM 树原理介绍

C++后台开发

数据结构 后端开发 LSM树 TiDB

手把手教您在PyCharm中连接云端资源进行代码调试

华为云开发者联盟

人工智能 华为云 企业号 1 月 PK 榜

云堡垒机优点简单说明-行云管家

行云管家

网络安全 堡垒机 云堡垒机

南京市等级测评机构有哪些?哪里可以查到?

行云管家

南京 等级测评机构

2022年个人云盘行业发展分析和厂商实力洞察

易观分析

用户 私有云盘

Redux与前端表格施展“组合拳”,实现大屏展示应用的交互增强

葡萄城技术团队

Python对txt进行读写操作

Geek_7ubdnf

Python

SAP系统在企业内部控制方面有哪些独到之处?

SAP虾客

报表 SAP系统 业财一体化 change history

分布式系统-CAP理论

非晓为骁

分布式系统 CAP理论 分布式理论

平安健康 Dubbo 3 升级、迁移和验证之路

阿里巴巴中间件

阿里云 云原生 dubbo

pip安装更换镜像

Geek_7ubdnf

Python.

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