AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

Navicat for MySQL:数据库管理与开发的全方位解决方案

Rose

AnyGo for Mac:解锁虚拟定位新境界,全球位置任我行

Rose

蛇年开工送大礼,邀您一键体验DeepSeek系列新模型

华为云开发者联盟

人工智能 大模型 昇腾云 DeepSeek

Rhinoceros 8:三维建模新纪元,引领设计革命

Rose

全球人形机器人行业 2024 年度汇总和行业前瞻报告:具身智能技术、人形机器人与商业化分析

机器人头条

机器人 科技 人形机器人 具身智能吗

新手入门:DGL在昇腾上的安装问题

Splendid2025

人工智能

如何在离线环境下部署 EMQX ECP

EMQ映云科技

emqx EMQX ECP

ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明

阿里巴巴云原生

阿里云 容器 云原生

淘宝商品描述 API 接口的开发、应用与收益

科普小能手

数据挖掘 数据分析 淘宝 API 接口 跨境电商运营

SecuritySpy Mac:打造高效、智能的视频监控解决方案

Rose

CAD迷你看图 for Mac:高效便捷的CAD图纸查看与编辑神器

Rose

PlayAI 发布 TTS 新模型,三方测试超 ElevenLabs;19岁华人辍学打造对话式 AI 助手,融资 200 万美元

声网

TiDB 分布式数据库多业务资源隔离应用实践

PingCAP

数据库 分布式 TiDB 资源隔离

2025春招 SpringCloud 面试题汇总

威哥爱编程

Java spring 面试题 spring cloud全家桶

面对全球化的泼天流量,出海企业如何观测多地域网络质量?

阿里巴巴云原生

阿里云 云原生

一行代码不用写,用 Autoflow + Gitee AI 搭建本地知识库问答机器人

PingCAP

数据库 分布式 TiDB

Lightroom Classic 2021 for mac(LRC 2021大师版) v10.3.0中文直装版

Rose

奇经技术携手IPTV亮相春晚-开启中医健康新时代

极客天地

网络安全视角:从地域到账号的阿里云日志审计实践

阿里巴巴云原生

阿里云 云原生

攻克多版本运维难题:爱奇艺百套 TiDB 集群升级至 v7.1.5 实战宝典来袭!

PingCAP

数据库 分布式 运维 TiDB

DeepSeek系列新模型正式上线昇腾社区

极客天地

深入理解 MongoDB 文档模型

彭振翼

mongodb 存储 索引 文档数据库 存储引擎

office 365 for mac破解版附激活工具

Rose

百亿大表的实时分析:华安基金 HTAP 数据库的选型历程与 TiDB 使用体验

PingCAP

数据库 TiDB HTAP

劳工管理系统(源码 + 文档 + 部署 + 讲解)

深圳亥时科技

软件测试丨PyTorch 图像目标检测

测试人

软件测试

舞台LED租赁显示屏搭建的4种形式

Dylan

视觉 LED LED display LED显示屏 舞台表演

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