月亮与鑫鑫 發表於 2025-9-22 13:28:00

一个拒绝过度设计的 .NET 快速开发框架:开箱即用,专注"干活"

<h2 id="前言">前言</h2>
<p>.NET 生态快速发展的背景下,越来越多开发希望找到一个既能快速上手,又不过度设计的后端框架。尤其是在中小型项目中,复杂的架构、层层封装的服务逻辑往往让开发效率大打折扣。</p>
<p>今天推荐一个轻量级、高效实用的自媒体内容管理系统。它不追求炫技式的"高大上",而是回归开发本质:用最少的代码,解决最实际的问题。</p>
<p>大家是否也曾被那些动辄几十个项目的解决方案吓退?是否厌倦了为了实现一个简单的增删改查,却要写一堆接口、服务、仓储、映射的繁琐流程?作者显然也经历过这些痛点。于是他选择了一条不同的路:大道至简。这个框架没有过度分层,没有复杂的设计模式堆砌,有的只是清晰的结构、实用的技术选型和真正能提升开发效率的抽象封装。它不是为大型分布式系统准备的,而是为那些想快速交付、专注业务本身的团队量身打造的。</p>
<h2 id="项目介绍">项目介绍</h2>
<p>ShenNiusModularity 是一个基于 .NET 开发的自媒体内容管理系统,支持多租户、权限管理、CMS 内容管理、商城模块等核心功能。</p>
<p>项目坚持"Don’t repeat yourself"的原则,反对过度封装和复杂设计,致力于将 CRUD 接口的开发成本降到最低。</p>
<p>只需要定义好实体类,系统就能自动生成对应的增删改查 API,极大提升了开发速度。目前项目支持 .NET 3.1、.NET 5 和 .NET 6 多个版本分支,其中 lowcode 分支专注于低代码方向的探索,适合希望快速搭建系统的开发。</p>
<h2 id="项目功能">项目功能</h2>
<p><strong>权限管理</strong>:角色的权限控制,支持菜单、按钮级别的权限分配,保障系统安全。</p>
<p><strong>CMS 管理</strong>:内容发布、分类管理、文章审核等功能齐全,适合自媒体或企业官网使用。</p>
<p><strong>商城管理</strong>:商品管理、订单处理、会员体系等基础电商功能,满足小型电商平台需求。</p>
<p><strong>多租户支持</strong>:通过 Filter 自动处理租户字段的赋值,无论是新增、更新还是查询,都能自动隔离数据,无需手动干预。</p>
<p><strong>文件上传</strong>:支持本地存储与七牛云一键切换,方便部署在不同环境。</p>
<p><strong>数据导入导出</strong>:集成 Magicodes.IE.Excel,轻松实现表格的导入与导出功能。</p>
<p><strong>邮件发送</strong>:使用 MailKit 实现可靠的邮件通知机制。</p>
<p><strong>同账号登录互斥</strong>:通过 SignalR 实现踢人下线功能,保障账号安全。</p>
<h2 id="项目架构">项目架构</h2>
<p>整体框架分为领域层、基础设施层,展现层。</p>
<p>该框架既有传统三层架构的优势,又实现了DDD部分概念,配合顺手的ORM,不管开发API还是mvc效率和性能都是杠杠的。</p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172418041-1119218532.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3 id="系统思维导图">系统思维导图</h3>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172352902-344655980.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h2 id="项目特点">项目特点</h2>
<p><strong>零学习成本</strong>:只要你熟悉 .NET Core,几乎不需要额外学习就能上手。</p>
<p><strong>CRUD 自动化</strong>:控制器层对单表操作做了高度抽象,只需按约定创建实体,API 自动生成。</p>
<p><strong>技术栈干净</strong>:没有冗余依赖,核心组件如 SqlSugarCore、AutoMapper、FluentValidation 都是久经考验的工具。</p>
<p><strong>缓存自由切换</strong>:MemoryCache 和 Redis 可通过配置一键切换,适应不同部署环境。</p>
<p><strong>AOP 支持完善</strong>:通过 AspectCore 实现 AOP 缓存和事务,服务层或控制器打个标签即可生效,简洁直观。</p>
<p><strong>多数据库兼容</strong>:当前主推 MySQL,未来计划支持 SQL Server 等其他数据库。</p>
<h2 id="项目技术">项目技术</h2>
<ul>
<li>
<p>后端框架:.NET(支持 3.1 / 5.0 / 6.0)</p>
</li>
<li>
<p>ORM:SqlSugarCore,轻量高效,支持链式查询与实体生成</p>
</li>
<li>
<p>缓存:MemoryCache + Redis,支持 AOP 缓存拦截</p>
</li>
<li>
<p>日志:NLog,稳定可靠</p>
</li>
<li>
<p>安全:JWT 做身份认证,AES/MD5/RSA/DES 提供多种加密方式</p>
</li>
<li>
<p>实体验证:从 FluentValidation 迁移到 ASP.NET Core 内置验证特性,减少依赖</p>
</li>
<li>
<p>对象映射:AutoMapper</p>
</li>
<li>
<p>导入导出:Magicodes.IE.Excel</p>
</li>
<li>
<p>接口文档:Swagger</p>
</li>
<li>
<p>跨平台:支持 Linux / Windows 部署</p>
</li>
</ul>
<h2 id="项目说明">项目说明</h2>
<p>项目支持多分支选择:</p>
<ul>
<li>master 分支:.NET Core 3.1 单体版本</li>
<li>.net 6.0 分支:.NET 6.0 单体版本</li>
<li>page5.0 分支:前后端分离版本(已停止维护,适合学习)</li>
<li>lowcode 分支:低代码方向探索</li>
</ul>
<p>源码结构清晰,包含完整的数据库脚本和字典文档(Word/CHM/HTML 格式),开箱即用。</p>
<p>启动时只需修改 appsettings.json 配置,执行 SQL 脚本即可运行。</p>
<h2 id="项目效果">项目效果</h2>
<p>在实际使用中,ShenNiusModularity 展现出极高的开发效率。一个新模块的增删改查功能,往往只需要定义实体类和少量配置,API 就能自动生成。权限控制、多租户、日志记录等通用功能都已内置,开发可以专注于业务逻辑本身。</p>
<p>UI 层采用 Layui 搭建,虽然不算最新潮,但足够稳定,适合快速搭建管理后台。对于不想被复杂架构束缚的小团队或个人开发来说,这是一个非常务实的选择。</p>
<h3 id="1后台管理">1、后台管理</h3>
<p><strong>系统登录</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172449608-1350772667.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p><strong>系统管理</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172510828-1804319919.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p><strong>菜单管理</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172659150-1985803358.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p><strong>租户管理</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172715577-1384272050.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p><strong>角色管理</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172647150-1374566252.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p><strong>字典管理</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172631377-1981137143.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3 id="2cms管理">2、CMS管理</h3>
<p><strong>文章管理</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172732016-1101985072.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p><strong>栏目管理</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172743594-507036411.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p><strong>广告管理</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172753667-1355812439.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3 id="3商城系统">3、商城系统</h3>
<p><strong>商品管理</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172808172-1162602946.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p><strong>商品列表</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172837410-260202619.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p><strong>商品分类</strong></p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202509/576536-20250921172911342-1597382491.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h2 id="项目源码">项目源码</h2>
<p>Gitee:https://gitee.com/shenniu_code_group/shen-nius.-modularity</p>
<h2 id="总结">总结</h2>
<p>框架不是一个追求"完美架构"的框架,而是一个真正为"干活"而生的工具。</p>
<p>它不鼓吹 DDD、不强推微服务,而是用最直接的方式解决开发最常遇到的问题。在这个动辄"云原生""高并发"的时代,它提醒我们:有时候,简单才是最好的设计。 如果你厌倦了复杂的脚手架,想找一个轻量、高效、真正能提升生产力的 .NET 后台系统,不妨试试这个框架。</p>
<h2 id="最后">最后</h2>
<p>如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。</p>
<p>也可以加入微信公众号 社区,与其他热爱技术的同行一起交流心得,共同成长!</p>
<p><img src="https://img2024.cnblogs.com/blog/576536/202505/576536-20250527195524293-1794896295.png" width="50%" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p><br><br>
来源:https://www.cnblogs.com/1312mn/p/19103859
頁: [1]
查看完整版本: 一个拒绝过度设计的 .NET 快速开发框架:开箱即用,专注"干活"