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

Composite Application Library 介绍

  • 2008-07-10
  • 本文字数:910 字

    阅读完需:约 3 分钟

微软模式与实践团队(patterns & practices)最近发布了 Composite Application Guidance for WPF 。该指导包中一个很重要的组成部分是 Composite Application Library ,一个创建复合 WPF 应用程序非常有用的类库。

除了推荐如何设计、开发和部署应用程序之外,微软模式与实践团队提供了他们推荐的参考实现或可复用的应用程序构造块。包括四种类型的指导:指导包、参考实现、软件工厂和应用程序块。Composite Application Guidance for WPF 除了推荐如何通过相互独立的模块构造大型复合 WPF 应用程序之外,还提供了一个名为 Stock Trader RI 的参考实现,一个称之为 Composite Application Library(CAL)的源代码库。据模式与实践团队所说,CAL 用以实现如下目标:

  • 由独立起作用而又互相协作的模块组合成客户端
  • 把主界面(外壳)开发者和模块建造者分离,这样做可以使业务开发小组集中精力开发特定领域的模块,而无需关注该 WPF 架构
  • 使用一个架构框架以产生一致和高质量的集成应用程序

模式与实践团队说道,CAL 使用了如下策略:

  • 它使用了依赖注入技术以简化代码来实现 Presentation-Model 和 Model-View-Presenter 模式
  • 它提供了一个加载模块的基础结构,并允许模块执行启动操作。模块也可以注册为共享组件以被其它模块或者外壳应用程序使用。
  • 它包含了一套广泛的单元测试源代码,开发者可以修改函数库源代码并使用单元测试验证其功能
  • 它为函数库服务分离了接口和具体实现

CAL 基于如下模式进行构造的:

  • 复合用户界面模式:复合和符合视图、命令模式、适配器模式
  • 模块化模式:分离界面和插件、服务定位、事件聚合、外观模式
  • 可测试模式:控制反转、分离表现

Composite Application Library 可以用来建造复合 WPF 应用程序,但它也可以通过扩展或替换核心元素进行定制以适应某些需要。类库源代码可通过修改以达到预期的功能。

查看英文原文: An Introduction to the Composite Application Library


译者简介:李会军(网名 TerryLee), 南开大学软件工程硕士,微软最有价值专家(MVP),多家 IT 杂志和 IT 网络媒体特约撰稿人,擅长基于.NET 平台的 Web 开发,业余爱好写作,在各类技术杂志和个人技术博客上撰写了大量的技术文章。他的个人网站为: http://www.dotneteye.cn

2008-07-10 21:481391

评论

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

iOS MachineLearning 系列(7)—— 图片相似度分析

珲少

c++ 读取数据库文件后将数据缓存到内存中直到服务重启

linux大本营

c++ map stl C++ STL

C++存储改造,如何将Oracle语句改成使用MySQL语句

linux大本营

c++ MySQL 数据库 oracle

如何将 Outlook 邮件自动转发到 Gmail

外贸IT程序客

谷歌 youtube

使用C++实现一个微积分的应用案例

linux大本营

c++

软件测试/测试开发丨面试题之计算机网络和数据库篇

测试人

软件测试 面试题 自动化测试 测试开发

急急急!Kafka Topic 资源权限紧张怎么办?

Zilliz

Zilliz mivlus kafkatopic

ChatGPT 不适合您吗?这是您可以尝试修复它的方法

外贸IT程序客

OpenAPI ChatGPT 人工智能ChatGPT 吗? ChatGPT4

极客星球|数据分析引擎黑马ClickHouse技术研究与实践

MobTech袤博科技

ChatGPT 有字符限制吗?这是绕过它的方法

外贸IT程序客

ChatGPT 人工智能ChatGPT 吗? ChatGPT4

如何使用 Gmail Smart Compose 更快地撰写电子邮件

外贸IT程序客

谷歌 youtube

会思考的狗、聪明的马和随机鹦鹉

FinClip

什么是 GPT-4,它是如何工作的?ChatGPT 的新模型解释

外贸IT程序客

ChatGPT 人工智能ChatGPT 吗? ChatGPT4

nginx入门教程

linux大本营

nginx

C++查询数据库后写入Qtableview中配合Qstandaritemmodel

linux大本营

c++ 数据库

如何使用等待队列

linux大本营

队列

ChatGPT 可以写你的论文,但你应该使用它吗?

外贸IT程序客

ChatGPT 人工智能ChatGPT 吗? ChatGPT4

如何修复 ChatGPT 的内部服务器错误消息

外贸IT程序客

ChatGPT 人工智能ChatGPT 吗? ChatGPT4

怎样在 Gmail 中设置电子邮件自动提醒

外贸IT程序客

谷歌收录 youtube

C语言 unsigned long long 计算当前纳秒数时是否会越界

linux大本营

C'语言

K8s入门教程:10分钟带你速览全程

加入高科技仿生人

低代码 #k8s 容器化部署

架构设计通用原则

阿泽🧸

架构设计 三周年连更

如何更改 Gmail 主题–只需4步完成

外贸IT程序客

谷歌 youtube

怎样在 Gmail 中创建规则来过滤您的电子邮件

外贸IT程序客

谷歌 youtube

c++ 读取数据库文件后将数据缓存到内存中

linux大本营

c++ stl C++ STL

怎样在 Gmail 中查找、添加、编辑和删除联系人

外贸IT程序客

谷歌 youtube

posix协议挂载约束

linux大本营

posix

如何按发件人、大小、日期和未读对 Gmail 中的电子邮件进行排序

外贸IT程序客

谷歌收录 youtube

ChatGPT 错误代码 1020:这是什么以及如何解决?

外贸IT程序客

ChatGPT 人工智能ChatGPT 吗? ChatGPT4

SOS大规模敏捷开发实施全流程项目管理(Scrum of Scrums)

顿顿顿

Scrum 敏捷开发 项目管理工具 敏捷开发管理工具 研发管理软件

什么是 ChatGPT Plus,您应该得到它吗?

外贸IT程序客

ChatGPT 人工智能ChatGPT 吗? ChatGPT4

Composite Application Library介绍_.NET_Abel Avram_InfoQ精选文章