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开源框架(一)的更多相关文章

  1. Uwl.Admin开源框架(二)

    Uwl.Admin开源框架基于QuartzNet定时任务模块的实现 Quartz.NET官网地址:https://www.quartz-scheduler.net/ Quartz.NET文档地址:ht ...

  2. Uwl.Admin.Core开源框架(三) 使用RabbitMQ

    Uwl.Admin.Core中使用RabbitMQ消息队列: 本文负责讲解RabbitMQ的使用 Uwl.Admin.Core使用的技术有: *.Async和Await 异步编程 *.Reposito ...

  3. Uwl.Admin.Core开源框架(二) 使用QuartzNet

    Uwl.Admin.Core中使用QuartzNet定时任务模块: 本文负责讲解RabbitMQ的使用 Uwl.Admin.Core使用的技术有: *.Async和Await 异步编程 *.Repos ...

  4. Magicodes.Admin.Core开源框架总体介绍

    框架说明 Magicodes.Admin.Core框架在ABP以及ASP.NET ZERO的基础上进行了封装和完善,目前基于.NET Core 2.0+(Framework版本),由于部分组件在.NE ...

  5. 介绍一个非常好用的跨平台C++开源框架:openFrameworks

    介绍一个非常好用的跨平台C++开源框架:openFrameworks 简介 首先需要说明的一点是: openFrameworks 设计的初衷不是为计算机专业人士准备的, 而是为艺术专业人士准备的, 就 ...

  6. Pyhton开源框架(加强版)

    info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...

  7. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  8. 【开源推荐】AllJoyn:打造全球物联网的通用开源框架

    摘要:随着智能设备的发展,物联网逐渐进入了人们的生活.据预测,未来几乎一切东西(超过500亿台设备)都可以互联.高通公司发布了开源项目AllJoyn,这是一个能够使连接设备间进行互操作的通用软件框架和 ...

  9. [转]开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo

    热衷于开源框架探索的我发现ASP.NET MVC与jQuery easyUI的组合很给力.由于原先一直受Ext JS框架的licence所苦恼,于是痛下决心寻找一个完全免费的js框架——easyUI. ...

随机推荐

  1. IO流概述

    作用: 处理设备之间的数据传输的 I: Input(输入) , O: Output(输出) 什么是输入和输出? 我们说输入和输出问题是站在内存的角度而言 , 如果我们程序读取硬盘上的数据那么就是输入 ...

  2. css简单学习属性3---css属性选择器

    1:通配符 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  3. Linux -- Proactor(及其与Reactor的比较)

    高并发服务器常由多线程+IO复用服务器(one event loop per thread) 两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分 ...

  4. 123457123456#0#-----com.threeapp.XueShuXue013----儿童学数学(13种方法)

    com.threeapp.XueShuXue013----儿童学数学(13种方法)

  5. SringCloud学习成长之路 八 消息总线

    Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现通知微服务 ...

  6. .NET CORE添加引用包

    一 .添加服务端引用 1.直接右键添加项目引用,添加后再csproj文件中如下②,也可以直接用这种格式写入csproj文件中 2.直接右键添加DLL引用,添加后再csproj文件中如下③,也可以直接用 ...

  7. 在node.js中使用Set

    var set = new Set(); set.add(1); console.log("test1 : " + set.has(1) + " ; " + s ...

  8. jQuery跨域调用WebService

    jQuery跨域调用WebService举例html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

  9. maven生命周期及每个阶段自动关联的插件

    生命周期Lifecycle http://maven.apache.org/ref/3.6.1/maven-core/lifecycles.html#default_Lifecycle clean 包 ...

  10. python介绍,计算机组成。内存分布,进制,操作系统介绍

    学习小方法 ​三个W一个Hwwwh:what(是什么) why(为什么) where(怎么用) how(如何用) 来思考知识点多练,多写,多敲代码增加熟练度与代码量​ Python 是一门面向后台的编 ...