YiShaAdmin:一款基于.NET Core Web + Bootstrap的企业级快速开发框架

前言

今天大姚给大家分享一款基于.NET Core Web + Bootstrap的企业级快速后台开发框架、权限管理系统,代码简单易懂、界面简洁美观(基于MIT License开源,免费可商用):YiShaAdmin。

项目官方介绍

YiShaAdmin 基于.NET Core Web开发,借鉴了很多开源项目的优点,让你开发Web管理系统和移动端Api更简单,所以我也把她开源了。她可以用于所有的Web应用程序,例如网站管理后台、CMS、CRM、ERP、OA这类的系统和移动端Api。

当前项目支持.NET Core版本

图片

项目功能

项目包含员工管理、部门管理、职位管理、文章中心、角色管理、菜单管理、通用字典、行政区划、系统日志(登录日志、操作日志、Api日志)、定时任务、系统Api、数据表管理、代码生成等多个模块。

主要特性

  • 响应式布局,支持电脑端和移动端。

  • 对常用JS插件进行二次封装,使JS代码变得简洁,更加容易维护。

  • 基于角色的权限控制(Role-Based Access Control),可控制到按钮。

  • 强大的一键生成功能(包括视图、控制器、业务类、实体类、服务类、菜单)。

使用技术

  • 前端:Bootstrap

  • 核心框架:.NET Core Web

  • 缓存层:Memory、Redis

  • ORM:Entity Framework Core

  • 数据库支持:SqlServer、MySql、Oracle

  • 定时任务:Quartz.Net

  • API文档显示工具:Swagger UI

项目源代码

图片

项目结构

YiShaAdmin
├─ Framework    // 基础设施层
│     ├─ Cache                     // 数据缓存接口
|          ├─ YiSha.Cache.Factory                     // 缓存工厂
|          ├─ YiSha.Cache.Interface                   // 缓存抽象接口
|          ├─ YiSha.Cache.MemoryCache                 // 缓存MemoryCache实现
|          ├─ YiSha.Cache.RedisCache                  // 缓存Redis实现
|     ├─ YiSha.Util                                   // 框架公共方法
|     ├─ YiSha.IdGenerator                            // Id生成器(使用Snowflake)
|     ├─ YiSha.CodeGenerator                          // 代码生成器
├─ DataAccess   // 数据库核心层
|     ├─ YiSha.Data                                   // 底层抽象接口
|     ├─ YiSha.Data.EF                                // 数据库层实现
|     ├─ YiSha.Data.Repository                        // 数据库层接口
├─ Business     // 业务逻辑层
|     ├─ YiSha.Business                               // 业务层方法
|     ├─ YiSha.Business.AutoJob                       // 业务层定时任务
|     ├─ YiSha.Business.Cache                         // 业务层缓存
|     ├─ YiSha.Business.Service                       // 业务层服务
├─ Entity       // 业务实体层
|     ├─ YiSha.Entity                                 // 数据库实体类
|     ├─ YiSha.Enum                                   // 业务枚举
|     ├─ YiSha.Model                                  // 业务层DTO对象
├─ Web          // 前端
|     ├─ YiSha.Admin.Web                              // 系统UI界面
|     ├─ YiSha.Admin.WebApi                           // 系统Api接口
|     ├─ YiSha.Web.Code                               // 管理用户登录状态

项目部分截图

图片

图片

图片

图片

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

  • GitHub开源地址:https://github.com/liukuo362573/YiShaAdmin

  • 在线文档:https://www.toolhelper.cn/doc/#/quickstart

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

  • https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

区间相交-435. 无重叠区间,56. 合并区间

题目连接及描述 435. 无重叠区间 - 力扣(LeetCode) 56. 合并区间 - 力扣(LeetCode) 题目分析 二维数组,数组中每个元素为大小为2的一维数组,求移除区间的最小数量,使剩余区间互不重叠。今天写…

Android Intent 使用及其详解

Intent这东西,在Android中的地位至关重要,甚至成为"Android第五大组件"。 在我们的常规业务开发中,各个页面的跳转,service的使用,打开相机,app内分享,广播的使用等等都必须用到它。…

数据结构之堆(优先级队列)

前言 在上一章我们讲了二叉树,这一节我们来讲堆(优先级队列),所以想知道堆创建,可以看一下二叉树的一些简单概念。http://t.csdnimg.cn/4jUR6http://t.csdnimg.cn/4jUR6 目录 前言 堆 1.概念 2.优先级队列的模拟实…

Jetson Nano重装支持cuda和aruco库的opencv-4.1.1和opencv_contrib-4.1.1【2024亲测可用】

前言 在宇树四足机器狗开发过程中,可能会碰到无法调用aruco库实现二维码检测,这是因为没有安装opencv_contrib库,安装opencv_contrib库需要卸载现有的opencv,然后重新安装,本文就是记录这个过程,亲测有效。…

1.2数学基础

向量运算 矩阵运算 比较基础就不记录了 MVP矩阵推导 1.讲为什么要有矩阵变换和不同的坐标空间 将3D物体转化到2D平面为各个空间的运用做准备 2.介绍各个空间的概念和含义 MVP矩阵代表什么? MVP矩阵分别是模型(Model)、观察(View)、投影(Projection)三个矩阵。…

positivessl泛域名证书500元13个月

随着创建网站的门槛变低,不论是个人用户还是企事业单位用户创建的域名网站也越来越多,怎么维护网络环境的安全成为了各个用户需要解决的问题。为了保护网站的数据安全,防止恶意攻击和数据泄露,大多数用户选择为域名网站安装数字证…

linux 创建网络端口监听

1.nc nc命令全程netcat&#xff0c;用于设置路由器。他能通过TCP和UDP在网络中读写数据。 启动一个监听的端口 nc -l -p <port_number> 范围端口扫描(默认TCP) nc -v -z -w2 127.0.0.1 1-10000UDP范围端口扫描 nc -v -u -z -w2 127.0.0.1 1-10000指定端口扫描 nc -nvv 12…

NGINX启动停止与各种常见问题

很多项目代理工具都是NGINX&#xff0c;这个工具也确实很牛。据说是俄罗斯人研发出来的。 NGINX的配置文件通常是../xx/conf/nginx.conf&#xff0c;在里面做后端服务器IP或者网关IP的代理&#xff0c;加载前端页面的同时&#xff0c;获取后端数据。 NGINX的启动文件在../xx/…

水电智能抄表是什么?

1.简述&#xff1a;水电智能抄表的兴起 水电智能抄表系统是现代科学技术和传统公共文化服务相结合的产物&#xff0c;它通过自动化技术性改变了传统的人工抄表方式&#xff0c;大大提高了高效率&#xff0c;降低生产成本&#xff0c;同时也为用户提供了更为贴心的服务。这一新…

轻兔推荐 —— 一个好用的软件服务推荐平台

给大家推荐一个好用的的软件服务推荐平台&#xff1a;轻兔推荐 网站界面简洁大方&#xff0c;没有太多杂七杂八的功能和页面&#xff0c;有明暗主题色可以选择&#xff0c;默认为亮色&#xff0c;可在网站上方手动切换。 每工作日都会推荐一款软件&#xff0c;有时会加更&…

B2124 判断字符串是否为回文

判断字符串是否为回文 题目描述 输入一个字符串&#xff0c;输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。 输入格式 输入一行字符串&#xff0c;长度小于 100 100 100。 输出格式 如果字符串是回文&#xff0c;输出 yes&#xff1b;否则&#xff0c;输出 …

Flutter 中的 PhysicalModel 小部件:全面指南

Flutter 中的 PhysicalModel 小部件&#xff1a;全面指南 Flutter 的 PhysicalModel 小部件提供了一种简单而高效的方式来给应用添加物理效果&#xff0c;如阴影和层次感。它本质上是一个矩形的 Container&#xff0c;带有圆角边框和可选的阴影&#xff0c;能够模仿真实世界中…

数据赋能(102)——概念:数据分析、数据挖掘、数据洞察

此文为本人学习与提高能力的笔记。 数据分析、数据挖掘与数据洞察这三个术语&#xff0c;为了确保这些术语使用的精准度和专业性&#xff0c;我们必须对它们有更为深入的认知。这三个概念虽在某种程度上相互关联&#xff0c;但在实际应用中各自承载着不同的侧重点和用途&#…

内网安全--隧道技术-MSF上线本地

免责声明:本文仅做技术交流与学习... 不得不说,小白最近也是用上了viper,这里要特别感谢一下my bro 北岭敲键盘的荒漠猫 MSF--viper: --生成马子-->上线 --进入meterpreter. 1-查看路由,添加路由. 查看路由信息 : run autoroute -p run post/multi/manage/autoroute 添加…

『香橙派』基于Orange Pi AIpro打造高效个人云存储解决方案

&#x1f4e3;读完这篇文章里你能收获到 了解Orange Pi AIpro硬件优势&#xff0c;为构建高效云存储基础设施的理想平台。学会使用Orange Pi AIpro硬件平台&#xff0c;搭载Ubuntu Server系统&#xff0c;打造云存储环境。掌握利用Kodbox软件&#xff0c;享受文件管理、多格式…

微软MSBuild大会发布Copilot+PC:技术革新还是隐私噩梦?

微软在最近的MSBuild 2024大会上发布了全新的CopilotPC概念&#xff0c;这一技术结合了高通骁龙X Elite芯片&#xff0c;将人工智能与PC紧密结合。此次发布引起了广泛关注&#xff0c;不仅是因为其技术创新&#xff0c;还因为潜在的隐私问题。甚至连Elon Musk也对此表示担忧&am…

CGAL 网格布尔操作(带属性)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 CGAL在进行布尔操作时可以为我们提供了Mesh的相关信息,比如并集部分是由原Mesh数据的那些面片组成,虽然现阶段还不了解这有什么用。 二、实现代码 #include <iostream> #include <iterator> #includ…

小熊家务帮day5 客户管理模块1 (小程序认证,手机验证码认证等)

客户管理模块 1.认证模块1.1 认证方式介绍1.1.1 小程序认证1.1.2 手机验证码登录1.1.3 账号密码认证 1.2 小程序认证1.2.1 小程序申请1.2.2 创建客户后端工程jzo2o-customer1.2.3 开发部署前端1.2.4 小程序认证流程1.2.4.1 customer小程序认证接口设计Controller层Service层调用…

C++ | Leetcode C++题解之第118题杨辉三角

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<vector<int>> generate(int numRows) {vector<vector<int>> ret(numRows);for (int i 0; i < numRows; i) {ret[i].resize(i 1);ret[i][0] ret[i][i] 1;for (int j 1; j &…

Python | Leetcode Python题解之第117题填充每个节点的下一个右侧节点指针II

题目&#xff1a; 题解&#xff1a; class Solution:def connect(self, root: Node) -> Node:if not root:return Nonestart rootwhile start:self.last Noneself.nextStart Nonep startwhile p:if p.left:self.handle(p.left)if p.right:self.handle(p.right)p p.nex…