WaterCloud:一套基于.NET 8.0 + LayUI的快速开发框架,完全开源免费!
前言
今天大姚给大家分享一套基于.NET 8.0 + LayUI的快速开发框架,项目完全开源、免费(MIT License)且开箱即用:WaterCloud。
可完全实现二次开发让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。
项目介绍
WaterCloud是一套基于ASP.NET 8.0 MVC + API + SqlSugar + LayUI的快速开发框架,源代码完全开源、免费(MIT License),可以帮助你解决C#.NET项目的重复工作(内置代码生成器),采用主流架构思想,容易上手,简单易学,学习成本低。
适用范围
WaterCloud适用于开发各类管理软件,如OA、ERP、BPM、CRM、WMS、TMS、MIS、BI、电商平台后台、物流管理系统、快递管理系统、教务管理系统等。
后端技术
-
核心框架:ASP.NET 8.0、WEB API
-
定时任务:QuartZ,实现web控制
-
持久层框架:SqlSugar(支持多种数据库,复杂查询操作、多租户等)、Chloe(支持多种数据库,复杂查询操作,比较稳定)
-
安全支持:过滤器、Sql注入、请求伪造
-
服务端验证:实体模型验证
-
缓存框架:Redis/Memory(单点登录控制)
-
日志管理:Log、登录日志、操作日志
-
工具类:NPOI、Newtonsoft.Json、验证码、丰富公共类
-
其他:AutoFac、Swagger
前端技术
-
js框架:jquery-3.4.1、LayUI、LayUI mini(开源)
-
图标:Font Awesome 4.7.0及LayUI自带
-
客户端验证:LayUI verify
-
富文本编辑器:开源wangEditor、LayUI editor
-
上传文件:LayUI upload
-
动态页签:LayUI mini miniTab
-
数据表格:LayUI table、LayUI 开源 soul-table组件
-
下拉选择框:LayUI select、xmselect
-
树结构控件:LayUI 开源 dtree
-
树状表格:LayUI 开源 treetable-lay
-
穿梭框:LayUI transfer
-
页面布局:LayUI、LayUI mini
-
图表插件:echarts
-
日期控件:LayUI laydate
-
图标选择:LayUI 开源 IconPicker
-
省市区选择:LayUI 开源 layarea
功能特点
-
权限控制:基于RBAC的权限控制,支持到导航菜单、功能按钮、行级、列表级、表单字段级。
-
数据权限:精细化数据权限控制,实现不同人看不同数据。
-
代码生成:简单前后端代码生成,提高开发效率。
-
表单设计器:提供多种方式设计表单,包括动态表单拖拉式设计及自定义表单。
-
流程设计器:动态设计流程,节点及连线条件设计。
-
内容管理:已配置好wangEditor编辑器,易于使用。
-
文件管理:提供文件上传及下载功能。
-
常用类封装:包括日志、缓存、验证、字典、文件、邮件、Excel等。
-
响应式设计:支持电脑、平板、智能手机等设备,微信浏览器以及各种常见浏览器。
-
多租户:基于Database的多租户功能(SqlSugar支持)。
-
定时任务:基于quartz的定时任务功能(可以集群)。
项目源代码

项目运行效果
设置WaterCloud.Web为启动项目,运行查看效果:











项目源码地址
更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。
-
开源地址:https://gitee.com/qian_wei_hong/WaterCloud
-
在线文档:https://gitee.com/qian_wei_hong/WaterCloud/wikis/pages
优秀项目和框架精选
该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。
-
GitHub开源地址:https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
-
Gitee开源地址:https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
相关文章:
WaterCloud:一套基于.NET 8.0 + LayUI的快速开发框架,完全开源免费!
前言 今天大姚给大家分享一套基于.NET 8.0 LayUI的快速开发框架,项目完全开源、免费(MIT License)且开箱即用:WaterCloud。 可完全实现二次开发让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本&…...
数据结构-LRU缓存(C语言实现)
遇到困难,不必慌张,正是成长的时候,耐心一点! 目录 前言一、题目介绍二、实现过程2.1 实现原理2.2 实现思路2.2.1 双向链表2.2.2 散列表 2.3 代码实现2.3.1 结构定义2.3.2 双向链表操作实现2.3.3 实现散列表的操作2.3.4 内存释放代…...
javacv FFmpegFrameGrabber 阻塞重连解决方法汇总
JavaCV中FrameGrabber类可以连接直播流地址, 进行解码, 获取Frame帧信息, 常用方式如下 FrameGrabber grabber new FrameGrabber("rtsp:/192.168.0.0"); while(true) {Frame frame grabber.grabImage();// ... } 在如上代码中, 若连接地址网络不通, 或者连接超时…...
自然语言处理问答系统技术
自然语言处理问答系统技术 随着人工智能的不断发展,自然语言处理(NLP)技术已成为推动智能问答系统发展的核心技术。问答系统是利用NLP来解析用户提出的问题,并从知识库中找到最相关的答案。在许多应用中,如智能客服、…...
交换机和路由器的区别
交换机和路由器的区别主要体现在以下几个方面: 工作层次不同:交换机通常工作在OSI模型的数据链路层(第二层),主要根据MAC地址进行数据包转发。而路由器则工作在OSI模型的网络层(第三层)…...
JavaScript Array(数组)
JavaScript Array(数组) JavaScript 中的数组是一种特殊的对象,用于存储一系列有序的值。数组是 JavaScript 中非常强大的数据结构,广泛用于各种编程任务。本文将详细介绍 JavaScript 数组的特性、用法和操作方法。 数组的创建 在 JavaScript 中,创建数组有多种方式: …...
示例说明:elasticsearch实战应用
Elasticsearch 是一个基于 Lucene 的分布式搜索和分析引擎,广泛应用于日志分析、全文搜索、数据可视化等领域。以下是 Elasticsearch 实战应用的一些关键点和步骤: 1. 环境搭建 首先,你需要在你的环境中安装和配置 Elasticsearch。 安装 E…...
暴力匹配算法和 KMP 算法的优缺点分别是什么?
暴力匹配算法和 KMP 算法的优缺点分别是什么? 在字符串匹配领域,暴力匹配算法和 KMP(Knuth-Morris-Pratt)算法是两种常见的方法。它们各有特点,适用于不同的场景。让我们深入探讨这两种算法的优缺点。 一、暴力匹配算法 (一)优点 简单易实现:暴力匹配算法的逻辑非常…...
web笔记
<form method"POST" action"{{ url_for(register) }}"><label for"username">用户名:</label><input type"text" id"username" name"username" required><br><label for"p…...
【网络安全】-访问控制-burp(1~6)
文章目录 前言 1.Lab: Unprotected admin functionality 2.Lab: Unprotected admin functionality with unpredictable URL 3.Lab: User role controlled by request parameter 4.Lab:User role can be modified in user profile 5.Lab: User ID controlled by…...
iOS 项目中的多主题颜色设计与实现
引言 在现代iOS应用中,用户对个性化体验的需求越来越高,除了功能上的满足,多样的视觉风格也是提升用户体验的重要手段之一。提供多主题颜色的切换功能不仅能满足用户的审美偏好,还可以让应用更具活力,适应不同场景下的…...
Android Camera2 与 Camera API技术探究和RAW数据采集
Android Camera2 Android Camera2 是 Android 系统中用于相机操作的一套高级应用程序接口(API),它取代了之前的 Camera API。以下是关于 Android Camera2 的一些主要信息: 主要特点: 强大的控制能力:提供…...
[python][pipenv]pipenv的使用
pipenv 是一个 Python 开发工作流程的工具,它旨在将 pip 的包管理和 virtualenv 的虚拟环境管理结合起来。以下是一些基本的 pipenv 使用方法: 安装 pipenv: 如果你还没有安装 pipenv,可以通过 pip 安装它: pip insta…...
SpringSession微服务
一.在linux中确保启动起来redis和nacos 依赖记得别放<dependencyManagement></dependencyManagement>这个标签去了 1.首先查看已经启动的服务 docker ps 查看有没有安装redis和nacos 2.启动redis和nacos 发现没有启动redis和nacos,我们先来启动它。,…...
强化学习:通过试错学习最优策略---示例:使用Q-Learning解决迷宫问题
强化学习(Reinforcement Learning, RL)是一种让智能体(agent)在与环境交互的过程中,通过最大化某种累积奖励来学习如何采取行动的学习方法。它适用于那些需要连续决策的问题,比如游戏、自动驾驶和机器人控制…...
OpenGL ES 纹理(7)
OpenGL ES 纹理(7) 简述 通过前面几章的学习,我们已经可以绘制渲染我们想要的逻辑图形了,但是如果我们想要渲染一张本地图片,这就需要纹理了。 纹理其实是一个可以用于采样的数据集,比较典型的就是图片了,我们知道我…...
【C#】CacheManager:高效的 .NET 缓存管理库
在现代应用开发中,缓存是提升性能和降低数据库负载的重要技术手段。无论是 Web 应用、桌面应用还是移动应用,缓存都能够帮助减少重复的数据查询和处理,从而提高系统的响应速度。然而,管理缓存并不简单,尤其是当你需要处…...
【数学分析笔记】第4章第2节 导数的意义和性质(2)
4. 微分 4.2 导数的意义与性质 4.2.3 单侧导数 f ′ ( x ) lim Δ x → 0 f ( x Δ x ) − f ( x ) Δ x lim x → x 0 f ( x ) − f ( x 0 ) x − x 0 f(x)\lim\limits_{\Delta x\to 0}\frac{f(x\Delta x)-f(x)}{\Delta x}\lim\limits_{x\to x_0}\frac{f(x)-f(x_0)…...
深度学习:迁移学习
目录 一、迁移学习 1.什么是迁移学习 2.迁移学习的步骤 1、选择预训练的模型和适当的层 2、冻结预训练模型的参数 3、在新数据集上训练新增加的层 4、微调预训练模型的层 5、评估和测试 二、迁移学习实例 1.导入模型 2.冻结模型参数 3.修改参数 4.创建类ÿ…...
Footprint Growthly Quest 工具:赋能 Telegram 社区实现 Web3 飞速增长
作者:Stella L (stellafootprint.network) 在 Web3 的快节奏世界里,社区互动是关键。而众多 Web3 社区之所以能够蓬勃发展,很大程度上得益于 Telegram 平台。正因如此,Footprint Analytics 精心打造了 Growthly —— 一款专为 Tel…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...
算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
