1.概要
Prism介绍
  • Github: https://github.com/PrismLibrary/Prism
  • 开发文档:https://prismlibrary.com/docs/
Prism是一个框架,用于在WPF、Xamarin Forms、Uno Platform和WinUI中构建松散耦合、可维护和可测试的XAML应用程序。
设计目标 为了实现下列目的:创建能够由模块组成的程序,这些模块能够被单独地编写、组装、部署,并且对于程序来说是可选的 最小化团队之间的依赖,让每个团队专注与特定的领域。比如UI、逻辑代码实现或者是架构代码的开发。通过架构提高不同团队之间的复用能力 通过抽象团队通用服务提高程序质量 迭代添加新的功能
Prism被设计用来帮助你设计和实现丰富、灵活、易于维护的WPF程序。Prism实现了多种设计模式,突出架构设计的松耦合、关注点分离等原则。使用设计模式和Prism提供的额能力,你可以通过独立开发的松耦合组件轻松的集成到整个应用程序中,从而开发一个应用程序。 Prism围绕架构原则的分散关注点和松耦合原则而设计的。这使得Prism提供能一下的好处:
  • 重用。Prism通过允许组件和服务能够轻松的被开发、测试、集成到一个或多个程序来实现重用。组件级别的复用是通过依赖注入来轻松地发现和集成单元测试级别的组件。应用级别的复用是重用封装了应用级别能力的模块。
  • 可扩展。Prism通过管理组件依赖,允许组件在运行时很容易地被集成或者被其他实现所替换,使得程序能够很容易地被扩展。并且将程序分解到模块,使得模块能够独立地更新和部署。Prism库中的许多组件本身就可以被扩展或者是替换。
  • 灵活。Prism通过允许像开发集成新能力一样更新功能。Prism还允许WPF程序使用通用服务和组件开发,允许程序以最适当地方式去部署和使用。还允许程序基于不同的角色和配置,提供不同的使用功能。
  • 团队开发。Prism促进团队开发,通过允许不同的团队单独开发甚至部署不同的应用程序部分。通过让团队专注于不同的功能领域或业务功能领域来减少团队之间的依赖。
  • 质量。Prism通用让开发团队充分地测试服务和组件提高程序质量。此外,由于通用服务和组件都被完全地测试过了,开发团队能够专注于程序需求而不是如何实现和测试基础代码。 (以上内容均来自网络。)
2.详细内容
  • 1.业务功能:
  • (1)登录邮箱
 
 
  • (2)邮件收发、抄送(协议、接口、文字编辑、布局)、回复 、垃圾箱、收发件箱、标星邮件、标星邮件列表、邮件(增、删、查)。
 
 
 
  • (3)通讯录(新建、删除、修改联系人)、联系人详情、联系人列表。
 
 
 
  • (4)设置(账号)
 
 
 
  • 2.非业务功能:登录、自动更新、最大化最小化、关闭等。
 
 
 
 
 
 
  • 3.界面交互:命令区(主、副命令区划分等级根据影响范围来确定)、工作区、交互逻辑。
 
 
 
  • 4.资源:数据资源(样式、数据内容、模板、动画、触发器等)、非托管资源(图片、音乐等文件资源)、语言资源、字体资源等。
3.建项
  • 1.VS扩展中下载 Prism Template Pack项目模板。
 
 
  • 2.新建项目时,使用模板‘Prism Blank App’创建应用,选择DryIOC
 
 
  • 3.创建一个业务模块
 
 
IoC:是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
按照以上思想设计的框架都叫IoC,它只是这一类框架的总称。IoC的框架有很多种例如MEF、Autofac、Castle Windsor、Unity。
初学可简单理解为有两个部分组成一个业务容器,和若干个业务模块组成。都塞到容器中进行管理。
Plug:是业务划分独立出的模块,里面具体的业务实现和常规的MVVM一样。
 
 
 

02Prism WPF 入门实战 - 建项的更多相关文章

  1. 01Prism WPF 入门实战 - 项目准备

    1.概要 这一系列将进行Prism+WPF技术的实战讲解.实战项目内容选型为Email邮件收发的客户端(WeMail),项目结构简单方便大家理解. 相关技术:C#.WPF.Prism 软件开发环境:V ...

  2. WPF入门教程系列二——Application介绍

    一.Application介绍 WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只 ...

  3. Spark入门实战系列--4.Spark运行架构

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1. Spark运行架构 1.1 术语定义 lApplication:Spark Appli ...

  4. WPF入门教程系列(一) 创建你的第一个WPF项目

    WPF入门教程系列(一) 创建你的第一个WPF项目 WPF基础知识 快速学习绝不是从零学起的,良好的基础是快速入手的关键,下面先为大家摞列以下自己总结的学习WPF的几点基础知识: 1) C#基础语法知 ...

  5. Bootstrap3 入门实战

    因为公司选择了使用BootStrap3作为项目的前台展示框架,所以花了半天时间来学习Bootstrap, 如果你是第一次听说,或者说以前听说过,但没有使用过这个框架的话,希望这篇入门实战能够让你快速掌 ...

  6. Gerrit代码Review入门实战

    代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略.在实践中,给大家推荐一款免费.开放源代码的代码审查软件Gerri ...

  7. 深度学习入门实战(二)-用TensorFlow训练线性回归

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者 :董超 上一篇文章我们介绍了 MxNet 的安装,但 MxNet 有个缺点,那就是文档不太全,用起来可能 ...

  8. 你一定喜欢看的 Webpack 2.× 入门实战(转载)

    最近在学习 Webpack,网上大多数入门教程都是基于 Webpack 1.x 版本的,我学习 Webpack 的时候是看了 zhangwang 的 <<入门 Webpack,看这篇就够了 ...

  9. 你一定喜欢看的 Webpack 2.× 入门实战

    from:https://www.jianshu.com/p/b83a251d53db?utm_campaign=maleskine&utm_content=note&utm_medi ...

随机推荐

  1. MySQL高可用主从复制简介

    原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 简介 1.1 概述 二 技术原理 2.1 支持的复制类型 2.2 技术特点 2 ...

  2. CSS3 animaion 和 transition 比较

    animation是CSS3的动画属性,可以设置以下六种属性. transition是CSS3的过度属性,可以设置以下四种属性. 从属性上分析,animation可以设定循环次数. 其次,两者的触发条 ...

  3. 剑指 Offer 31. 栈的压入、弹出序列

    剑指 Offer 31. 栈的压入.弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某 ...

  4. linux系统配置本地yum源

    1. 前言 学习Linux系统需要大量的实验,而每次安装系统和准备安装系统后的基础配置比较耗时费力.如果在生产环境中,遇到内网(无法访问互联网)情况下,就需要利用挂载的ISO文件内的Packages中 ...

  5. Http协议 压缩

    先说结论:Request和Response可以设置gzip压缩从而节省流量/带宽,这是一个不常见的问题.具体可见连接:HTTP 协议之压缩 最近测试代理服务器时,意外的发现使用urlopen请求百度首 ...

  6. Robot Framework(7)- DateTime 测试库常用的关键字列表

    如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 所有关键字 ...

  7. python-request 实现企业微信接口自动化-1(DDT)

    环境准备 python+requests 读取企业微信api开发文档,得知调用企业微信接口必须先获取企业微信的accesstoken是通过 ("corpid","&quo ...

  8. 2021.9.12周六PAT甲级考试复盘与总结

    周六PAT甲级考试复盘与总结 先说结论:仍未步入"高手"行列:现在的学习节奏与方法是对的,有十万分的必要坚持下去. 题目 知识点 分数 T1 前缀和.二分 11 / 20 T2 排 ...

  9. 《NAT穿越(NAT-T)RFC3947文档》记录

  10. Delphi使用Zxing创建二维码

    效果 DelphiZXingQRCode下载地址:https://www.debenu.com/open-source/delphizxingqrcode/ 为了调用方便unit DelphiZXIn ...