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

0421517b8296c6d574a10b5b52c2b08d.gif

背景

在开发这个框架之前,前前后后看过好几款模块化的框架,最后在一段时间内对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”这个开源项目。

软件架构

  1. API框架:dotNetCore

  2. ORM:SqlSugarCore

  3. 缓存:MemoryCache(后期会上redis,看项目业务需求)

  4. 日志管理:Nlog

  5. 工具类:Aes加密、Md5加密、RSA加密、Des加密

  6. token:Json Web Token

  7. 实体验证:FluentValidation

  8. 实体映射:AutoMapper

使用说明

  1. ShenNius.ModuleCore是模块化的核心代码

  2. ShenNius.Swagger是封装的API Doc

  3. ShenNius.Share.Infrastructure 基础设施、里面包含常用的扩展方法、静态类

  4. ShenNius.Share.Models 实体层、里面包括Dto验证、配置类

  5. ShenNius.Share.Service 服务层、业务逻辑基本都在这个里面、里面包含了数据访问操作。

  6. ShenNius.Sys.API 基于RBAC的权限API。

  7. ShenNius.Cms.API 基于Cms的API (待完成)

  8. ShenNius.Shop.API 基于Shop的API (待完成)

  9. ShenNius.API.Hosting API的宿主,所有API目前都放在这个里面托管,这也是魅力所在,可以Sys和Cms API各自托管使用独立的宿主,主要看业务量。拆合很容易。

  10. ShenNius.Layui.Admin 基于layui的后台管理。

安装教程

  1. git clone https://gitee.com/shenniu_code_group/shen-nius.-modularity.git

  2. 多项启动ShenNius.API.Hosting 和ShenNius.Layui.Admin

  3. ShenNius.API.Hosting 可以配置你要启动的API项目

效果图

397799a4e41dffa4a5f4eb9714e54e04.png

c337c2b6de8af11941a466d4950c251b.png

25532a3d18f15f81e0db7818bc03b6e1.png

64f1f1b752e583968fc69c84f63ec161.png

b8267217323c9ea80c1ff52bd757cbf9.png

7e5c393ebd6c44a680b7c13b92fa21b7.png

47ed2b9443c408973f3d8d0c349cee08.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

a9d4afb65ef21e8e4b5e4e7e0b610303.png

23476bed1066a9eb5b21200f109d427a.png

60ebdf0f33405bae8fd498e42224a8ab.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我做的OSC界面

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/hotbain/blog/118542

Fragment生命周期

通过Android Studio创建包含两个Fragment的Activity:QuestListFragment、QuestInputFragment 调用的过程如下: 打开APPQuestListFragment﹕ onAttachQuestListFragment﹕ onCreateQuestListFragment﹕ onCreateViewQuestListFragment﹕ onViewCreatedQue…

使用Nagios监控esx、esxi、vcenter

系统环境:Centos6.3 最小化安装环境准备yum install –y libxml2-devel make gcc1、安装前准备 (1)创建nagios用户和用户组 [rootlocalhost ~]#useradd -s /sbin/nologin nagios [rootlocalhost ~]#mkdir /usr/local/nagios [rootlocalhost ~…

龙芯上市是自主路线被广泛认可的风向标

日前,龙芯通过科创板上市委员会审核,此次计划募资35.12亿元。其中,12.58亿元用于先进制程芯片研发及产业化项目,10.54亿元用于高性能通用图形处理器芯片及系统研发项目;12亿元用于补充流动资金。公开材料还披露了很多细…

量子计算机是程序员的未来,研究者:量子计算机一旦成功问世,时间也许会失去存在的意义...

贝尔实验室的科学家索尔,自从在1994年35界计算科学基础年会上提出量子算法后,立刻引起全世界科学界的轰动,量子计算机的研究热潮自此到来。量子计算机的运行方式以及存储计算方式,都与经典计算机存在着很大不同。经典计算机的存储…

.NET 现代化动态 LINQ 库 Gridify

动态 LINQ大家好,我是等天黑, 这次继续介绍开源项目,Gridify 是一个现代化动态 LINQ 库,它以最简单的方式将您的字符串转换为 LINQ 查询,并且有出色的性能。它还提供了一种使用基于文本的数据应用过滤、排序和分页的简单方法&…

brew mysql 添加修改mysql配置

为什么80%的码农都做不了架构师?>>> brew安装的MySQL是没有默认配置文件的,因此Mysql使用默认配置启动。我们需要手动创建my.cnf去覆盖默认配置。在/usr/local/opt/mysql 下确实有 my.cnf 但是并没有在启用中,应该是作为一个示例…

LINUX BASH SHELL,小小学习一下

注意点要注意的: 整数运算一般通过 let 和 expr 这两个指令来实现,如对变量 x 加 1 可以写作:let "x $x 1" 或者 xexpr $x 1 两个比较表格要记得: 对应的操作 整数操作 字符串操作 相同 -eq 不同 -ne ! 大…

“人肉”背后隐藏的网络风险

“遭此不幸”的演艺界大碗包括 Jay-Z、碧昂斯 (Beyonce)、布兰妮。斯皮尔斯 (Britney Spears) 以及金。卡戴珊 (Kim Kardashian) 等,他们的个人信息被公诸于众。此外,这次泄露事件的受害者甚至包括美国第一夫人米歇尔。奥巴马 (Michelle Obama)、副总统乔…

数学系都是怎么发「新年祝福」的?

全世界只有3.14 % 的人关注了爆炸吧知识过年啦!你都收到什么样的祝福?(快到留言区留言)不过看来看去,还是超模君曾经收到的一条祝福最特别了!超模君今天把这份新年祝福分享给大家:长按图片可保存…

NET 6 中新增的LINQ 方法

.NET 6 中添加了许多 LINQ 方法。下表中列出的大多数新方法在 System.Linq.Queryable 类型中具有等效方法。欢迎关注如果你刻意练习某件事情请超过10000小时,那么你就会达到世界级别今晚打老虎TryGetNonEnumeratedCount 尝试在不强制枚举的情况下确定序列中的元素数…

CSV格式数据如何导入MySQL?

经常有客户咨询如何将CSV文件导入到MySQL数据库中,特写此文介绍一种方便、快捷的方法。 我们要使用的辅助工具是著名的MySQL管理软件:Navicat for MySQL 1)我准备了一个字符编码为UTF-8的标准CSV文件,总共有2001条记录&#xff08…

史上最让数学家无奈的规定!背后真相让人不敢相信,可是没有人能证明对错.........

全世界只有3.14 % 的人关注了爆炸吧知识负负得正怎么证明?放假了,8岁表妹又来我家打算好好学习。今天聊着聊着,超模君差点被她给绕进去。她:“老师说负负得正,所以,所以所有的负数乘以负数都是正数&#xf…

ios开发备忘录三

为什么80%的码农都做不了架构师&#xff1f;>>> 在配置第三方库EGORefreshTableHeaderView的时候&#xff08;其实就只是一个头文件和一个源文件&#xff0c;还算不上库&#xff09;&#xff0c;可以从头文件发现 #import <QuartzCore/QuartzCore.h> 所以必…

C# 企业微信消息推送对接,实现天气预报推送

准备工作需要获取的东西1. 企业Id,2.应用secret 和 应用ID获取企业id注册完成后&#xff0c;在我的企业》企业信息》最下面企业id获取应用secret 和 应用ID发送微信消息class WeCom{public static string weComCId "ww2b b0bf8";//企业Id①public static string we…