一个新学WPF的IT老鸟,肝了2个月作了这么一个WPF企业级开发框架,站长clone学习,以为甚是不错。这是一个使用了Prism搭建的插件式框架,封装了DataGrid的使用,使整个框架子模块简单易学、易扩展,特别是做者还写了一个系列博客教程,值得点赞。html
下面是做者博文系列首篇:WPF企业级开发框架搭建指南(启示录),2020从入门到放弃git
这个系列的文章旨在记录工做中使用WPF开发新的医疗项目中,有感于必须统一掉一些规范上的事情,而且提升团队开发效率,遂折腾了这么一个半吊子的框架,这个标题WPF企业级开发框架搭建指南,2020从入门到放弃可能会唬住一些人,但看到这些零碎文字的朋友就凑和着看吧,若是能帮助到你,那也荣幸了。github
WPF技术是一个很不错的技术,但一直没有上手过正式的项目,趁在作这个医疗项目时,遂搭建一个WPF开发框架,目的是为了统一WPF开发并提升开发效率;我对WPF技术算是零基础,现学现卖,用这些不成体系的文字予以记录一些想法和实践。web
文章目录shell
在正式开始WPF开发框架搭建以前,作了一些技术选型和在群里面咨询了下对WPF技术比较了解的群友,当中就属dotnet9.com的站长常常被笔者叨扰。先来讲说我指望中的开发框架要实现哪些功能。api
在开始搭建以前呢,仍是晾一下最终的架构图吧。服务器
上图就是折腾出来的一个框架,图不美观的话,大伙也就凑合着看吧。下图是解决方案:markdown
由于项目是使用WPF来开发的,天然基于【MVVM】的理念搭建了这么一个快速开发框架,适用于开发【传统类型的管理系统】,并经过调用web api的方式来完成全部的业务操做,在WPF的Page,窗体(Window),用户控件的后置代码,几乎不会有任何的业务代码,除了一些控制界面行为的功能。架构
在搭建这个框架时,是基于最新的 【 .net 5】用的技术版本是比较新的,演示代码中,wpf也是使用 .net 5。框架
解决方案从上到下依次为:
在JHRS.Core这个库里面,各个目录功能说明以下:
JHRS.Shell是WPF客户端项目的入口程序,而且定义了整个系统公用的消息提示框,模态窗口风格,主窗口等;登陆的入口也是在这里定义的,登陆系统后,能够自行实现权限功能加只加载对应的子模块(子系统);在程序启动时,会自动作一些初始化操做,扫描程序集自动注入相关功能,具体实现参见这里。
消息提示框
消息弹框
确认消息框
模态窗口
遮罩层效果(蒙层效果或Loading效果)
遮罩层效果通常用于点击按钮,加载数据时使用,即调用接口到数据呈现中间有一个等待的过程,就能够显示出来,所以在框架中经过AOP方式封装了这么一个效果,调用时在相关的地方标记一个特性便可。先来看看效果。
该效果是直接从CSDN抠过来的,而后整到到代码里面去的,纯演示目的。
参考连接:https://blog.csdn.net/lhx527099095/article/details/8005095
在modules这个解决方案文件夹里面的是各个子模块,也就是各个子系统,例如【JHRS.OutpatientSystem】是WPF项目的子系统之一(门诊模块);在各子系统中,最外层拥有一个Module的类(OutpatientSystemModule),须要实现IModule接口供Prism自动扫描注册到容器里面。
在子模块中,目录的组织原则以下。
目录组织原则
在每个子系统中,最外层的一个模块类,名称规则为:【模块名称+Module】,编写这个类是为了使用Prism加载这个模块。
基础类库,能够任意扩展,该库能够供其它全部库引用。
该工具是在线解析swagger生成供Refit调用的接口,生成的接口以下:
调用接口的示例代码以下:
对于WPF开发来讲,我并非很熟悉,这段时间以来一直网上学习和借鉴一些开源的框架,再结合实际项目而整出来的这个开发框架;可能对于从事WPF开发的朋友来讲有必定的借鉴意义。
完整的项目代码已经开源到github上面。在这个项目中,并不包含web api的项目。
本文markdown原文分享:https://dotnet9.com/2020-09-07
除非注明,文章均由 Dotnet9 整理发布,欢迎转载。
转载请注明:
做者:Dotnet9
连接:https://dotnet9.com/16199.html
来源:Dotnet9
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。
欢迎关注站长公众号:Dotnet9