Prism是一个开发和设计模块化WPF应用的基础框架,里面包含了MVVM pattern和设计示例。当前最新的版本是Prism 5.0,官方网站:https://compositewpf.codeplex.com/

Prism 5.0较4.0有相当的改动,其中主要变动的两个部分:

1. 提供Portal Class Library(PCL)库。这样就可支持WPF,Windows Phone 8,Windows Store 8.1平台而不用修改代码。

2. 把之前一个大的Prism DLL拆分成多个功能块,这些功能块可以单独应用。模块主要有Prism.Composition, Prism.Mvvm, Prism.PubSubEvents, 和 Prism.Interactivity。

  • 我们可以只引入我们想用的模块,如果只用event相关的,只需引用PubSubEvent模块;
  • 使用PCL,平台无关;
  • 更新快且简单;

注意,如果想在.NET 4.0,Sliverligh, Windows Phone 7.0开发,得使用Prism 4.1及以下版本。

Prism设计目标

  • 模块化(module)
  • 减少相互依赖,松耦合
  • 重用
  • 高质量
  • 可扩展

Prism主要概念

  • Module: Module是可以被独立开发、测试和部署的包或功能块。比如一个独立的业务模块,一个基础的Logging模块等。
  • Module Catalog: 主要是用来指定加载哪些module,什么时候加载,加载的顺序。可以使用代码或XAML文件或config文件来设置。
  • Shell: 应用程序的Host,用来定义应用程序UI的全局区域结构,容纳加载的modules。
  • Views: 定义应用程序的UI。
  • View Model:处理UI行为和状态。
  • Model:应用程序的业务模型和数据。
  • Commands
  • Regions:定义UI区域
  • Navigation
  • EventAggregator
  • DI Container
  • Services
  • Controllers
  • Bootstrapper

后续文章会逐个解读Prism这些主要概念是如何实现的。

《Prism 5.0源码走读》Prism 5.0简介的更多相关文章

  1. WangSql 3.0源码共享(WangSql 1.0重大升级到3.0)

    WangSql 1.0博文阅读: http://www.cnblogs.com/deeround/p/6204610.html 基于1.0做了以下重大改动: 1.多数据实现方式调整 2.使用EmitM ...

  2. 《Prism 5.0源码走读》ModuleCatalog

    概念 ModuleCatalog 是Prism中主要概念之一,主要用来保存应用程序可用的modules(模块),每个module都是用ModuleInfo来定义(包含module的名称.类型和位置). ...

  3. 《Prism 5.0源码走读》UnityBootstrapper

    UnityBootstrapper (abstract class)继承自Bootstrapper(abstract)类, 在Prism.UnityExtensions.Desktop project ...

  4. 《Prism 5.0源码走读》Service Locator Pattern

    在Prism Bootstrapper里面取实例的时候使用 ServiceLocator模式,使用的是CommonServiceLocator库 (http://commonservicelocato ...

  5. 《Prism 5.0源码走读》 设计模式

    Prism或Prism构建的应用程序时会使用大量的设计模式,本文简要列举Prism相关的那些设计模式. Adapter(适配器模式):Prism Library主要在Region和IoC contai ...

  6. 《Prism 5.0源码走读》Bootstrapper

    Prism框架需要在应用程序启动的时候进行一些初始化的工作,Bootstrapper就是来做这些的,是其切入点. Bootstrapper主要要做的事有:创建和配置module catalog,创建D ...

  7. WangSql 1.0源码共享

    一,项目背景 现在基本上大大小小的项目都需要和数据库打交道,自然而然数据库操作会有很多地方,而使用传统ADO.NET整个流程有点麻烦,出参都需要手动转换为对象.基于以上,我们需要一个SQL执行工具,能 ...

  8. 编译jmeter5.0源码

    jmeter5.0使用过程中,遇到request或者response乱码的情况,想要一次性解决这个问题,需要编译ApacheJMeter_http.jar这个包(lib\ext文件下)里的Reques ...

  9. Apache Spark源码走读之23 -- Spark MLLib中拟牛顿法L-BFGS的源码实现

    欢迎转载,转载请注明出处,徽沪一郎. 概要 本文就拟牛顿法L-BFGS的由来做一个简要的回顾,然后就其在spark mllib中的实现进行源码走读. 拟牛顿法 数学原理 代码实现 L-BFGS算法中使 ...

随机推荐

  1. Appium环境搭建Java篇

    1.下载.安装JDK&配置Java环境变量 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html ...

  2. 图像JPEG格式介绍

    1 JPG格式介绍 JPEG (Joint PhotographicExperts GROUP)是由国际标准组织和国际电话电报咨询委员会为静态图像所建立的第一个国际数字图像压缩标准,也是至今一直在使用 ...

  3. Rational Functional Tester 对象文件(rftdef)合并

    Rational Functional Tester (RFT) 是一款集成在Eclipse上的自动化测试工具.而自动化测试最麻烦的维护部分,一大部分也是指的是对象库文件的管理维护. 之前的项目里,经 ...

  4. yii中第三方库

    yii中存在一些路径别名:ext:表示包含了所有第三方扩展的目录  参考:http://www.yiiframework.com/doc/guide/1.1/zh_cn/basics.namespac ...

  5. Facebook 的系统架构(转)

    来源:http://www.quora.com/What-is-Facebooks-architecture(由Micha?l Figuière回答) 根据我现有的阅读和谈话,我所理解的今天Faceb ...

  6. 关于<html>标签里的class= no-js

    最近研究bootstrap的时候,发现了一个案例网站有一段 <html class="no-js"> 然后问了下度娘,找到了一篇大神的文章 里面对这个有很详细的解释: ...

  7. C# 后台请求web服务方法

            /// <summary>         /// 传输方法         /// </summary>         /// <param name ...

  8. .net框架版本说明

    .NET框架 1.0..NET框架 1.1..NET框架 2.0..NET框架 3.0..NET框架 3.5..NET框架 4.00 .netframework3.0Windows Presentat ...

  9. sqlca.sqlcode

    http://www.cppblog.com/prayer/archive/2009/06/03/86679.html        ======DB2 http://my.oschina.net/s ...

  10. 一款简单射击游戏IOS源码

    源码描述: 一款基于cocos2d的简单设计游戏,并且也是一款基于cocos2d的简单射击游戏(含苹果IAD广告), 游戏操作很简单,哪个数字大就点击射击哪个.里面有苹果iad广告,功能简单完整,适合 ...