02Prism WPF 入门实战 - 建项

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)登录邮箱

b6feb2a2c5f31a951a5415bfdc146677.png

    • (2)邮件收发、抄送(协议、接口、文字编辑、布局)、回复 、垃圾箱、收发件箱、标星邮件、标星邮件列表、邮件(增、删、查)。

512424d10adbf843dfd0ea764ab499f1.png

    • (3)通讯录(新建、删除、修改联系人)、联系人详情、联系人列表。

7de7155de67b9d8f8a086f44ce409675.png

    • (4)设置(账号)

acb20a706d6dcf8b6670f6766b90f46e.png

  • 2.非业务功能:登录、自动更新、最大化最小化、关闭等。

a27eaed7a8c12d1e35369b605e8586c7.png

bf138bc6598728c77b2bbe16285fb234.png

  • 3.界面交互:命令区(主、副命令区划分等级根据影响范围来确定)、工作区、交互逻辑。

2e68b2b92390f2ce481382f1334a0508.png

  • 4.资源:数据资源(样式、数据内容、模板、动画、触发器等)、非托管资源(图片、音乐等文件资源)、语言资源、字体资源等。

3.建项

  • 1.VS扩展中下载 Prism Template Pack项目模板。

031ef0917be225d10796cd0bd1d73eef.png

  • 2.新建项目时,使用模板‘Prism Blank App’创建应用,选择DryIOC

17e32df608b4b114929acdc72a7b6cc2.png

  • 3.创建一个业务模块

7a74be7bf28ef05c4d2d7af730b82f7e.png

IoC:是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。

按照以上思想设计的框架都叫IoC,它只是这一类框架的总称。IoC的框架有很多种例如MEF、Autofac、Castle Windsor、Unity。

初学可简单理解为有两个部分组成一个业务容器,和若干个业务模块组成。都塞到容器中进行管理。

Plug:是业务划分独立出的模块,里面具体的业务实现和常规的MVVM一样。

d658634d76e14395455263f2a5d801ff.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html首页 slider图片切换效果,jQuery插件Slider Revolution实现响应动画滑动图片切换效果...

jQuery插件Slider Revolution实现响应动画滑动图片切换效果2018-12-31编程之家https://www.jb51.cc这是一款非常强大的内容切换插件,它基于jQuery,它充分响应,支持移动设备,支持手机触摸,键盘翻页;它内置幻…

大数据告诉你:学历真的能改变命运!!

全世界只有3.14 % 的人关注了爆炸吧知识央视新闻曾做过关于高考的调查,结果有七成网友支持高考取消数学,看到新闻后,有一位网友却一针见血地评论道:数学考试存在的意义就是把这七成网友筛选掉。的确,虽然买菜不需要专业…

小米8ios图标包下载_小米互传PC端抢先下载,免流量、高速互传,支持多设备共享...

小米早在MIUI初期就已经在开始探索手机与电脑之间互传文件的问题,MIUI"无线数据线"功能一直备受喜欢。手机与电脑之间互传,90%的用户都选择使用WX或者QQ来实现,它们互传的通道是互联网,无网时不可使用。为解决这个问题&…

HTML怎么做类似QQ聊天气泡,h5实现QQ聊天气泡的实例介绍

这篇文章主要介绍了HTML5实现QQ聊天气泡效果,用 HTML/CSS 做了个类似QQ的聊天气泡,具有一定的参考价值,感兴趣的小伙伴们可以参考一下今天自己用 HTML/CSS 做了个类似QQ的聊天气泡,以下是效果图:以下说下关键地方的样式…

高等数学的用处之一

1 只能说计算的真精准2 龙虾:我都准备半天了,你俩到底上不上?3 猫(≧^.^≦):我为这个宿舍付出太多了!4 请举一个日常生活中利用高等数学来解决问题的案例。5 男生做什么会让女生不开心7 人家拍的泸沽湖的水性杨花和我拍…

Fiddler抓包一键生成调用代码

首先我们的需求场景是用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤:1设置http请求相关的参数:header,method,url,cookie等2设置post的body(如果是post的话需要)3拿到返回的body(一般我们需要拿到接口的返回体进行…

DexClassLoader的使用

版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/47146613 在Java环境中,有个概念叫做”类装载器(Class Loader)”,其作用是动态加载Class文件.标准的Java SDK中有一个ClassLoader类,借助…

这才是老公的正确用法,不吃就往死里打......

1 倒是好办法就是有点儿费爸爸▼2 一只被主人遗弃的小熊的奇幻旅程▼3 小子,你单身的命运gu7在你把美女老师撂倒那一刻就注定了...▼4 张萌姐姐自我肯定式唱歌▼5 ???有被冒犯到▼6 听说昨天有个少年28岁就退休了▼7 哪个男…

C# WPF MVVM模式下在主窗体显示子窗体并获取结果

01—前言在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以:Form2 f2 new Form2();f2.Show();或者Form2 f2 new Form2();f2.ShowDialog();但是,在wpf的mvvm模式下,这种方法是行不通的,因为逻辑是…

Exchange 2010发现拓扑失败

今天跟大家继续分享一个我在项目中遇到的问题哈,希望对大家今后的项目排错有帮助。问题背景:企业主域控从 Window Server 2003升级为Windows Server 2012 R2具体实施方法可以参考我之前的文章(http://horse87.blog.51cto.com/2633686/1613268)在顺利升级…

html引用单文件组件,vue之单文件组件 纯网页方式引入

上一节的vue组件开发是把组件内容统一放到了一个js文件里面里面写上模板字符串(引用组件) 这种方式还需要拼接转义 写法非常丑陋vue贴心的帮我们封装了单文件组件 可以不用再模板里面拼接字符串下面看下写法由于我们目前没有使用webpack和vue-cli等构建工具(为了快速学习vue的语…

足不出户,游遍七大洲,不可错过的14部地理纪录片!

见识是超越时间与空间的力量,使人身未行,而心已至之。今天的资源分享就从七大洲为切入点,为各位献上最值得观看的14部地理纪录片,与各位一起探索各大洲的独一无二的自然与人文景观,从这些丰富的影像中,不仅…

在Cocos2d中实现能够惯性拖动的选择界面

苹果的应用讲究用户体验 有的时候仔细想想 的确,很多细节决定了用户体验 比如说惯性拖动 可以说之前没有任何一家厂商能把触摸惯性拖动做的像苹果的UI那么流畅 Cocos2D中实现能够惯性拖动的选择界面 完成的效果: 制作一个简单的图层,通过传入…

SignalR在React/Go技术栈的实践

哼哧哼哧半年,优化改进了一个运维开发web平台。本文记录SignalR在react/golang 技术栈的生产小实践。01背景有个前后端分离的运维开发web平台, 后端会间隔5分钟同步一次数据,现在需要将最新一次同步的时间推送到web前端。说到[web服务端推送]…

16张扎心漫画,戳中女生私密日常,每一幕都很真实

全世界只有3.14 % 的人关注了爆炸吧知识比利时的插画师Planet Prudence,画了很多女生的真实日常,每一幕都很戳心,一起来看看吧。别人的痘痘一长就是一个,我一长就是一片。买买买的时候爽得要命,要穿的时候总觉得自己没…

Magicodes.IE 2.5.6.2发布

2.5.6.22021.10.13支持自定义列字体颜色,具体见PR#342,感谢xiangxiren修复日期格式化的问题,具体见PR#344,感谢ccccccmd2.5.6.12021.10.06修复 #337,bool?类型导出的映射问题2.5.6.02021.10.05合并Magicodes.EPPlus到…

一个让我很不爽的外包项目——奔驰Smart2015新官网

七月份的下半个月,有幸做了奔驰 Smart 2015年新官网,包括手机端和PC端的宣传页,地址: PC端手机端这里,为了证明这个是一个事实,我还特意的留存了两张截图: 这里只想说明这么几个问题&#xff1a…

为什么饮料瓶大都是圆的,牛奶盒却是方的?原因你想不到

全世界只有3.14 % 的人关注了爆炸吧知识每日看着电视玩着手机再喝着饮料那是相当美好但是喝了这么久的饮料你有没有想过一个问题为什么饮料瓶一般都是圆的?而牛奶盒却是方的?图片来源网络有的人可能会说饮料瓶要拿在手上当然是圆的舒服啊拿着一个方形的饮…

IIS相关问题及解决方案

1、问题:HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配 可能原因:在自己使用IIS发布网站之后,自己所使用的当前账户的密码改变了。 解决方法:将用户才密码改回来即可.... 2. 转载于:https://www.…

博客园html源码编辑出错,博客园小技巧

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!在博客园写博的半年中,我有时会纠结于一些诸如写作格式和显示效果之类的小问题。我想任何一个热衷于在这里写博客的人都可能会遇到类似…