一个拒绝过度设计的 .NET 快速开发框架:开箱即用,专注"干活"
haoteby 2025-10-02 19:12 26 浏览
前言
.NET 生态快速发展的背景下,越来越多开发希望找到一个既能快速上手,又不过度设计的后端框架。尤其是在中小型项目中,复杂的架构、层层封装的服务逻辑往往让开发效率大打折扣。
今天推荐一个轻量级、高效实用的自媒体内容管理系统。它不追求炫技式的"高大上",而是回归开发本质:用最少的代码,解决最实际的问题。
大家是否也曾被那些动辄几十个项目的解决方案吓退?是否厌倦了为了实现一个简单的增删改查,却要写一堆接口、服务、仓储、映射的繁琐流程?作者显然也经历过这些痛点。于是他选择了一条不同的路:大道至简。这个框架没有过度分层,没有复杂的设计模式堆砌,有的只是清晰的结构、实用的技术选型和真正能提升开发效率的抽象封装。它不是为大型分布式系统准备的,而是为那些想快速交付、专注业务本身的团队量身打造的。
项目介绍
ShenNiusModularity 是一个基于 .NET 开发的自媒体内容管理系统,支持多租户、权限管理、CMS 内容管理、商城模块等核心功能。
项目坚持"Don’t repeat yourself"的原则,反对过度封装和复杂设计,致力于将 CRUD 接口的开发成本降到最低。
只需要定义好实体类,系统就能自动生成对应的增删改查 API,极大提升了开发速度。目前项目支持 .NET 3.1、.NET 5 和 .NET 6 多个版本分支,其中 lowcode 分支专注于低代码方向的探索,适合希望快速搭建系统的开发。
项目功能
权限管理:角色的权限控制,支持菜单、按钮级别的权限分配,保障系统安全。
CMS 管理:内容发布、分类管理、文章审核等功能齐全,适合自媒体或企业官网使用。
商城管理:商品管理、订单处理、会员体系等基础电商功能,满足小型电商平台需求。
多租户支持:通过 Filter 自动处理租户字段的赋值,无论是新增、更新还是查询,都能自动隔离数据,无需手动干预。
文件上传:支持本地存储与七牛云一键切换,方便部署在不同环境。
数据导入导出:集成 Magicodes.IE.Excel,轻松实现表格的导入与导出功能。
邮件发送:使用 MailKit 实现可靠的邮件通知机制。
同账号登录互斥:通过 SignalR 实现踢人下线功能,保障账号安全。
项目架构
整体框架分为领域层、基础设施层,展现层。
该框架既有传统三层架构的优势,又实现了DDD部分概念,配合顺手的ORM,不管开发API还是mvc效率和性能都是杠杠的。
系统思维导图
项目特点
零学习成本:只要你熟悉 .NET Core,几乎不需要额外学习就能上手。
CRUD 自动化:控制器层对单表操作做了高度抽象,只需按约定创建实体,API 自动生成。
技术栈干净:没有冗余依赖,核心组件如 SqlSugarCore、AutoMapper、FluentValidation 都是久经考验的工具。
缓存自由切换:MemoryCache 和 Redis 可通过配置一键切换,适应不同部署环境。
AOP 支持完善:通过 AspectCore 实现 AOP 缓存和事务,服务层或控制器打个标签即可生效,简洁直观。
多数据库兼容:当前主推 MySQL,未来计划支持 SQL Server 等其他数据库。
项目技术
-
后端框架:.NET(支持 3.1 / 5.0 / 6.0)
-
ORM:SqlSugarCore,轻量高效,支持链式查询与实体生成
-
缓存:MemoryCache + Redis,支持 AOP 缓存拦截
-
日志:NLog,稳定可靠
-
安全:JWT 做身份认证,AES/MD5/RSA/DES 提供多种加密方式
-
实体验证:从 FluentValidation 迁移到 ASP.NET Core 内置验证特性,减少依赖
-
对象映射:AutoMapper
-
导入导出:Magicodes.IE.Excel
-
接口文档:Swagger
-
跨平台:支持 Linux / Windows 部署
项目说明
项目支持多分支选择:
-
master 分支:.NET Core 3.1 单体版本
-
.net 6.0 分支:.NET 6.0 单体版本
-
page5.0 分支:前后端分离版本(已停止维护,适合学习)
-
lowcode 分支:低代码方向探索
源码结构清晰,包含完整的数据库脚本和字典文档(Word/CHM/HTML 格式),开箱即用。
启动时只需修改 appsettings.json 配置,执行 SQL 脚本即可运行。
项目效果
在实际使用中,ShenNiusModularity 展现出极高的开发效率。一个新模块的增删改查功能,往往只需要定义实体类和少量配置,API 就能自动生成。权限控制、多租户、日志记录等通用功能都已内置,开发可以专注于业务逻辑本身。
UI 层采用 Layui 搭建,虽然不算最新潮,但足够稳定,适合快速搭建管理后台。对于不想被复杂架构束缚的小团队或个人开发来说,这是一个非常务实的选择。
1、后台管理
系统登录
系统管理
菜单管理
租户管理
角色管理
字典管理
2、CMS管理
文章管理
栏目管理
广告管理
3、商城系统
商品管理
商品列表
商品分类
项目源码
Gitee:https://gitee.com/shenniu_code_group/shen-nius.-modularity
总结
框架不是一个追求"完美架构"的框架,而是一个真正为"干活"而生的工具。
它不鼓吹 DDD、不强推微服务,而是用最直接的方式解决开发最常遇到的问题。在这个动辄"云原生""高并发"的时代,它提醒我们:有时候,简单才是最好的设计。 如果你厌倦了复杂的脚手架,想找一个轻量、高效、真正能提升生产力的 .NET 后台系统,不妨试试这个框架。
收藏
分享
在看
相关推荐
- 如何为MySQL服务器和客户机启用SSL?
-
用户想要与MySQL服务器建立一条安全连接时,常常依赖VPN隧道或SSH隧道。不过,获得MySQL连接的另一个办法是,启用MySQL服务器上的SSL封装器(SSLwrapper)。这每一种方法各有其...
- k8s 证书问题排查_k8s dashboard 证书
-
从去年开始一些老项目上陆陆续续出现一些列的证书问题,(证书原理这里就不说了,官方文档一堆)多数刚开始的表现就是节点的kubelet服务起不来,节点状态NotReady表现日志如下failed...
- 企业级网络互通方案:云端OpenVPN+爱快路由器+Win11互联实战
-
企业级网络互通方案:OpenVPN搭建公有云+爱快路由器+Win11三地互联实战指南「安全高效」三地局域网秒变局域网实施环境说明...
- OpenV** Server/Client配置文件详解
-
Server配置详解...
- 接口基础认知:关键信息与合规前提
-
1.核心技术参数(必记)...
- S交换机通过SSH登录设备配置示例(RADIUS认证+本地认证独立)
-
说明:●本示例只介绍设备的认证相关配置,请同时确保已在RADIUS服务器上做了相关配置,如设备地址、共享密钥、创建用户等配置。●通过不同的管理域来实现RADIUS认证与本地认证两种方式同时使用,两...
- SSL证书如何去除私钥密码保护_ssl证书怎么取消
-
有时候我们在生成证书的时候可以加入了密码保护。然后申请到证书安装到了web服务器。但是这样可能会带来麻烦。每次重启apache或者nginx的时候,都需要输入密码。那么SSL证书如何去除私钥密码保护。...
- SSL证书基础知识与自签名证书生成指南
-
一、证书文件类型解析...
- S交换机通过SSH登录设备配置示例(RADIUS认证)
-
说明:本示例只介绍设备的认证相关配置,请同时确保已在RADIUS服务器上做了相关配置,如设备地址、共享密钥、创建用户等配置。假设已在RADIUS服务器上创建了用户名yc123,密码test#123。对...
- HTTPS是什么?加密原理和证书。SSL/TLS握手过程
-
秘钥的产生过程非对称加密...
- HTTPS TLS握手流程_进行tls握手
-
1.客户端向服务器发送`ClientHello`消息,包括支持的TLS版本、加密套件、随机数等信息。2.服务器收到`ClientHello`消息后,解析其中的信息,并根据配置选择一个加密套件。3....
- Spring Boot 单点登录(SSO)实现_spring boot 单点登录jwt
-
SpringBoot单点登录(SSO)实现全指南单点登录(SingleSign-On,SSO)是一种身份验证机制,允许用户使用一组凭证登录多个相关但独立的系统。在微服务架构和企业级系统中,SS...
- 源码分享:在pdf上加盖电子签章_pdf如何加盖电子公章
-
在pdf上加盖电子签章,并不是只是加个印章图片,。而是要使用一对密钥中的私钥对文件进行签字。为啥要用私钥呢?很简单,因为公钥是公开的,其他人才可以用公钥为你证明,这个文件是你签的。这就是我们常说的:私...
- 微信支付商户API证书到期 怎么更换
-
微信支付商户API证书到期更换是一个非常重要的操作,需要仔细按照流程进行。如果证书过期,所有通过API的支付、退款等操作都会失败,将直接影响您的业务。请按照以下详细步骤进行操作:重要前提:分清...