Uwl.Admin开源框架(一)
1、前言
作为一个忠实的软粉,一直期待微软出跨平台,一直在等待.Net Core,因为刚毕业对于.Net的很多东西不是很熟知,就开始了.Net Core的摸索,一路上坎坎坷坷,对于新技术一直很期待,就开始漫长的.Net Core的学习和编写开源框架,希望自己写的文章能给.Net Core社区贡献一下自己的坎坷路,这一路所遇到的问题磕磕绊绊,各种问题层出不穷,但是我认为没有解决不了的问题,只有你想不想去做,摆好自己的心态,做好一个目标,你就会成功。
本系列文章只是对框架现有的一些技术做一个简单说明或者是引入,只是一个抛砖引玉的作用,第一次写博客希望各路大神多多指导。
2、框架简介
*、Uwl.Admin开源框架技术选择的是.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、技术简介
后端技术
*、因为想单纯搭建前后端分离,因此就选用的API;
*、Async和Await 异步编程
*、Repository + Service 仓储模式编程
*、Swagger 前后端文档说明,基于RESTful风格编写接口
*、Cors 简单的跨域解决方案
*、JWT自定义策略授权权限验证
*、依赖注入选择的是官方自带的DI注入,没有使用第三方框架,ORM使用EF Core,数据库使用的是Sql server,(后期会扩展MySql版本);
*、登录认证方式使用JWT认证方式,后台接口使用SwaggerUI展示,角色权限使用 自定义权限处理器PermissionHandler 继承与微软官方 IAuthorizationRequirement;
*、Excel导入导出使用的是Epplus第三方框架,导入导出只需要配置Attribute特性就好,不需要在自己写列名;导出只支持List导出,暂时不支持Datatable;
*、Redis 轻量级分布式缓存
*、Vue 本地代理跨域方案,Nginx跨域代理
*、定时任务使用QuartzNet第三方任务框架,QuartzNet任务框架可以精确到分秒;(还有其他任务框架、hangfire ),定时任务管理中心已经封装完毕,只需要配置任务到对应的表中并且启动任务就可以直接用;QuartzNet第三方任务框架文献参考(基于QuartzNet任务管理系统)
数据库
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丶残云、深圳-果、大黄瓜 等各位大佬的技术默默支持;才让我有了继续前行下去的动力,非常感谢各位大佬给的很多建议。
*、 下一篇我会写QuartzNet控制中心的实现
Uwl.Admin开源框架(一)的更多相关文章
- Uwl.Admin开源框架(二)
Uwl.Admin开源框架基于QuartzNet定时任务模块的实现 Quartz.NET官网地址:https://www.quartz-scheduler.net/ Quartz.NET文档地址:ht ...
- Uwl.Admin.Core开源框架(三) 使用RabbitMQ
Uwl.Admin.Core中使用RabbitMQ消息队列: 本文负责讲解RabbitMQ的使用 Uwl.Admin.Core使用的技术有: *.Async和Await 异步编程 *.Reposito ...
- Uwl.Admin.Core开源框架(二) 使用QuartzNet
Uwl.Admin.Core中使用QuartzNet定时任务模块: 本文负责讲解RabbitMQ的使用 Uwl.Admin.Core使用的技术有: *.Async和Await 异步编程 *.Repos ...
- Magicodes.Admin.Core开源框架总体介绍
框架说明 Magicodes.Admin.Core框架在ABP以及ASP.NET ZERO的基础上进行了封装和完善,目前基于.NET Core 2.0+(Framework版本),由于部分组件在.NE ...
- 介绍一个非常好用的跨平台C++开源框架:openFrameworks
介绍一个非常好用的跨平台C++开源框架:openFrameworks 简介 首先需要说明的一点是: openFrameworks 设计的初衷不是为计算机专业人士准备的, 而是为艺术专业人士准备的, 就 ...
- Pyhton开源框架(加强版)
info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- 【开源推荐】AllJoyn:打造全球物联网的通用开源框架
摘要:随着智能设备的发展,物联网逐渐进入了人们的生活.据预测,未来几乎一切东西(超过500亿台设备)都可以互联.高通公司发布了开源项目AllJoyn,这是一个能够使连接设备间进行互操作的通用软件框架和 ...
- [转]开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
热衷于开源框架探索的我发现ASP.NET MVC与jQuery easyUI的组合很给力.由于原先一直受Ext JS框架的licence所苦恼,于是痛下决心寻找一个完全免费的js框架——easyUI. ...
随机推荐
- IO流概述
作用: 处理设备之间的数据传输的 I: Input(输入) , O: Output(输出) 什么是输入和输出? 我们说输入和输出问题是站在内存的角度而言 , 如果我们程序读取硬盘上的数据那么就是输入 ...
- css简单学习属性3---css属性选择器
1:通配符 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- Linux -- Proactor(及其与Reactor的比较)
高并发服务器常由多线程+IO复用服务器(one event loop per thread) 两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分 ...
- 123457123456#0#-----com.threeapp.XueShuXue013----儿童学数学(13种方法)
com.threeapp.XueShuXue013----儿童学数学(13种方法)
- SringCloud学习成长之路 八 消息总线
Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现通知微服务 ...
- .NET CORE添加引用包
一 .添加服务端引用 1.直接右键添加项目引用,添加后再csproj文件中如下②,也可以直接用这种格式写入csproj文件中 2.直接右键添加DLL引用,添加后再csproj文件中如下③,也可以直接用 ...
- 在node.js中使用Set
var set = new Set(); set.add(1); console.log("test1 : " + set.has(1) + " ; " + s ...
- jQuery跨域调用WebService
jQuery跨域调用WebService举例html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- maven生命周期及每个阶段自动关联的插件
生命周期Lifecycle http://maven.apache.org/ref/3.6.1/maven-core/lifecycles.html#default_Lifecycle clean 包 ...
- python介绍,计算机组成。内存分布,进制,操作系统介绍
学习小方法 三个W一个Hwwwh:what(是什么) why(为什么) where(怎么用) how(如何用) 来思考知识点多练,多写,多敲代码增加熟练度与代码量 Python 是一门面向后台的编 ...