jddj007-hydra / NetEngine

基于 .Net 框架搭建的一个基础项目结构

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

背景介绍

这是一个以 最新版 .NET 框架为基础搭建的一个基础项目,之所以要做这样一个项目主要是为了在开发一个新项目时能够快速的进入业务逻辑的开发,而不需要每次去重新构建一些项目基础的内容。该项目始于2019年,从.net core 2.2 时代一路迭代过来。

框架的整体技术都是以微软官方的指导进行,个人喜好大道至简的风格,所以并没有对框架进行太多复杂的自定义封装,我不喜欢去吹嘘所谓的百万并发,超高性能等等,个人认为我们日常开发的大部分系统,并不需要考虑百万并发,毕竟不是所有的公司都有这种体量的性能要求,本项目主要的代码风格接近于微软官方的教程编码风格。

如果你在找一个简单易用的 .NET 基础项目框架,欢迎使用该项目进行尝试开发体验。

项目介绍

项目主要整合了如下一些常用的技术点

  • api 的授权认证采用 JWT 认证方式(jwt自动续期逻辑实现,到期前15分钟会签发新的token)
  • 全局异常记录实现
  • Redis分布式缓存实现
  • Redis分布式锁实现,支持并发所,信号量锁
  • 微信和支付宝支付模块实现
  • 微信小程序开发中常用的接口实现,如获取手机号,获取openid 等等
  • 微信APP登录获取 token 实现
  • 手机号和短信验证获取 token 实现
  • 文件存储服务对接了 阿里云OSS和腾讯COS
  • 短信服务对接了腾讯云和阿里云短信服务
  • 雪花ID的自定义实现,支持 139年 的有效期
  • 日志服务扩展,实现了数据库和本地文件两种记录模式
  • 采用 Blazor 实现了一个基础的CMS管理后台
  • 还包含了很多常用的Helper类和扩展方法,就不全部列举了,各位小伙伴可以克隆到本地自己研究

项目大体结构

基础通用类库

  1. Common 整合了项目开发中常用的各种静态Helper类和一些扩展方法
  2. DistributedLock 目前基于 Redis 实现了一套分布式锁的方法
  3. FileStorage 文件存储整合了国内常用的阿里云OSS和腾讯云COS 两家的对象存储服务
  4. Logger 实现了 数据库日志记录和本地文件日志两种逻辑
  5. SMS 短信模块目前整合实现 阿里云和腾讯云两家的短信服务

数据库层

  1. Repository 用于存放数据库模型,整体采用 EF Core 最新版
  2. Repository.Tool 用于操作数据库的 Add-Migration 和 Update-Database

定时应用项目

TaskService 采用了微软的Timer来实现周期性任务的执行

Admin管理后台项目

管理后台模块 前端使用了 Blazor 技术开发,采用的是 wasm 模式,该模式可以直接将项目编译为 dll 文件运行在客户端的浏览器中,性能相对来说要高一点,并且对于服务器的压力要小很多。

  1. AdminApp 采用 Blazor 搭建的管理后台
  2. AdminApi 为AdminApp 提供后端服务
  3. AdminShared 是AdminApp和AdminApi公用模型存放类库,主要存放前后端交互的DTO模型

WebApi项目

该项目是一个 webapi 的基础项目,主要整合了如下内容:

  1. 身份认证模块,
  2. 支付宝支付模块,包含 PC支付 H5支付
  3. 微信支付模块,包含 PC支付 H5支付 APP支付 小程序支付
  4. 文件管理模块
  5. 二维码生成api,图像验证码生成API
  6. 微信 短信 用户名登录API
  7. 缓存过滤器,并发队列限制过滤器,自定义签名算法过滤器

About

基于 .Net 框架搭建的一个基础项目结构

License:MIT License


Languages

Language:C# 97.4%Language:HTML 2.6%