极简实用的Asp.NetCore模块化框架决定免费开源了

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 在开发这个框架之前,前前后后看过好几款模块化的框架,最后在一段时间内对ABP VNext痛下狠心,研究一段时间后,不得不说 ABP VNext的代码层面很规范,也都是一些最佳实践,开发出一个模块效率也很高。但不得不说,于我而言太重了。还看过一些其他模块化的框架,就不说了,学习成本于我而言太高了,主要是自己懒。

背景

在开发这个框架之前,前前后后看过好几款模块化的框架,最后在一段时间内对ABP VNext痛下狠心,研究一段时间后,不得不说 ABP VNext的代码层面很规范,也都是一些最佳实践,开发出一个模块效率也很高。但不得不说,于我而言太重了。还看过一些其他模块化的框架,就不说了,学习成本于我而言太高了,主要是自己懒。

于是,我在想有没有一款上手简单,比较经济实用的模块化框架,只要会.net core 基本就可以上手呢,于是,将ABP VNext的模块化核心代码抽出来(在这里要特别感谢土牛了),结合asp.net core很完美,我本身的需求就是做到业务逻辑代码能够复用,不用经常一些已经写过好几遍的简直难受到要吐的重复代码,这于我而言就足够了。

框架简介

一款基于Asp.net core3.1的模块化开发框架,提取了ABP VNext的模块核心,适合中小型项目快速开发,取名为神牛(ShenNius),意为大神大牛多提意见,一起参与,神牛云集,为dotnet社区贡献一份自己的力量。追求“简单”,“高效”,“实用”,总之秉承大道至简的原则开发,坚持业务模块最低复杂度复用,只要会C#,再会点Asp.NetCore基础知识,极易上手。适合小白入门进阶,更适用(实用)老手上路干活。
所有的业务代码可以按照类库划分,使用宿主托管。所有的代码坚持" Don't repeat yourself "。坚决反对" 简单的事情复杂干 "," 大量代码在应用层过度层层封装 ",反对" 过度设计 "的原则下进行开发。如果你有这个习惯,并且也想找一款迷你型、上手快,不用学习太多东西的框架,那么它就适合你,只要你会dotnet core,几乎没有学习成本,除了ABP VNext的模块化核心代码。另外、顺手做了个简单的后台权限管理做为入门例子。采用LayuiMini+Asp.Net Core Razor Page,本来是想用Blazor,我前后看了几款UI框架,目前都不是很成熟,需要踩坑。而我由于时间比较紧迫关系,只有自己一个人,先使用Layui,后期有时间我还是想上Blazor的,目前整个前后端交互基本都是分离的,后面想要切换到Blazor,也很好对接。
注:权限后台管理有部分样式之类的有借鉴“ FytSoaCms”这个开源项目​。​

软件架构

API框架:dotNetCore
ORM:SqlSugarCore
缓存:MemoryCache(后期会上redis,看项目业务需求)
日志管理:Nlog
工具类:Aes加密、Md5加密、RSA加密、Des加密
token:Json Web Token
实体验证:FluentValidation
实体映射:AutoMapper
使用说明
ShenNius.ModuleCore是模块化的核心代码
ShenNius.Swagger是封装的API Doc
ShenNius.Share.Infrastructure 基础设施、里面包含常用的扩展方法、静态类
ShenNius.Share.Models 实体层、里面包括Dto验证、配置类
ShenNius.Share.Service 服务层、业务逻辑基本都在这个里面、里面包含了数据访问操作。
ShenNius.Sys.API 基于RBAC的权限API。
ShenNius.Cms.API 基于Cms的API (待完成)
ShenNius.Shop.API 基于Cms的API (待完成)
ShenNius.API.Hosting API的宿主,所有API目前都放在这个里面托管,这也是魅力所在,可以Sys和Cms API各自托管使用独立的宿主,主要看业务量。拆合很容易。
ShenNius.Layui.Admin 基于layui的后台管理。

安装教程

git clone https://gitee.com/shenniu_code_group/shen-nius.-modularity.git
多项启动ShenNius.API.Hosting 和ShenNius.Layui.Admin
ShenNius.API.Hosting 可以配置你要启动的API项目

效果图

640 (1).png
640 (2).png
640 (3).png
640 (4).png
640 (5).png
640 (6).png
640.png

最后说明

这个框架,我一直会更新下去,不断的去调整架构,关于Asp.Net Core Api如何配置swagger,FluentValidation等技术文章我近期也会更新文章出来,只要业务需要,我会将一些技术点慢慢地融入到框架中来。尽量做到务实,尽量不在应用层封装自己大量的东西,增加学习成本。我本人真的不喜欢在应用层封装大量东西的框架,包了一层又一层,没任何意义。
另外,近期我会把一些权限管理的前端bug修复下,前端技术我是个半桶水,真的很发愁,如果有人愿意一起做开源,为社区贡献一份力量,那就尽情的联系我吧。以前自己也做了大量的个人项目,但都没有开源出来。这次基本也是从小白做起,一起学习如何做好一个开源项目。

对了,近期我也会把CMS模块尽快完善起来,商城模块后面逐渐排期更新。
最后,如果有什么问题,我也自建了"dotnet根据地"这样一个微信群,可以识别下面的二维码加入,一起交流沟通,如果群二维码过期了也可以识别下面二维码加我微信,邀请你加入微信群​。

源码地址

码云:https://gitee.com/shenniu_code_group/shen-nius.-modularity

github:https://github.com/realyrare/ShenNiusFramework

相关文章
|
26天前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
3月前
|
存储 开发框架 算法
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路
|
3月前
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
|
3月前
|
存储 开发框架 JSON
ASP.NET Core 标识(Identity)框架系列(二):使用标识(Identity)框架生成 JWT Token
ASP.NET Core 标识(Identity)框架系列(二):使用标识(Identity)框架生成 JWT Token
|
3月前
|
开发框架 .NET 数据库连接
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
|
小程序 前端开发 数据安全/隐私保护
极简实用的Asp.NetCore框架再新增商城模块
新增加一个商城模块,主要包含商品管理(支持多个sku),商品分类,小程序用户,用户收获地址、订单各种状态的列表。
911 0
极简实用的Asp.NetCore框架再新增商城模块
|
缓存 NoSQL 程序员
极简实用的Asp.NetCore模块化框架新增CMS模块
Asp.NetCore模块化框架新增CMS模块
172 0
极简实用的Asp.NetCore模块化框架新增CMS模块
|
开发框架 前端开发 .NET
|
开发框架 .NET 数据安全/隐私保护
基于ASP.Net Core开发的一套通用后台框架
基于ASP.Net Core开发的一套通用后台框架写在前面这是本人在学习的过程中搭建学习的框架,如果对你有所帮助那再好不过。如果您有发现错误,请告知我,我会第一时间修改。知其然,知其所以然,并非重复的造轮子。
18483 0
|
Web App开发 前端开发 .NET
从头编写 asp.net core 2.0 web api 基础框架 (1)
原文:从头编写 asp.net core 2.0 web api 基础框架 (1) 工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.
1416 0