NetCoreKevin

基于NET8搭建DDD-微服务-现代化Saas企业级WebAPI前后端分离架构:前端Vue3、IDS4单点登录、多级缓存、自动任务、分布式、AI智能体、一库多租户、日志、授权和鉴权、CAP事件、SignalR、领域事件、MCP协议服务、IOC模块化注入、Cors、Quartz自动任务、多短信、AI、AgentFramework、SemanticKernel集成、RAG检索增强+Qdrant矢量数据库、OCR识别、API多版本、单元测试、RabbitMQ

解耦设计都可以单独引用 项目启动时注意相关Redis、db链接配置、RabbitMQ

生成数据库可见下面说明文件 命令生成即可

项目地址:github:https://github.com/junkai-li/NetCoreKevin

NetCoreKevin介绍



后台管理系统(基于VUE3-AntDesign)

后台自动任务调度系统(基于Quartz.NET)

教学文档地址 [教学文档地址]

项目概述

NetCoreKevin 是一个基于 DDD(Domain-Driven Design) 和 微服务架构 的 .NET 8 Web API 项目,其核心目标是提供一个可复用、模块化、可扩展的架构平台。它集成了以下关键功能:

身份认证与授权(基于 IdentityServer4)
多缓存支持(Redis、内存缓存)
分布式系统支持(CAP 集成事件)
多租户支持(一库多租户)
任务调度(Quartz)
日志系统(log4Net)
实时通信(SignalR)
AI 集成(SemanticKernel、OCR 验证码识别)
短信服务(阿里云、腾讯云)
文件存储(阿里云、腾讯云)
自动化爬虫(Selenium)
模块化依赖注入(IOC)
多版本 API 兼容
单元测试支持
Docker 支持
RabbitMQ

项目结构详解

以下是项目的核心模块及其功能说明:

    1. App.AuthorizationService
  • 功能:授权服务,基于 IdentityServer4 搭建,支持单点登录(SSO)。
  • 说明:用于统一管理用户认证和授权,是整个系统的安全中心。
    1. Kevin.Common
  • 功能:工具类库,包含常用帮助类、扩展方法、文件流操作、图片处理等。
  • 说明:提供基础的通用功能,避免重复开发。
    1. 文档
  • 功能:基础使用文档。
  • 说明:包含项目启动说明、配置步骤、数据库生成方法等。
    1. InitData
  • 功能:数据初始化的 SQL 脚本。
  • 说明:用于初始化数据库结构和测试数据。
    1. Share
  • 功能:存放 DTO(数据传输对象)、结构类型等共享模型。
  • 说明:用于跨模块的数据交换。
    1. App.TaskQuartz
  • 功能:基于 Quartz 的自动任务调度系统。
  • 说明:用于定时执行后台任务,如数据同步、清理、推送等。
    1. App.RepositorieRps
  • 功能:数据库仓储层。
  • 说明:提供对数据库的读写操作,通常使用 EFCore 实现。
    1. App.Application
  • 功能:应用服务层。
  • 说明:处理业务逻辑,调用仓储层或领域层,是业务操作的中转站。
    1. Kevin.Web
  • 功能:Web 相关工具层,包含过滤器、中间件、全局类、服务初始化等。
  • 说明:提供 Web 层的基础配置和扩展。
    1. App.WebApi
  • 功能:API 层。
  • 说明:对外暴露的 RESTful API 接口,接收请求并调用应用服务。
    1. kevin.CrawlingService
  • 功能:基于 Selenium 的爬虫服务或自动化测试。
  • 说明:用于模拟浏览器行为进行数据采集或测试。
    1. Kevin.EntityFrameworkCore
  • 功能:基于 EFCore 的工作单元(UnitOfWork)实现。
  • 说明:提供统一的数据库事务管理。
    1. kevin.Domain
  • 功能:领域服务层。
  • 说明:实现核心业务逻辑,是 DDD 的核心部分。
    1. kevin.Cache
  • 功能:基于 IDistributedCache 的缓存服务,支持多种缓存方式。
  • 说明:提供缓存策略和操作接口。
    1. kevin.Cap
  • 功能:基于 CAP 的分布式事件总线。
  • 说明:用于微服务之间的消息通信和事件处理。
    1. kevin.Consul
  • 功能:微服务注册与发现,使用 Consul 实现。
  • 说明:支持服务的动态发现和负载均衡。
    1. Kevin.Cors
  • 功能:跨域配置模块。
  • 说明:提供自定义的跨域策略支持。
    1. kevin.DistributedLock
  • 功能:分布式锁。
  • 说明:用于在分布式环境中控制资源访问。
    1. kevin.Domain.EventBus
  • 功能:基于 MediatR 的领域事件实现。
  • 说明:用于处理业务逻辑中的事件发布与订阅。
    1. kevin.FileStorage
  • 功能:文件存储服务,支持阿里云、腾讯云。
  • 说明:提供文件上传、下载、管理等功能。
    1. Kevin.HttpApiClients
  • 功能:基于 IHttpClientFactory 的 HTTP 客户端。
  • 说明:支持 HTTP/2.0,用于调用外部 API。
    1. kevin.Ioc
  • 功能:IOC 容器模块。
  • 说明:提供模块化的依赖注入配置。
    1. Kevin.log4Net
  • 功能:日志系统,基于 log4Net。
  • 说明:用于记录系统运行日志,便于调试和分析。
    1. kevin.Permission
  • 功能:权限服务,可根据 API 配置权限。
  • 说明:支持基于 API 的细粒度权限控制。
    1. Kevin.SignalR
  • 功能:SignalR 实时通信服务。
  • 说明:用于实时消息推送、在线状态同步等。
    1. Kevin.SMS
  • 功能:短信服务,支持阿里云、腾讯云。
  • 说明:用于发送验证码、通知短信等。
    1. Kevin.AI 系列
  • 功能:AI 集成模块,包括 SemanticKernel、MCP 服务、OCR 验证码识别等。
  • 说明:集成 AI 功能,如语义理解、验证码识别等。

技术亮点

技术点 说明

  • .NET 8 最新的 .NET 框架,性能更优,支持更多新特性
  • DDD 领域驱动设计,将复杂业务逻辑抽象为模块化结构
  • 微服务架构 通过 Consul、CAP、Quartz 等实现服务解耦和分布式管理
  • CAP 消息总线,用于跨服务事件通信
  • MediatR 领域事件处理
  • IdentityServer4 安全认证中心,支持 OAuth2 和 OpenID Connect
  • Quartz 定时任务调度
  • EF Core ORM 工具,用于数据库操作
  • Docker 容器化部署,便于环境管理
  • AI 集成 SemanticKernel、MCP 服务、OCR 验证码识别等 AI 技术

项目启动与配置

    1. 配置 Redis 和数据库
  • 项目启动前需配置 Redis 和数据库连接字符串。
  • 数据库结构可通过脚本生成。
    1. Docker 配置
  • 项目支持 Docker 部署,Dockerfile 和配置文件已提供。
    1. JSON 配置
  • 项目使用 JSON 文件进行配置,包括缓存、短信、日志、AI 等模块。

AI 集成说明

AI 模块包括:

  • SemanticKernel:语义理解框架,支持自然语言处理。
  • OCR 验证码识别:通过 AI 技术识别验证码图像。
  • MCP 服务:用于 AI 服务通信或协议扩展。

总结

NetCoreKevin 是一个非常完整的微服务架构项目,结合了 DDD、CAP、Quartz、EFCore 等多种技术,并集成了 AI、OCR、短信、文件存储等实用功能。其模块化设计使得每个功能都可以独立引用,非常适合大型企业级应用的开发。

作者微信

SunSelectMan

NetCoreKevin-DDD-微服务-现代化Saas企业级-WebAPI-前后端分离架构的更多相关文章

  1. Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题

    现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...

  2. JNPF.java前后端分离框架,SpringBoot+SpringCloud开发微服务平台

    JNPF.java版本采用全新的前后端分离架构模式.前后端分离已成为互联网项目开发的业界标准开发方式,通过 nginx+tomcat 等方式有效的进行解耦合,并且前后端分离会为以后的大型分布式架构.弹 ...

  3. WebAPI 实现前后端分离

    随着Web技术的发展,现在各种框架,前端的,后端的,数不胜数.全栈工程师的压力越来越大. 现在的前端的框架,既可以做各种Web,又可以做各种APP,前端框架更新换代越来越快,越来越多. 传统的模式 前 ...

  4. WebAPI 实现前后端分离的示例

    转自:http://www.aspku.com/kaifa/net/298780.html 随着Web技术的发展,现在各种框架,前端的,后端的,数不胜数.全栈工程师的压力越来越大. 现在的前端的框架, ...

  5. 一套.NET Core +WebAPI+Vue前后端分离权限框架

    今天给大家推荐一个基于.Net Core开发的企业级的前后端分离权限框架. 项目简介 这是基于.NetCore开发的.构建的简单.跨平台.前后端分离的框架.此项目代码清晰.层级分明.有着完善的权限功能 ...

  6. SpringCloud SpringBoot 前后端分离企业级微服务架构源码赠送

    基于SpringBoot2.x.SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务敏捷开发系统架构.并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手 ...

  7. 微服务实践(七):从单体式架构迁移到微服务架构 - DockOne.io

    原文:微服务实践(七):从单体式架构迁移到微服务架构 - DockOne.io [编者的话]这是用微服务开发应用系列博客的第七篇也是最后一篇.第一篇中介绍了微服务架构模式,并且讨论了微服架构的优缺点: ...

  8. 微服务下前后端分离的统一认证授权服务,基于Spring Security OAuth2 + Spring Cloud Gateway实现单点登录

    1.  整体架构 在这种结构中,网关就是一个资源服务器,它负责统一授权(鉴权).路由转发.保护下游微服务. 后端微服务应用完全不用考虑权限问题,也不需要引入spring security依赖,就正常的 ...

  9. 【开源】分享一个前后端分离方案-前端angularjs+requirejs+dhtmlx 后端asp.net webapi

    一.前言 半年前左右折腾了一个前后端分离的架子,这几天才想起来翻出来分享给大家.关于前后端分离这个话题大家也谈了很久了,希望我这个实践能对大家有点点帮助,演示和源码都贴在后面. 二.技术架构 这两年a ...

  10. Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储+服务+抽象接口模式

    本文梯子 本文3.0版本文章 前言 零.完成图中的粉色部分 2019-08-30:关于仓储的相关话题 一.创建实体Model数据层 二.设计仓储接口与其实现类 三.设计服务接口与其实现类 四.创建 C ...

随机推荐

  1. GB28181协议转WEB无插件直播、回放流媒体服务LiveGBS低延时处理

    背景需求 对于摄像机直播,客户反馈的最多就是实现web直播.摆脱插件,可以自定义集成等问题, 对于熟悉LiveGBS已经完美的解决了这些问题.然而对于web播放也存在一些问题,通常我们web播放RTM ...

  2. OLED显示图片和符号+普中51单片机+1.3寸I2C4针

    1 实验现象 2 实验原理 OLED(Organic Light-Emitting Diode)有机发光二极管又称为有机激光显示,OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层,和玻璃基板 ...

  3. U3DFrameWorkDemo:三、脚本模块

    代码参考 代码文件参考下述详解的类图,工程参考第零章工程说明 概述 在现代项目的开发中,通常会使用一些脚本语言来提升开发效率.现在使用最普遍的脚本语言是Lua,它可以大大方便我们开发业务模块,且可以在 ...

  4. 如何在dom中使用element的Loading 加载

    element加载原文地址 在原文案例中,提供了表格容器和整页加载的案例,想要在div局部区域内怎么做呢? 使用div为案例: html中: <div v-loading="loadi ...

  5. vivo 浏览器福利体系架构演进之路

    作者:vivo 互联网服务器团队 - Zhang Xian.Zhang Baolin vivo 浏览器为应对多场景金币激励需求及旧架构流量.IO等痛点,升级福利中心架构.服务层面拆分流量与业务,打造金 ...

  6. 使用Tabs选项卡组件快速搭建鸿蒙APP框架

    大家好,我是潘Sir,持续分享IT技术,帮你少走弯路.<鸿蒙应用开发从入门到项目实战>系列文章持续更新中,陆续更新AI+编程.企业级项目实战等原创内容.欢迎关注! ArkUI提供了很多布局 ...

  7. 【Vue3】yarn install警告info There appears to be trouble with your network connection. Retrying... 问题

    在拉依赖的时候爆出info There appears to be trouble with your network connection. Retrying...的问题,这句话是说,网络不稳定,在 ...

  8. 生鲜超市源码+springboot3+vue3+JDK17(带用户协同过滤个性化推荐算法)

    今天教大家如何设计一个 生鲜超市源码 , 基于目前最新的技术:前端vue3,后端springboot3. 学习完这个项目,你将来找工作开发实际项目都会又很大帮助.我们出去找工作时,也可以用这个作为实际 ...

  9. VC雕虫小技集(二)

    VC雕虫小技集(二) 何志丹 1,如果你没有定义_UNICODE,则LPCTSTR代表 const char * ,因此直接使用就可以了. 如果定义了_UNICODE ,LPCTSTR代表 const ...

  10. PHP 程序员为什么总是瞧不起 PHP ?

    大家好,我是码农先森. 话说,不仅是 PHP 程序员看不起 PHP,其他的语言也同样很鄙视 PHP.为什么 PHP 会这么招人嫌呢?这次我们就好好的来分析一下,这件事情的油头. 其实,一开始也就是 P ...