Uwl.Admin.Core开源框架介绍

1、前言

作为一个忠实的软粉,一直期待微软出跨平台,一直在等待.Net Core,因为刚毕业对于.Net的很多东西不是很熟知,就开始了.Net Core的摸索,一路上坎坎坷坷,对于新技术一直很期待,就开始漫长的.Net Core的学习和编写开源框架,希望自己写的文章能给.Net Core社区贡献一下自己的坎坷路,这一路所遇到的问题磕磕绊绊,各种问题层出不穷,但是我认为没有解决不了的问题,只有你想不想去做,摆好自己的心态,做好一个目标,你就会成功。

本系列文章只是对框架现有的一些技术做一个简单说明或者是引入,只是一个抛砖引玉的作用,第一次写博客希望各路大神多多指导。

2、框架简介

*、Uwl.Admin.Core开源框架技术选择的是.Net Core2.2以上的版本,ORM选择的是EF Core,(个人偏向喜欢用EF Core),前端选择的是目前主流技术Vue.js+Iview UI框架;

*、框架功能:1)用户管理;2)菜单管理;3)组织机构;4)按钮管理;5)角色分配权限;6)角色管理;7)定时任务;8)个人资料;9)Excel导入、导出;10)用户分配角色;11)SignalR即时通讯

*、框架使用仓储模式用来管理数据连接层,缓存使用的是Redis,Redis链接使用单例模式来管理;仓储内由工作单元来管理数事务上下文;

*、框架同时还封装了RabbitMQ指定队列模式, 目前没有功能实现后期扩展, 若想使用RabbitMQ请先配置RabbitMQ;我这里使用的是Windows服务器    请看文章   RabbitMQ消息队列入门(一)

2、技术简介

后端技术

Uwl.Admin.Core使用的技术有:

*、Async和Await 异步编程

*、Repository + Service 仓储模式编程; 仓储模式支持工作单元

*、Swagger 前后端文档说明,基于RESTful风格编写接口

*、Cors 简单的跨域解决方案

*、JWT自定义策略授权权限验证

*、依赖注入选择的是官方自带的DI注入,没有使用第三方框架,ORM使用EF Core,数据库使用的是Sql server,(后期会扩展MySql版本);

*、AutoMapper 自动对象映射、

*、Linq To Sql \ lambda表达式树查询; (表达式树查询是个人扩展的,表达式树的使用方法请参考Uwl.Data.Server.MenuServer的多条件查询)

*、登录认证方式使用JWT认证方式,后台接口使用SwaggerUI展示,角色权限使用  自定义权限处理器PermissionHandler 继承与微软官方 IAuthorizationRequirement;

*、Excel导入导出使用的是Epplus第三方框架,导入导出只需要配置Attribute特性就好,不需要在自己写列名;导出只支持List导出,暂时不支持Datatable; (Excel使用方法请参考UserController控制器)

*、Rabbit MQ消息队列 (目前暂无业务使用场景后期准备用来记录日志)

*、Redis 轻量级分布式缓存; (Redis使用方法请参考Uwl.Data.Server.MenuServer类)

*、QuartzNet第三方任务框架; (使用方法请参考类库Uwl.ScheduledTask.Job.TestJobOne类)

*、IdentityServer4授权模式已开发完成,未发布演示服务器代码在github (Identityserver4Auth分支)

数据库

Sql Server、 EF Core ORM框架、CodeFirst、AutoMapper 自动对象映射、Linq To Sql \ lambda表达式树查询;

前端技术

*、使用Vue 2.0 框架全家桶  +Iview UI框架 ,接口请求axios\状态管理使用Vuex;Vue参考文献(老张的博客);

*、Iview UI框架基于Vue2.x的组件库;请查看(IviewUI官网);

*、前端权限按钮控制使用动态渲染的方式来做,如果用户有这个权限则显示该按钮没有这个权限则不渲染按钮;

3、项目地址

*、.NET CORE 源码:https://github.com/GeorGeWzw/Uwl.Admin.Core

*、前端框架代码:https://github.com/GeorGeWzw/Vue.Uwl.Admin

3、致谢

*、感谢有几位朋友支持、以及技术支持 特别感谢老张的博客、Psyche丶残云、深圳-果、大黄瓜 等各位大佬的技术默默支持;才让我有了继续前行下去的动力,非常感谢各位大佬给的很多建议。