7 Star 32 Fork 10

深夜代码 / SmallNetCore

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

SmallNetCore

介绍

SmallNetCore是采用NET6搭建的一套轻量级后端开发项目,对于中小型企业或者个人项目可以直接使用,项目主要使用的技术栈包括:NetCore、Autofac、Sqlsugar、AutoMapper、Log4、JWT、Swagger等,基础框架功能都已经封装好,对相关技术稍加了解就能开箱即用,项目基本没有冗余代码。

软件架构

以MVC三层架构为基础的架构体系,整体的架构是每张表对应一个实体类、一个数据访问层的类。业务逻辑层则按照具体的业务进行组装,摒弃了一张表一个业务类的设计。例如下单业务,就会涉及到订单表、用户表、支付表进行组合。

  • 表现层

    • SmallNetCore.UI
      • Controllers 控制器
      • appsettings.json 系统配置文件
      • log4net.config 日志配置文件
      • Program.cs 启动类
  • 业务逻辑层

    • SmallNetCore.IServices【用于IOC注入,面向接口编程】
    • SmallNetCore.Services
      • Base 当前层的公用方法,例如基类
  • 数据库访问层

    • SmallNetCore.IRepository【用于IOC注入,面向接口编程】
    • SmallNetCore.Repository
      • Base 当前层的公用方法,例如基类
  • 实体层

    • SmallNetCore.Models
      • Base 当前层的公用方法
      • Configs 配置集合
        • CenterConfigs.cs 动态配置读取
        • Consts.cs 常量的配置
      • DBModels 数据表实体
      • Entitys 公共的实体,例如用户的登录实体,配置链接的实体等
      • Enums 枚举集合
      • ViewModels Dto相关的实体
        • Base 公共的实体,例如一些基类定义
        • Request 所有请求的实体
        • Response 所有返回的实体
  • 其他

    • SmallNetCore.Common【公共方法层】

      • ApIInfo Http请求相关
      • Convets 各种数据转换
      • Encrypt 加密相关
      • Serialize 序列化相关
      • Utils 其他方法
    • SmallNetCore.Extensions【扩展层】,主要用于一些公用的非业务逻辑层,例如,autofac的注入、automapper的构造等,但是像一些订单类、商品类的业务逻辑还是要放在SmallNetCore.Services层,最好不用弄混了

      • AutoMapper AutoMapper相关的配置
      • Filter 过滤器配置
        • GlobalExceptionsFilter.cs 全局异常捕获
        • MyActionFilterAttribute.cs 请求管道跟踪
      • ServiceExtensions 服务注册相关扩展
    • SmallNetCore.Remotes【远程服务调用层】,主要用于一些第三方的服务封装,例如微信支付、阿里支付等第三方的服务

安装使用教程

  1. 当前项目使用的MySql数据库,会有个初始化的数据结构,脚本Sql如下:
  • 数据库库名称:FirstTestDb

       DROP TABLE IF EXISTS `role`;
        CREATE TABLE `role`  (
        `RoleId` int NOT NULL AUTO_INCREMENT COMMENT '角色ID',
        `RoleName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '角色名称',
        PRIMARY KEY (`RoleId`) USING BTREE
        ) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色表' ROW_FORMAT = Dynamic;
    
        DROP TABLE IF EXISTS `user`;
        CREATE TABLE `user`  (
        `Id` int NOT NULL AUTO_INCREMENT COMMENT '用户主键',
        `UserName` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '用户姓名',
        `Sex` tinyint(1) NOT NULL DEFAULT 0,
        PRIMARY KEY (`Id`) USING BTREE
        ) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
    
        SET FOREIGN_KEY_CHECKS = 1;
  • 数据库库名称:SerondTestDb

     DROP TABLE IF EXISTS `order`;
        CREATE TABLE `order`  (
        `OrderId` int NOT NULL AUTO_INCREMENT COMMENT '主键',
        `UserId` int NOT NULL COMMENT '用户ID',
        `ProductId` int NOT NULL COMMENT '商品ID',
        PRIMARY KEY (`OrderId`) USING BTREE
        ) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
    
       SET FOREIGN_KEY_CHECKS = 1;
  1. 数据库创建完成之后,进行更换项目的数据库链接,位置:SmallNetCore.UI -> appsettings.json -> MYSQL节点

  2. 当前数据库完全只是测试数据库,并非必要数据库,正式项目可以替换自己的数据库,甚至更换Mysql,使用其他类型的数据库

  3. 实体生成,可以使用sqlsugar官方推荐的链接,生成的实体需要包含Tenant特性,如下图,主要是解决当前项目存在多个数据库问题,如果单库可以通过设置默认链接不用设置Tenant特性

    [Tenant(MySqlConnEnum.FisrtTestDb)]
    public class Role
    {
        /// <summary>
        /// 角色Id
        /// </summary>
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
        public int RoleId { get; set; }
  4. 后期针对数据访问层也会集成到代码生成器里面,这个后期进行完善....

其他

MIT License Copyright (c) 2022 深夜代码 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

SmallNetCore是采用NET6搭建的一套轻量级后端开发项目,对于中小型企业或者个人项目可以直接使用,项目主要使用的技术栈包括:NetCore、Autofac、Sqlsugar、AutoMapper、Log4、JWT、Swagger等,基础框架功能都已经封装好,对相关技术稍加了解就能开箱即用,项目基本没有冗余代码 展开 收起
C#
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/chengwenkang123/small-net-core.git
git@gitee.com:chengwenkang123/small-net-core.git
chengwenkang123
small-net-core
SmallNetCore
master

搜索帮助