百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

一个拒绝过度设计的 .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)。这每一种方法各有其...

OpenVPN客户端配置_openvpn客户端配置文件解析

...

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的支付、退款等操作都会失败,将直接影响您的业务。请按照以下详细步骤进行操作:重要前提:分清...