.NET开源快速开发框架Colder发布 (NET452+AdminLTE版)
.NET开源快速开发框架Colder(NET452+AdminLTE版)
引言
半年前将基于Easyui的快速开发框架开源,三个版本(NET4.52,NETCore和NET4.0)总共荣获200+星,得到了大家的认可,也很高兴能够帮助到大家。但不可否认的是Easyui在现在各大主流UI框架(Bootstrap、iview、Layui、element-ui等)面前的确有些过时,爱美之心人皆有之,咱猿类的衣食父母(甲方)也不列外。因此,为了吃(房)香(贷)喝(车)辣(贷),选择一套漂亮而简洁的UI来取悦甲方就是现阶段的主要矛盾(人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾)。为了解决这个主要矛盾鄙人进行了很长时间的调研,在各大主流UI框架(Bootstrap、iview、Layui、element-ui等)中进行各种对比,最后选择了基于Bootstrap的AdminLTE,这是因为本框架的面向对象主要是.NET后端开发者,Bootstrap相比于其它而言更加容易上手,而且插件丰富(Easyui更丰富而且简单),并且拥有不俗的颜值,最终选择它。最后,在鄙人的两星期搬砖后,焕然一新的.NET快速开发框架Colder.Fx.Net.AdminLTE诞生,希望大家能够喜欢并支持。
简介
本框架旨在为.NET开发人员提供一个Web后台快速开发框架,采用本框架,能够极大的提高项目开发效率。
本版本框架采后端采用基于.NET4.52的ASP.NETMVC,前端从原来的Easyui升级为基于Bootstrap的AdminLTE,支持响应式布局,提高用户体验(提高逼格)。
框架主要功能如下表:
功能 | 详细描述 | 支持情况 |
---|---|---|
用户登录、密码修改 | 用户登录、密码修改 | ✔ |
系统用户管理 | 系统用户管理 | ✔ |
角色管理 | 角色管理 | ✔ |
权限管理 | 基于用户的权限、基于角色的权限、菜单权限、操作权限(按钮权限)、接口权限、数据权限 | ✔ |
系统日志 | 支持使用ElasticSearch记录日志 | ✔ |
快速开发 | 通过数据库直接生成实体层、业务逻辑层、视图层代码,无需编码即可实现CURD | ✔ |
数据库操作封装 | 使用基于EF的仓储模式、封装常用的CURD,支持单库事物和分布式事物 | ✔ |
多数据库支持 | 使用基于EF的仓储模式,支持各大主流关系型数据库(SQLServer、MySQL、Oracle、PostgreSQL) | ✔ |
缓存支持 | 支持系统自带缓存和Redis缓存、封装操作接口、简单易用 | ✔ |
分布式Session支持 | 禁用自带Session,使用自定义Session,一键开启分布式Session | ✔ |
页面响应式 | 基于Bootstrap,支持响应式布局,移动端能够轻松访问 | ✔ |
其它各种帮助类库及插件 | 其它各种帮助类库及插件 | ✔ |
后台展示如下:
源码地址:https://github.com/Coldairarrow/Colder.Fx.Net.AdminLTE
各版本请看下表:
.NET版本 | 前端UI | 地址 |
---|---|---|
.NET4.52 | AdminLTE | https://github.com/Coldairarrow/Colder.Fx.Net.AdminLTE |
.NET4.52 | Easyui | https://github.com/Coldairarrow/Coldairarrow.Fx.Net.Easyui.GitHub |
.NET Core2.1 | Easyui | https://github.com/Coldairarrow/Coldairarrow.Fx.Core.Easyui.GitHub |
.NET4.0 | Easyui | https://github.com/Coldairarrow/Coldairarrow.Fx.Net40.Easyui.GitHub |
基础准备
开发环境要求
操作系统:Windows 10
开发工具:Visual Studio 2017
SDK:安装.NET4.52及以上
数据库:SQLServer2008 R2及以上
基础数据库构建
使用本框架需要构建基础数据库,具体步骤如下:
创建基础数据库的Sql脚本文件在:/docs/初始化文件/db.sql,在数据库中运行db.sql脚本即可创建数据库:
Colder.Fx.Net.AdminLTE
若Sql运行出错,请直接使用同目录下的db.bak还原数据库
打开src目录下Colder.Fx.Net.AdminLTE的解决方案,如下图
如下图所示依次展开05.Coldairarrow.Web=>Config=>database.config,配置数据库连接字符串,name不用修改,connectionString改为上述创建的数据库(若不清楚数据库连接字符串请自行百度搜索教程)
自此基础数据库配置完成。
数据库设计规范
由于本框架支持自动生成代码的核心功能,此功能是根据数据库的表结构来生成代码的
因此规定每张表都有一个主键,列名为Id,类型为字符串,实际添加数据时默认使用GUID的字符串形式,表中的每个列都需要有描述信息(建议这样操作,若不按照这个标准则需要一些额外的改动才能够成功运行)。
运行
请先还原Nuget包
然后将05.Coldairarrow.Web设为启动项目,成功运行即可进入以下页面
详细教程
代码架构
项目代码分层,详情见源码中的说明书,博客园放会被判为重复文章,敬请谅解。
功能架构
全局配置
在01.Coldairarrow.Util中的GlobalSwitch类中,设置了各个参数,其中RunModel需要重点关注一下,若RunModel==RunModel.LocalTest,则系统会直接跳过登录,默认使用Admin超级管理员登录,其它参数请看注释。
快速开发
使用此功能请确保GlobalSwitch.RunModel= RunModel.LocalTest
此功能为本框架的核心功能,能够自动生产完整的可运行代码,具体使用如下:
首选需要有数据库源,因为代码生成是根据数据库表来生成的。
菜单:开发=>数据库连接管理
若列表中没有目标数据源,则添加数据库连接
数据连接名、连接字符串、数据库类型即可。添加完成后即可看到连接字符串信息。
有了数据库连接之后,即可进行代码生成。
菜单:开发=>代码生成
选择数据库,然后勾选需要生成代码的数据库表,点击生成代码会弹出生成选项(这里暂时只能勾选Dev_Project,其余表全是系统基础表,不要勾选,否则会被覆盖,导致异常,请勾选自己的业务表进行生成):
生成选项中可以选择需要生成的类型,可以默认生成实体层、业务逻辑层、控制器和视图。
生成区域对应MVC中的Areas,请按需填入(必填)
这里示例填写ProjectManage,点击生成按钮,即可完成代码生成。生成后的代码在项目解决方案中,将代码文件包括进入项目
默认生成后的文件是隐藏的,需要点击显示所有文件按钮,即可看到生成后的新文件
右键新的文件夹,包括在项目中
由于是新生成的代码,所以才配置新的菜单
如上图,在Web项目中的Config/SystemMenu.config中配置菜单,模仿原有菜单即可,其中url是指页面的路径,Permission是指若需要访问此菜单需要的权限(对应权限配置),若没有此权限,则菜单也中不会显示此菜单,修改完成后重新编译生成(权限相关模块进行了缓存,重新生成会清缓存),重新运行即可看到新的项目菜单如下:
整个代码生成过程,无需编写代码即可完成一张表的CRUD,当然需要根据具体业务中进行相应的修改,本次示例中字段比较少,但是当一张表的字段很多时,那么此功能能够将开发效率提高几个档次。
管理员登录
若要使用登录功能,请将GlobalSwitch中的RunModel改为RunModel.Publish
默认超级管理员账号为:Admin
密码为:123456
系统用户管理
管理系统登录的用户
菜单:系统=>用户管理,如下页面
点击右侧设置权限,可以设置用户权限,详情见<权限管理>模块
具体权限相关配置见权限管理模块
系统角色管理
管理系统角色,角色是权限的载体,合理分配角色有利于权限管理
菜单:系统=>角色管理
操作中可以设置角色的权限,详情见<权限管理>模块
权限管理
一般情况下,后台管理系统多少会涉及权限管理,因此本框架提供了一个灵活、高效、简洁的权限管理系统。
首先,权限分为两种,即操作权限和数据权限,其中操作权限报货系统用户权限和AppId权限,系统用户权限就是指操作用户具备哪些权限,而当对外提供Api接口时,为了保证接口的安全性(若不在意可忽略),通常会提供接口签名算法,其中AppId和AppSecret是必备的,通过对AppId设置权限,即可控制接口的权限。数据权限比较复杂,若采用纯SQL方式,那么会更加复杂,本框架全程采用EF作为ORM框架,通过对IQueryable<T>进行过滤,即可完成数据权限控制。
用户权限:若对每个用户都设置对应的权限,那么工作量无疑是十分巨大的,因此引入了角色的概念,角色是权限的集合载体,那么属于此角色的用户就继承了角色的权限,当然某些特殊用户需要拥有自己的不属于角色的特殊权限,因此最终用户拥有的权限就是自己的权限和所属角色权限的并集。
权限使用:
权限定义:
如上图,在Permission.config中定义了各个权限
权限配置:
在系统用户管理和系统角色管理中可以设置用户和角色的权限,把需要的权限勾选即可。
权限使用:
如上图所示,在需要控制权限的页面中,调用方法:PermissionManage.OperatorHasPermissionValue("sysuser.manage")
这个方法是判断操作者用户是否含有sysuser.manage权限值,其中sysuser是指Permission.config中定义的module的value属性,manage是指permission中的value属性,用.连接即是最终权限值。
更详细的使用方式,请参考源代码。
接口秘钥管理
菜单:系统=>接口秘钥管理
系统日志
菜单:系统=>系统日志
常见疑问
如何进行联表查询?
框架使用EF+LINQ进行联表操作,核心在于对IQueryable<T>的使用,另可网上搜EF+LINQ的相关教程。
示例如下图:
如何切换数据库?
在01.Coldairarrow.Util项目中的GlobalSwitch,将DatabaseType改为需要的即可,对应的数据库连接字符串当然也要改为对应数据库的
如何使用别的数据库(即非默认的系统数据库)
在具体的Business类中重写父类BaseBusiness的构造函数即可,按照自己的需求重写对应的构造函数,同时需要确保数据库连接字符串已添加
结语
欢迎使用本框架,若觉得不错,请比心
Github:https://github.com/Coldairarrow,请Statrt
博客园:https://www.cnblogs.com/coldairarrow/
QQ群:373144077
本人将会对这个快速开发框架不断完善与维护,希望能够帮助到各位
若遇到任何问题或需要技术支持,请联系我。
---------------------学习永无止境,技术永无上限,代码就是艺术-----------------------
.NET开源快速开发框架Colder发布 (NET452+AdminLTE版)的更多相关文章
- .NET Core开源快速开发框架Colder发布 (NET Core2.1+AdminLTE版)
引言 上星期发布的.NET452+AdminLTE版框架得到了大家的大力支持,目前GitHub已获近100星,鄙人十分高兴能够帮助大家.其中有不少关心.NET Core的支持情况,因为未来的.NET平 ...
- 【转载】.NET开源快速开发框架Colder(NET452+AdminLTE版)
.NET开源快速开发框架Colder(NET452+AdminLTE版) 简介 本框架旨在为.NET开发人员提供一个Web后台快速开发框架,采用本框架,能够极大的提高项目开发效率. 本版本框架采后端采 ...
- 2020新Asp.NET敏捷快速开发框架7.0.5旗舰版源码asp.net mvc框架,工具类CRM,工作流
演示地址: http://frame3.diytassel.com 用户名:system 密码:0000 需要的联系QQ:22539134 一.新添加了 1.多语言功能: 2.代码生成器模版 ...
- 【开源】OSharpNS,轻量级.net core快速开发框架发布
OSharpNS简介 OSharp Framework with .NetStandard2.0(OSharpNS)是OSharp的以.NetStandard2.0为目标框架,在AspNetCore的 ...
- 程序员的快速开发框架:Github上 10 大优秀的开源后台控制面板
程序员的快速开发框架:Github上 10 大优秀的开源后台控制面板 Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者 ...
- [开源]OSharpNS - .net core 快速开发框架 - 快速开始
什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...
- CRL快速开发框架开源完全转到Github
CRL简介 CRL是一款面向对象的轻量级ORM框架,本着快速开发,使用简便的原则,设计为 无需关心数据库结构,CRL自动维护创建,即写即用(CRL内部有表结构检查机制,保证表结构一致性) 无需第三方工 ...
- 微信公众平台快速开发框架 For Core 2.0 beta –JCSoft.WX.Core 5.2.0 beta发布
写在前面 最近比较忙,都没有好好维护博客,今天拿个半成品来交代吧. 记不清上次关于微信公众号快速开发框架(简称JCWX)的更新是什么时候了,自从更新到支持.Net Framework 4.0以后基本上 ...
- [开源]OSharpNS - .net core 快速开发框架 - 简介
什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...
随机推荐
- 阿里巴巴excel工具easyexcel 助你快速简单避免OOM
Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有 ...
- 【专题教程第8期】基于emWin模拟器的USB BULK上位机开发,仅需C即可,简单易实现
说明:1.如果你会emWin话的,就可以轻松制作上位机.做些通信和控制类上位机,比使用C#之类的方便程度一点不差,而且你仅会C语言就可以.2.并且成功将emWin人性化,可以做些Windows系统上的 ...
- 永久更改pip源和创建虚拟环境
一.永久更改pip源 1.windows 编辑%APPDATA%/pip中的pip.ini(若无则新建): C:\Users\v_xmmxhli λ cd %APPDATA%/pip C:\Users ...
- [Swift]LeetCode1035.不相交的线 | Uncrossed Lines
We write the integers of A and B (in the order they are given) on two separate horizontal lines. Now ...
- python将字符串类型list转换成list
python读取了一个list是字符串形式的'[11.23,23.34]',想转换成list类型: 方式一: import ast str_list = "[11.23,23.34]&quo ...
- 『练手』004 Laura.SqlForever如何扩展 导航栏 工具栏 右键菜单 插件
004 Laura.SqlForever如何扩展 导航栏 工具栏 右键菜单 插件 导航栏 插件扩展 比如下图的 窗口 > 关闭所有文档 这个导航栏: 在 任何程序集,任何命名空间,任 ...
- Docker系列之入门篇
Dcoker是什么? 概述 Docker 是世界领先的软件容器平台.开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题.运维人员利用 Docker 可以在隔离容器中并行运行 ...
- [开发技巧]·Numpy中对axis的理解与应用
[开发技巧]·Numpy中对axis的理解与应用 1.问题描述 在使用Numpy时我们经常要对Array进行操作,如果需要针对Array的某一个纬度进行操作时,就会用到axis参数. 一般的教程都是针 ...
- Cannot execute request on any known server或DiscoveryClient_UNKNOWN/DESKTOP-MQ8D0C9:8761
报错信息如下: 2018-08-31 11:45:33.619 WARN 1068 --- [freshExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClien ...
- InnoSetup 以命令行自动编译打包
本章介绍,在新建Innosetup的编译脚本iss文件后,在不运行Innosetup软件的基础上,以bat自动编译运行打包. 一.添加Innosetup软件包 下载InnoSetup软件包并解压到bu ...