对于很多企业级的应用程序来说,部署原子级的程序都会有很大的问题。 当应用程序需要以全有或全无的方式部署的时候,拥有开发者的角度的模块化代码不会有任何帮助,一个缺陷就会破坏整个发布。 Prism允许你将程序按照任意特定的功能分割,然后再部署给用户,这样就可以解决上述的问题。 其中单独的特性会作为独立的模块发布。 这些模块可能会存储在本地、协作文件共享服务器,或者提供服务的站点上。
开发者会负责创建Shell程序、托管应用程序以及限定的区域(Region)。 区域(Region)是可以从模块(Module)中载入动态内容的占位符(placeholder)。 模块应该以标准的MVC模式构建,其中有一个或多个视图、一个控制器和一个模型。
Prism框架提供了模块目录(Module Catalog)、模块管理器(Module Manager)和区域管理器(Region Manager)。 我们可以通过代码、XAML文件、配置文件或者遍历目录来生成模块的目录。 然后管理器会以即时或者按需的方式载入模块。 最后区域管理器(Region manager)会从模块中将视图载入到正确的区域中。
通常情况下,模块之间不会直接相互通信。 跨模块的通信是通过事件聚合器(Event Aggregator)来处理的。 这是一个多发布方(multiple-publisher)、多订阅方(multiple-subscriber)的事件管理系统。
最新发布的Prism 4.0支持WPF和Silverlight 4,并且是基于微软公共证书(Microsoft Public License)发布的。
查看英文原文:Prism Prevents One Incomplete Feature from Derailing an Entire Release