概要

Prism提供指导,帮助您更轻松地设计和构建,灵活且易于维护的客户端业务应用程序,这些应用程序可在Windows运行时,Windows Presentation Foundation(WPF)桌面,Silverlight或Windows Phone 7上运行。随着时间的推移而演变

使用体现重要架构设计原则的设计模式,例如关注点分离和松散耦合,Prism帮助您设计和构建体现重要的表示和业务逻辑的应用程序,这些应用程序通常与后端系统和服务交互,并使用分层架构,可以跨多个层进行物理部署。预计该应用程序将在其生命周期内发生重大变化,以响应新的需求和商机。简而言之,这些应用程序“经久耐用”,“为变革而打造”。不需要这些特性的应用程序可能无法使用Prism。

社区

WPF的Prism和Windows Runtime的SilverlightPrism拥有蓬勃发展的在线社区。

在这些社区网站上,您可以发布问题,提供反馈或与其他用户联系以分享想法。社区成员还可以帮助Microsoft计划和测试未来的产品,并下载其他内容,例如扩展和培训材料。

入门演示:

示例中用到了8个子模块, 所有的子模块统一继承 IModule接口, 实现Initialize方法。如下代码所示:

public class ModA : IModule
{ public ModA(IRegionViewRegistry registry)
{
this.regionViewRegistry = registry;
} private readonly IRegionViewRegistry regionViewRegistry; public void Initialize()
{
regionViewRegistry.RegisterViewWithRegion(Module.ModA.ToString(), typeof(Hello));
}
}

在启动项中的app.xaml中, 重写OnStartUp方法, 添加Bootstrapper类启动项。

 protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Bootstrapper bootstrapper = new Bootstrapper();
bootstrapper.Run();
}

Bootstrapper类的具体实现如下:

class Bootstrapper : UnityBootstrapper
{
protected override DependencyObject CreateShell()
{
return this.Container.Resolve<MainWindow>();
} protected override void InitializeShell()
{
base.InitializeShell(); App.Current.MainWindow = (Window)this.Shell;
App.Current.MainWindow.Show();
} protected override void ConfigureModuleCatalog()
{
base.ConfigureModuleCatalog(); ModuleCatalog moduleCatalog = (ModuleCatalog)this.ModuleCatalog;
moduleCatalog.AddModule(typeof(ModA.ModA));
moduleCatalog.AddModule(typeof(ModB.ModB));
moduleCatalog.AddModule(typeof(ModC.ModC));
moduleCatalog.AddModule(typeof(ModD.ModD));
moduleCatalog.AddModule(typeof(ModE.ModE));
moduleCatalog.AddModule(typeof(ModF.ModF));
moduleCatalog.AddModule(typeof(ModG.ModG));
moduleCatalog.AddModule(typeof(ModH.ModH));
}
}

在Bootstrapper中, 通过重写了 ConfigureModuleCatalog方法 , 添加各个子模块的 IModule具体实现。

界面层:

模块显示区域设置RegionName, 也可以利用后台代码进行程序集加载的方式, 如此固定是演示其效果:

项目解决方案:

模块的实现示例代码, 通过RegisterViewWithRegion注册指定模块, 和向其指定的View页 :

项目源代码

Prism 框架基础架构的更多相关文章

  1. JavaWeb三大框架基础架构——CRUD的基础功能搭建

    @ 目录 介绍 注意 applicationContext.xml mybatis-config.xml web.xml 结束语 介绍 项目前端采用了bootstrap,后端是ssm三大框架 注意 这 ...

  2. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释

    继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...

  3. 深入浅出node.js游戏服务器开发1——基础架构与框架介绍

    2013年04月19日 14:09:37 MJiao 阅读数:4614   深入浅出node.js游戏服务器开发1——基础架构与框架介绍   游戏服务器概述 没开发过游戏的人会觉得游戏服务器是很神秘的 ...

  4. Go RPC 框架 KiteX 性能优化实践 原创 基础架构团队 字节跳动技术团队 2021-01-18

    Go RPC 框架 KiteX 性能优化实践 原创 基础架构团队 字节跳动技术团队 2021-01-18

  5. ABP框架之——数据访问基础架构

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享阅读心得,希望我的文章能成为你成长路上的一块垫脚石,我们一起精进. 几乎所有的业务应用程序都要适用一种数据库基础架构,用来实现数据访问逻辑,以便从数 ...

  6. WPF Step By Step 系列-Prism框架在项目中使用

    WPF Step By Step 系列-Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Pr ...

  7. 项目中使用Prism框架

    Prism框架在项目中使用   回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Prism框架来构建基础的应用框架,并且 ...

  8. Prism框架在项目中使用

    本文大纲 1.Prism框架下载和说明 2.Prism项目预览及简单介绍. 3.Prism框架如何在项目中使用. Prism框架下载和说明 Prism框架是针对WPF和Silverlight的MVVM ...

  9. 【.NET6+WPF】WPF使用prism框架+Unity IOC容器实现MVVM双向绑定和依赖注入

    前言:在C/S架构上,WPF无疑已经是"桌面一霸"了.在.NET生态环境中,很多小伙伴还在使用Winform开发C/S架构的桌面应用.但是WPF也有很多年的历史了,并且基于MVVM ...

随机推荐

  1. UVA-11134 Fabled Rooks 贪心问题(区间贪心)

    题目链接:https://cn.vjudge.net/problem/UVA-11134 题意 在 n*n 的棋盘上,放上 n 个车(ju).使得这 n 个车互相不攻击,即任意两个车不在同一行.同一列 ...

  2. BZOJ 3626 LCA(离线+树链剖分+差分)

    显然,暴力求解的复杂度是无法承受的. 考虑这样的一种暴力,我们把 z 到根上的点全部打标记,对于 l 到 r 之间的点,向上搜索到第一个有标记的点求出它的深度统计答案.观察到,深度其实就是上面有几个已 ...

  3. perl模块

    查看perl模块安装目录:find `perl -e ‘print “@INC”‘` -name ‘*.pm’ -print 为什么要写或要模块呢?简言之:代码重用,更多见于写一组工具集,有很多地方是 ...

  4. 一 Balancer regionCountCost 权重。

    原文如下地址 : http://www.cnblogs.com/cenyuhai/p/3650943.html 看源码很久了,终于开始动手写博客了,为什么是先写负载均衡呢,因为一个室友入职新公司了,然 ...

  5. 利用NSProxy解决NSTimer内存泄漏问题

    之前写过一篇利用RunTime解决由NSTimer导致的内存泄漏的文章,最近和同事讨论觉得这样写有点复杂,然后发现有NSProxy这么好用的根类,根类,根类,没错NSProxy与NSObject一样是 ...

  6. Bitmap缓存机制

    Bitmap缓存机制 载入一个bitmap到UI里面比較简单直接.可是,假设我们一次载入大量的bitmap数据的时候就变得复杂了.很多情况下(比方这些组件:ListVIew,GridView或者Vie ...

  7. 七牛用户搭建c# sdk的图文讲解

    Qiniu 七牛问题解答 问题描写叙述:非常多客户属于小白类型. 可是请不要随便喷七牛的文档站.由于须要一点http的专业知识才干了解七牛的api文档.如今我给大家弄个c# sdk的搭建步骤 问题解决 ...

  8. Shiro架构及其组件

    Shiro可以帮助我们完成:认证.授权.加密.会话管理.与Web集成.缓存等.这不就是我们想要的嘛,而且Shiro的API也是非常简单:其基本功能点如下图所示: Authentication:身份认证 ...

  9. beego实现web api接口

    1)程序代码: /** * 类似beego版物联网首页产品数据的调用 */import (    "github.com/astaxie/beego"    "githu ...

  10. 洛谷P1919 【模板】A*B Problem升级版(FFT快速傅里叶)

    题目描述 给出两个n位10进制整数x和y,你需要计算x*y. 输入输出格式 输入格式: 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. 输出格式: 输出一 ...