Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

memoyu

CoreMe

基于.NET8开箱即用项目模板

简介

作为个人.NET 开发技术的积累、实践合集,基于.NET 8实现基础的项目架构,为后期个人项目快速开发提供基座,开箱即用; 遵循CleanArchitecture设计理念(Ctrl C + V)

如何使用

1. 构建新的模板(使用当前模板可直接到第2步)

  1. 将调整后的项目文件(解决方案下的文件,排除.git、.github、.vs、template等非项目文件或文件夹)全部拷贝到template\Content文件夹中。

    如需调整模板信息,可自行编辑template\Content\.template.config\template.json文件
    
  2. 执行Delete bin&obj Folder.bat文件。

    此操作意欲删除项目产生的所有bin、obj等文件夹
    
  3. 执行template\PackTplNuget.bat脚本,产出.nupkg文件,默认为CoreMeTemplate.x.x.x.nupkg

    如需调整生成的nupkg文件信息,可自行编辑template\coreme.nuspec文件
    
  4. 此时已完成新模板构建

2. 使用当前模板

  1. template文件夹下的.nupkg文件拷贝到cripts\.template中,并根据.nupkg文件名调整CreateNewProject.bat文件内容。

    替换掉该段脚本的nupkg文件名:dotnet new -i .template\CoreMeTemplate.2.0.0.nupkg
    
  2. 执行CreateNewProject.bat脚本,并根据提示填入信息

  3. 成功后cripts目录下会产出.project文件夹,文件夹内即为根据模板新建的项目

衍生项目

功能实现

  • 系统日志写入/查询;
  • 用户、访客管理;
  • 角色、权限管理;

分层结构

src
├─CoreMe.Application -- 应用服务模块
│  ├─Users -- 服务名称(具体服务实现,例如:文章管理、权限管理等)
│  │  ├─Commands -- 增删改命令操作(对数据造成变更的处理)
│  │  ├─Common -- 当前服务公有实体,例如:响应、请求
│  │  ├─Events -- 事件触发EventHandler
│  │  └─Queries -- 查询操作(对数据进行读取)
│  │      ├─Anlyanis -- 统计分析数据
│  │      ├─Get -- 获取详情
│  │      ├─List -- 获取列表
│  │      └─Page -- 获取分页
│  └─Common -- 服务公有模块
│     ├─Behaviours -- MediatR管道切面行为(AOP)
│     ├─Exceptions -- 自定义异常
│     ├─Extensions -- 扩展方法
│     ├─Interfaces -- 接口定义
│     │  ├─Persistence -- 数据相关定义
│     │  │  └─Repositories -- 仓储定义(基础仓储定义)等
│     │  ├─Security -- 安全相关接口定义
│     │  └─Services -- 服务接口定义
│     ├─Mappings -- Mapster实体映射IRegister
│     ├─Models -- 公共模型定义,例如:配置、响应、请求等基础实体
│     ├─Request -- 进程内通信基础定义
│     ├─Security -- 安全相关的实体定义
│     ├─Services -- 服务实现,例如后台任务服务
│     └─Utils -- 工具类
├─CoreMe.Domain -- 服务领域模块
│  ├─Common -- 公共实体定义
│  ├─Constants -- 常量定义
│  ├─Entities -- 数据库实体定义
│  │  └─Mongo -- MongoDB实体定义
│  ├─Enums -- 枚举定义
│  ├─Events -- 事件定义
│  └─ValueObjects -- 值对象定义
├─CoreMe.Infrastructure -- 基础设施模块
│  ├─Persistence -- 数据持久化实现
│  │  └─Repositories -- 数据库仓储实现
│  ├─Region -- ip2region进一步封装实现
│  └─Security -- 安全相关实现,例如JWT、当前用户、权限验证
└─CoreMe.Api -- 外放接口模块
    ├─Controllers -- 客户端接口定义
    │  └─Admin -- 管理端接口定于
    └─wwwroot -- 静态文件
        └─Assets -- 资源文件

相关技术

模块 开源地址
API文档 RicoSuter/NSwag
数据库 dotnetcore/FreeSql + MySQL + MongoDB + MongoDB C# Driver
对象存储 七牛云 + qiniu/csharp-sdk
缓存 Redis + dotnetcore/EasyCaching
进程内通信 jbogard/MediatR
身份认证 Authentication(内置) + jwt
参数验证 FluentValidation/FluentValidation
日志 serilog/serilog
限流 stefanprodan/AspNetCoreRateLimit
IP解析 lionsoul2014/ip2region
雪花ID yitter/idgenerator
对象映射 MapsterMapper/Mapster
Json序列化/反序列化 System.Text.Json(内置)
后台任务调度 BackgroundService(内置)
实时通信 SignalR/SignalR
整体设计参考 CleanArchitecture
容器 Docker
DevOps Azure

参考项目

在此,感谢各位大佬的开源

开源协议

MIT License. See License here for details.

About

作为个人.NET 开发技术的积累、实践合集,基于.NET 8实现基础的项目架构,为后期个人项目快速开发提供基座,开箱即用

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages