InfoQ

新闻

PRISM:一个WPF的合成UI框架

作者 Abel Avram译者 朱永光 发布于 2008年5月6日 下午8时3分

社区
.NET
主题
标签
框架

复杂的客户端应用程序包含了很多需要从各种组件构建而来的图形界面,这些界面也许会被独立的团队进行开发,并像一个庞大的谜题一样组合在一起。这样的应用程序具有所谓的“Composite UI”。这样的应用程序由构建块或模块组成,这些模块被独立开发,并且它们能协同工作并能尽可能不能影响的组合成一个应用程序。用于那样目标的一个解决方案或框架,对于构架师和开发人员是很有帮助的。

微软在过去一段时间里,创建了几个这样的解决方案,如 Composite UI Application Block (CAB):

它提供了一些被证明是成功的实践,来创建基于例如Composite模式这样的知名设计模式的复杂智能客户端用户界面,在其中,简单的用户界面部件能被组合一起创建一个复杂的解决方案,但同时也允许这些部件能被独立地开发、测试和部署。

另外一个微软的解决方案是 Smart Client Software Factory

Smart Client Software Factory提供了一个一系列完整的向导,来辅助构架师和开发人员创建复合智能客户端应用程序。

另外的解决方案有针对Windows Mobile平台的 Mobile Client Software Factory,针对Web的 Web Client Software Factory

PRISM代表了PResentation Integration SysteM,它也是一个由微软支持的针对WPF的项目,其托管在CodePlex上。据一个微软技术产品计划师,Glenn Block所说,PRISM将提供如下优点:

    • 为WPF提供完整的支持
    • 动态组合用户界面组件
    • 应用程序模块能被独立的团队开发、测试和部署
    • 允许逐步采用其中的一些功能
    • 提供完整的用户体验

目前,PRISM包含了一个参考实现,一些可重用的函数库和模式向导”,但是这个计划是开发一个能支撑复合应用程序开发的框架。最新的版本已于2008年4月15日发布了,它还是一个开发中的项目。当前的源代码依赖于Castle Windsor,但最终版本可能不能再依赖它。
查看英文原文:PRISM: A WPF Composite UI Framework

没有回复

回复

独家内容

开发者眼中的Android手机平台

在四月份的Beijing Openparty上,InfoQ中文站特邀编辑仝健对三位开发者进行了采访,请他们从开发者角度谈一下对Android的认识和感觉。

智能服务契约带来的巨大伸缩性

可伸缩性并不是无状态设计倾向假设的那个布尔值(译注:一般都认为无状态设计的伸缩性好,此处暗示布尔值为True)。Udi的团队使用服务契约来处理多维度的伸缩性问题,避免了二次失败。

使用NetKerne实现REST风格的ESB

Jeremy Deane对使用NetKernel来编写REST风格的ESB应用做了一番深入的研究。他详细地剖析了选择商业ESB应用的决策过程,以及最终如何使用NetKernel来实现该应用。

多个敏捷团队之间的版本控制

当多个敏捷开发团队在同一个代码库上进行工作时,如何在保证混乱最小化的同时,还能在每个迭代结束时拥有一个干净的、可发布的软件版本?Henrik Kniberg在本文中罗列出了在“Scrum and XP from the Trenches”迷你书中所使用的策略要点。本文并非为版本控制专家编写,而是为我们这些希望进行简单、有效的协作的人所准备的。

想快快喝下Google果汁——Guice吗?

依赖注入出现已经有一段时间了,很多团队都在重构自己的应用以利用DI。但这是一件麻烦的事情。在这篇文章中,Paul Hammant说明了如何将现存应用从单件嵌套设计转为完全成熟的DI设计。

Scrum实施情况调查之案例分析

前不久,InfoQ中文站上发表了一篇文章:Scrum在中国——企业实施情况调查实录,引起了激烈争论。在本文中,作者通过对调查实录中案例的分析诊断,探讨了敏捷开发方法的概念及应用。

Jim Marino与Meeraj Kunnumpurath专访:关于SCA和Fabric3

BEA发布了在WebLogic 10.3中支持的SCA技术预览版,它是以开源的Fabric3运行时为基础构建的。InfoQ对Jim Marino和Meeraj Kunnumpurath进行了专访,前者是BEA Systems的技术主管,后者是VocaLink的首席技术人员。我们就他们对SOA和SCA的看法,VocaLink实施SOA的方法和这个技术的关键优势进行了讨论。

Ruby调试器一览

在Ruby世界中流行着一个误解:Ruby没有调试器。这是明显的错误——Ruby不但有调试器,还有供调试器用的GUI和API。InfoQ仔细调查了Ruby世界中调试器的现状——发现Ruby的调试功能支持已经很好了。