本文翻译自Prism4.0CTP版本帮助手册概览部分,便于自己和初学者了解Prism的基本概貌。
帮助文档可到http://www.codeplex.com/CompositeWPF下载。
概览(更新)
这是一个prism4.0的预览版文档
提示: |
本文档包含以前版本和新升级功能的Prism4.0版本的内容。八月CTP版本的介绍主要包括模块性和MVVM的内容。新的内容都会在各文章标题处标识出来。 |
|
Prism(正式名:WPF和Silverlight复杂应用程序构建指南-Composite Application Guidance for WPF and Silverlight),是一套帮你更轻松掌控在构建企业级的WPF客户端应用,或基于Silverlight的RIA应用时面对的复杂性的设计指导。该指导能够帮你设计和构建弹性的客户端应用,能够让独立松耦合的小模块协同,并且可以集成到整个大的应用当中。这些大的应用一般都是复杂的企业级应用。
此版本基于.NetFramework4.0,包括新的围绕MVVM、MEF(Managed Extensibility Framework)设计指导。指南包括了MVVM的引用实现(MVVM RI),快速入门,可重用的库代码(Prism库)和其他文档。
本指南面向构建企业级WPF/Silverlight应用的架构和开发人员。这种应用典型的特征是界面多且复杂,频繁的用户交互和数据可视化,并且都与角色决策行为有关。另外,这些应用很典型的使用层次架构并且使用跨层的物理部署方式,有着松耦合的独立组件。这些组件“持续构建”并且“为变化而构建”。这表明整个应用的预期生命周期是以年为单位的并且将持续对新的不可预见的需求做出变化和应对。应用不需要这些特点从Prism类库中获益。
Prism是构建在.NET Framework 4.0(包括WPF)和Silverlight4之上的,这些新技术都对Prism类库的演进有用。Prism易于学习,但要求开发者愿意拥抱新的模式和实践。管理者的理解和承诺也是相当重要的,并且项目的截止期限必须考虑到来学习新模式和实践的时间。
系统要求
本指南的运行环境包括微软Windows7、windows Vista、Windows XP Professional、Windows Server 2003、或者Windows Server 2008等操作系统。WPF应用要求 4.0(包含WPF),Silverlight应用要求.NET Framework for Silverlight 4。在使用Prism4之前,必须先安装:
可能还需要安装:
必备知识
本指南要求WPF和Silverlight动手经验。如果需要大概了解WPF,可参考以下资源:
如果需要大概了解WPF,可参考以下资源:
Prism使用较多且要求熟悉的一些概念。包括如下:
要有效评估Prism是否适合你的团队,必须先理解Prism的设计目的。以下资源可以帮助你判断是否该指导适合你:
Prism,和其他的微软模式与实践交付成果一样,来自于 community site. 在这个社区,你可以提问、提供反馈,或者与其他用户交流想法。社区人员可以帮助微软计划和测试未来的版本探索、也可以下载到额外的内容,比如一些扩展和培训材料。
新内容
本次升级提供了支持Silverlight4的Prism类库。实现的升级内容如下:
所有Visual Studio项目(Prism类库、Stock Trader 引用实现、和快速入门)被迁移到Visual Studio 2010和Silverlight4上。如果你不想升级到Silverlight4,参考以下部分。
对早期Silverlight版本的开放性
Silverlight 3
如果你安装的是Silverlight3,那么你可以使用 Composite Application Guidance for WPF and Silverlight - October 2009。此版本允许你使用Silverlight 3.
Silverlight 2
如果你使用的是Silverlight2,你在Visual Studio中使用Silverlight3编译你的项目,可能会发生如下错误:
无法读取项目文件: 导入的项目 "C:\Program Files\MSBuild\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" 没有找到。请确认<Import>声明的路径是正确的,并且磁盘中此文件存在。 |
|
为了能够使用新版本的好处,如对commands的修复,当使用Silverlight 2,你应当修改工程文件中的 <Import>路径。(以 *.csproj结尾的文件—如Composite.Silverlight.csproj, Composite.Presentation.Silverlight.csproj,和Composite.UnityExtensions.Silverlight.csproj) 指向Silverlight 2安装路径。 如:下面的 <Import>声明 :
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" /> |
|
改成如下: |
|
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v2.0\Microsoft.Silverlight.CSharp.targets" />
|
|
什么时候使用此指南
主要阐述一些你在构建企业级WPF客户端应用或SilverlightRIA应用时可能遇见的许多问题时,Prism是如何帮你找到问题所在,并且可以与变通方法进行比较。
应用开发挑战
一般客户端开发人员遇到很多挑战。应用需求随时变化。新业务挑战随时出现,新技术不断出现、或者开发过程中客户的不断反馈影响着应用的需求。因此,建立一个具有弹性的应用并且易于随时变化和扩展就显得尤为重要。设计这样的弹性是很难实现的。它要求架构中独立的部分应用可以独立开发、测试和更新,并且不影响应用中的其他部分。
大多数企业应用十分复杂,要求多名开发人员,甚至一个大开发团队(包括UI设计师、本地化工程师等)协同开发。这对设计应用开发框架满足多名开发人员或多团队有效协作开发不同部分来说,是一种很大的挑战,尤其是,还要保证这些独立开发的部分可以无缝的集成到整个大应用中。
设计和构建一个复杂的巨型应用会导致整个应用非常难以有效的进行维护。这种情况下的复杂性是由于该应用的组件之间具有紧耦合和难以明确独立划分的原因造成的。 应用的设计与构建过程中遇到的大量问题让开发者们头疼。给系统添加一个新的功能或替换一个已有的功能组件都十分困难,解决bug时也没有办法让系统的其他部分中断,此外,测试和部署也是问题。这些情况影响着开发者和设计者之间有效协同的能力。
复合解决方案
一种应对上述挑战的有效方式是把大的应用划分为一些独立的、松耦合的、自独立的组件,然后这些组件可以轻松的集成到一个大的应用“躯壳”中,形成一个一致的解决方案。以这种方式设计和构建的应用称为复合型解决方案。
复合型解决方案有以下一些优点:
复合应用高度适合于客户端应用场景。 如应用到创建一个基于完全不相干的后端系统的富用户体验前端。下图展示了一种复合应用。
多后端系统的复合应用
在此类型的复合程序里,可以给用户一种丰富灵活的用户体验,其后端则是由多个不同的系统、服务和数据库等组成,每个后端系统都是一个或多个专用的模块。应用逻辑和用户界面间的明确划分让应用可以通过模块组合的方式提供各种不同的且具有一致性的外观。
此外,复合应用对有不同团队维护的具有可独立进化的UI组件间的高度集成十分有效。下图展示了这种复合应用的快照。每一个高亮的区域都代表独立的组件,它们组成了整个程序的UI界面。
股票交易参考实现复合应用
这种组合方式允许用户界面动态组成。提供了灵活的用户体验。比如,可以允许新的功能在运行时动态的添加到程序当中,从而使得终端用户具有丰富的自定义性和扩展性。
Prism不解决的问题
Prism不直接针对以下下问题:
可以从以下MSDN地址获取更多相关信息:
如何选择模式与实践团队的复合UI的指导
模式与实践团队对构建复合应用程序有一些指导。下边列出了你应当考虑使用该方案的场景:
|
|
|
|
对比复合UI应用程序块
复合UI应用程序块(Composite UI Application Block,可简称为CAB )不是由模式与实践团体提供的一个新版本,它最初发布于2005年。 它是一套新的类库和指南,基于帮助你开发新的WPF/Silverlight复合应用程序而设计。 尽管不是应用程序块的新版本,但核心概念还是相同的 ,如模块性、UI构成、服务、依赖注入和事件代理。这些概念对构建复合应用程序是很重要的,Prism中就应用了这些概念; 但在实现方式上,Prim和应用程序块还是有很多不同的。 要了解更多的不同之处,可参考 Upgrading from the Composite UI Application Block。
更多信息
评估Prism可参考 Evaluating Prism。
Prism内容
Prism由以下内容构成:
文档内容
本文档一步步介绍使用Prism各模块来构建复合应用的相关概念。本文档旨在帮助广大读者理解复合场景,评估Prism类库,使用Prism类库。主要保护如下内容:
快速指南内容
包含Prism的快速指南是一种简明、易于理解的软件工厂活动的实例展示。 快速指南是一个理想的起步点,如果你想理解一些重要的概念并且想通过研究源码的方式来学习新的技术。Prism的快速入门主要包括如下内容:
反馈请到 Prism Community。
关于文档错误或反馈Email到 [email protected]。