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


    背景

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

    效果图

    最后说明


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

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

    源码地址


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

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

    作者:课间一起牛

    出处:https://www.cnblogs.com/mhg215/

    声援博主:如果您觉得文章对您有帮助,请点击文章末尾的【关注我】吧!

    别忘记点击文章右下角的【推荐】支持一波。~~~///(^v^)\~~~ .

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    如果您有其他问题,也欢迎关注我下方的公众号,可以联系我一起交流切磋!

     B站: 课间一起牛的B站         知乎:课间一起牛的知乎

    码云:课间一起牛的码云      github:课间一起牛的github

  • 相关阅读:
    门头沟PHP,java编程兴趣小组欢迎大家的加入。
    mysql数据库怎么存入emoji表情,更改utf8mb4后为什么出现全是问号
    Laravel发送邮件配置-问题解决
    php版本低更换php版本-问题以解决
    极光客户互动云java post请求
    【问题解决】增加https后 phpcms 分页错误
    阿里云阿里免费ssl wap网站在手机微信、手机浏览器无法访问
    Kali Linux on Android # 实测:小米2s离线安装Kali Linux
    3-1 LVS-NAT集群
    使用LVM方式安装Ubuntu 16.04
  • 原文地址:https://www.cnblogs.com/mhg215/p/14497588.html
Copyright © 2020-2023  润新知