50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

移动应用开发:AI赋能混合开发思考

Speedoooo

移动应用开发 小程序技术 小程序容器技术 AI应用开发

终于有人用了6小时就把Linux讲明白了,共1.76G,34部分内容

程序员高级码农

程序员‘ Linux 运维

鸿蒙组件通用属性深度解析:从基础样式到高级定制的全场景指南

谢道韫

Illustrator 2024最新破解下载 AI完整激活安装包

Rose

超 10 倍查询加速,N-Gram Index 设计与优化全解析

Databend

TortoiseSVN使用-TortoiseSVN更换或重置登录用户

刘大猫

svn 版本管理工具 版本管理 大模型 tortoiseSVN

智能化 Graviton 迁移:Amazon Q CLI 加速应用架构现代化

亚马逊云科技 (Amazon Web Services)

鸿蒙运动项目开发:封装超级好用的 RCP 网络库(中)—— 错误处理,会话管理与网络状态检测篇

王二蛋和他的张大花

4中常见的数据集成方式

谷云科技RestCloud

ETL 数据集成工具 整库同步 数据合并

华为云亮相 KubeCon China 2025,开源生态引领 AI 时代技术跃迁

华为云开源

开源 云原生 华为云 KubeCON

Proxyman Premium for Mac(网络调试和分析工具)

Geek贝

Beyond Compare 4破解版附永久密钥 Mac/win文件夹比较工具

Rose

2025 EDR XDR MDR认证测试

财见

iCourt,法律行业两个问题与三个实现增长的机会

科技汇

从 Cursor 到 Claude Code:AI 编程助手的高效协作艺术全攻略

AI段舸

环球影城APP的兼容性测试实践—腾讯优测

优测云服务平台

兼容性测试

等保测评:网络安全的重要防线

等保测评

LOCKTON年营收突破40亿美元

财见

阿里云百炼开源面向 Java 开发者的 NL2SQL 智能体框架

阿里巴巴云原生

sql 阿里云 微服务 云原生

混合应用开发:企业降本增效之道——面向2025年移动应用开发趋势的实践路径

xuyinyin

律师们有福了,DS满血版加持下的AlphaGPT将带来超凡的办案体验

科技汇

有趣的git

溪抱鱼

git 前端

Easysearch 索引备份之 Clone API

极限实验室

easysearch

等保一体机:网络安全的坚实守护者

等保测评

如何在应用中实现地图关键字搜索和标记聚合功能?

HarmonyOS SDK

harmoyos

创新与商业潜力兼具的 Real-Time AI 是怎样的?丨RTE Open Day@AGI Playground 参会指南

声网

Golang基础笔记一之变量声明和类型介绍

Hunter熊

golang fmt包 fmt

Meta 和 Oakley 将推出运动 AI 眼镜;Deepgram 发布 Voice Agent API,每小时 4.5 美元

声网

Logic Pro X for mac(音乐创作软件)

Geek贝

SecureCRT\FX (终端模拟器\FTP客户端)组合绿色便携版

Rose

设计师必备!Vector Magic——像素图转矢量图的终极神器!

Rose

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