极简实用的Asp.NetCore模块化框架决定免费开源了
背景
在开发这个框架之前,前前后后看过好几款模块化的框架,最后在一段时间内对ABP VNext痛下狠心,研究一段时间后,不得不说 ABP VNext的代码层面很规范,也都是一些最佳实践,开发出一个模块效率也很高。但不得不说,于我而言太重了。还看过一些其他模块化的框架,就不说了,学习成本于我而言太高了,主要是自己懒。 于是,我在想有没有一款上手简单,比较经济实用的模块化框架,只要会.net core 基本就可以上手呢,于是,将ABP VNext的模块化核心代码抽出来(在这里要特别感谢土牛了),结合asp.net core很完美,我本身的需求就是做到业务逻辑代码能够复用,不用经常一些已经写过好几遍的简直难受到要吐的重复代码,这于我而言就足够了。 框架简介 一款基于Asp.net core3.1的模块化开发框架,提取了ABP VNext的模块核心,适合中小型项目快速开发,取名为神牛(ShenNius),意为大神大牛多提意见,一起参与,神牛云集,为dotnet社区贡献一份自己的力量。追求“简单”,“高效”,“实用”,总之秉承大道至简的原则开发,坚持业务模块最低复杂度复用,只要会C#,再会点Asp.NetCore基础知识,极易上手。适合小白入门进阶,更适用(实用)老手上路干活。 所有的业务代码可以按照类库划分,使用宿主托管。所有的代码坚持" Dont repeat yourself "。坚决反对" 简单的事情复杂干 "," 大量代码在应用层过度层层封装 ",反对" 过度设计 "的原则下进行开发。如果你有这个习惯,并且也想找一款迷你型、上手快,不用学习太多东西的框架,那么它就适合你,只要你会dotnet core,几乎没有学习成本,除了ABP VNext的模块化核心代码。另外、顺手做了个简单的后台权限管理做为入门例子。采用LayuiMini+Asp.Net Core Razor Page,本来是想用Blazor,我前后看了几款UI框架,目前都不是很成熟,需要踩坑。而我由于时间比较紧迫关系,只有自己一个人,先使用Layui,后期有时间我还是想上Blazor的,目前整个前后端交互基本都是分离的,后面想要切换到Blazor,也很好对接。 注:权限后台管理有部分样式之类的有借鉴“ s”这个开源项目。
软件架构
- 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项目
最后说明
码云:
github: