基于NET8搭建DDD-微服務-現(xiàn)代化Saas企業(yè)級WebAPI前后端分離架構

NetCoreKevin

基于NET8搭建DDD-微服務-現(xiàn)代化Saas企業(yè)級WebAPI前后端分離架構:前端Vue3、IDS4單點登錄、多級緩存、自動任務、分布式、AI智能體、一庫多租戶、日志、授權和鑒權、CAP事件、SignalR、領域事件、MCP協(xié)議服務、IOC模塊化注入、Cors、Quartz自動任務、多短信、AI、AgentFramework、SemanticKernel集成、RAG檢索增強+Qdrant矢量數(shù)據(jù)庫、OCR識別、API多版本、單元測試、RabbitMQ
解耦設計都可以單獨引用 項目啟動時注意相關Redis、db鏈接配置、RabbitMQ
生成數(shù)據(jù)庫可見下面說明文件 命令生成即可

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

NetCoreKevin介紹

[圖片上傳失敗...(image-a31ed0-1763536251890)][圖片上傳失敗...(image-f664be-1763536251890)]
[圖片上傳失敗...(image-bcf4e-1763536251890)]
[圖片上傳失敗...(image-6f3fa7-1763536251890)]
[圖片上傳失敗...(image-6e1fb2-1763536251890)]
[圖片上傳失敗...(image-94490d-1763536251890)]

DDD思想

[圖片上傳失敗...(image-a0789e-1763536251890)]

??后臺管理系統(tǒng)(基于VUE3-AntDesign)

[圖片上傳失敗...(image-c89435-1763536251890)]
[圖片上傳失敗...(image-f571bb-1763536251890)]

??后臺自動任務調(diào)度系統(tǒng)(基于Quartz.NET)

[圖片上傳失敗...(image-6a3bc-1763536251890)]

思維導圖

[圖片上傳失敗...(image-e688e8-1763536251890)]

教學文檔地址 [教學文檔地址]

?? 項目概述

NetCoreKevin 是一個基于 DDD(Domain-Driven Design) 和 微服務架構 的 .NET 8 Web API 項目,其核心目標是提供一個可復用、模塊化、可擴展的架構平臺。它集成了以下關鍵功能:

身份認證與授權(基于 IdentityServer4)
多緩存支持(Redis、內(nèi)存緩存)
分布式系統(tǒng)支持(CAP 集成事件)
多租戶支持(一庫多租戶)
任務調(diào)度(Quartz)
日志系統(tǒng)(log4Net)
實時通信(SignalR)
AI 集成(SemanticKernel、OCR 驗證碼識別)
短信服務(阿里云、騰訊云)
文件存儲(阿里云、騰訊云)
自動化爬蟲(Selenium)
模塊化依賴注入(IOC)
多版本 API 兼容
單元測試支持
Docker 支持
RabbitMQ

[圖片上傳失敗...(image-21d4df-1763536251890)]

?? 項目結構詳解

以下是項目的核心模塊及其功能說明:

    1. App.AuthorizationService
  • 功能:授權服務,基于 IdentityServer4 搭建,支持單點登錄(SSO)。
  • 說明:用于統(tǒng)一管理用戶認證和授權,是整個系統(tǒng)的安全中心。
    1. Kevin.Common
  • 功能:工具類庫,包含常用幫助類、擴展方法、文件流操作、圖片處理等。
  • 說明:提供基礎的通用功能,避免重復開發(fā)。
    1. 文檔
  • 功能:基礎使用文檔。
  • 說明:包含項目啟動說明、配置步驟、數(shù)據(jù)庫生成方法等。
    1. InitData
  • 功能:數(shù)據(jù)初始化的 SQL 腳本。
  • 說明:用于初始化數(shù)據(jù)庫結構和測試數(shù)據(jù)。
    1. Share
  • 功能:存放 DTO(數(shù)據(jù)傳輸對象)、結構類型等共享模型。
  • 說明:用于跨模塊的數(shù)據(jù)交換。
    1. App.TaskQuartz
  • 功能:基于 Quartz 的自動任務調(diào)度系統(tǒng)。
  • 說明:用于定時執(zhí)行后臺任務,如數(shù)據(jù)同步、清理、推送等。
    1. App.RepositorieRps
  • 功能:數(shù)據(jù)庫倉儲層。
  • 說明:提供對數(shù)據(jù)庫的讀寫操作,通常使用 EFCore 實現(xiàn)。
    1. App.Application
  • 功能:應用服務層。
  • 說明:處理業(yè)務邏輯,調(diào)用倉儲層或領域?qū)?,是業(yè)務操作的中轉站。
    1. Kevin.Web
  • 功能:Web 相關工具層,包含過濾器、中間件、全局類、服務初始化等。
  • 說明:提供 Web 層的基礎配置和擴展。
    1. App.WebApi
  • 功能:API 層。
  • 說明:對外暴露的 RESTful API 接口,接收請求并調(diào)用應用服務。
    1. kevin.CrawlingService
  • 功能:基于 Selenium 的爬蟲服務或自動化測試。
  • 說明:用于模擬瀏覽器行為進行數(shù)據(jù)采集或測試。
    1. Kevin.EntityFrameworkCore
  • 功能:基于 EFCore 的工作單元(UnitOfWork)實現(xiàn)。
  • 說明:提供統(tǒng)一的數(shù)據(jù)庫事務管理。
    1. kevin.Domain
  • 功能:領域服務層。
  • 說明:實現(xiàn)核心業(yè)務邏輯,是 DDD 的核心部分。
    1. kevin.Cache
  • 功能:基于 IDistributedCache 的緩存服務,支持多種緩存方式。
  • 說明:提供緩存策略和操作接口。
    1. kevin.Cap
  • 功能:基于 CAP 的分布式事件總線。
  • 說明:用于微服務之間的消息通信和事件處理。
    1. kevin.Consul
  • 功能:微服務注冊與發(fā)現(xiàn),使用 Consul 實現(xiàn)。
  • 說明:支持服務的動態(tài)發(fā)現(xiàn)和負載均衡。
    1. Kevin.Cors
  • 功能:跨域配置模塊。
  • 說明:提供自定義的跨域策略支持。
    1. kevin.DistributedLock
  • 功能:分布式鎖。
  • 說明:用于在分布式環(huán)境中控制資源訪問。
    1. kevin.Domain.EventBus
  • 功能:基于 MediatR 的領域事件實現(xiàn)。
  • 說明:用于處理業(yè)務邏輯中的事件發(fā)布與訂閱。
    1. kevin.FileStorage
  • 功能:文件存儲服務,支持阿里云、騰訊云。
  • 說明:提供文件上傳、下載、管理等功能。
    1. Kevin.HttpApiClients
  • 功能:基于 IHttpClientFactory 的 HTTP 客戶端。
  • 說明:支持 HTTP/2.0,用于調(diào)用外部 API。
    1. kevin.Ioc
  • 功能:IOC 容器模塊。
  • 說明:提供模塊化的依賴注入配置。
    1. Kevin.log4Net
  • 功能:日志系統(tǒng),基于 log4Net。
  • 說明:用于記錄系統(tǒng)運行日志,便于調(diào)試和分析。
    1. kevin.Permission
  • 功能:權限服務,可根據(jù) API 配置權限。
  • 說明:支持基于 API 的細粒度權限控制。
    1. Kevin.SignalR
  • 功能:SignalR 實時通信服務。
  • 說明:用于實時消息推送、在線狀態(tài)同步等。
    1. Kevin.SMS
  • 功能:短信服務,支持阿里云、騰訊云。
  • 說明:用于發(fā)送驗證碼、通知短信等。
    1. Kevin.AI 系列
  • 功能:AI 集成模塊,包括 SemanticKernel、MCP 服務、OCR 驗證碼識別等。
  • 說明:集成 AI 功能,如語義理解、驗證碼識別等。

?? 技術亮點

技術點 說明

  • .NET 8 最新的 .NET 框架,性能更優(yōu),支持更多新特性
  • DDD 領域驅(qū)動設計,將復雜業(yè)務邏輯抽象為模塊化結構
  • 微服務架構 通過 Consul、CAP、Quartz 等實現(xiàn)服務解耦和分布式管理
  • CAP 消息總線,用于跨服務事件通信
  • MediatR 領域事件處理
  • IdentityServer4 安全認證中心,支持 OAuth2 和 OpenID Connect
  • Quartz 定時任務調(diào)度
  • EF Core ORM 工具,用于數(shù)據(jù)庫操作
  • Docker 容器化部署,便于環(huán)境管理
  • AI 集成 SemanticKernel、MCP 服務、OCR 驗證碼識別等 AI 技術

?? 項目啟動與配置

    1. 配置 Redis 和數(shù)據(jù)庫
  • 項目啟動前需配置 Redis 和數(shù)據(jù)庫連接字符串。
  • 數(shù)據(jù)庫結構可通過腳本生成。
    1. Docker 配置
  • 項目支持 Docker 部署,Dockerfile 和配置文件已提供。
    1. JSON 配置
  • 項目使用 JSON 文件進行配置,包括緩存、短信、日志、AI 等模塊。

?? AI 集成說明

AI 模塊包括:

  • SemanticKernel:語義理解框架,支持自然語言處理。
  • OCR 驗證碼識別:通過 AI 技術識別驗證碼圖像。
  • MCP 服務:用于 AI 服務通信或協(xié)議擴展。

?? 總結

NetCoreKevin 是一個非常完整的微服務架構項目,結合了 DDD、CAP、Quartz、EFCore 等多種技術,并集成了 AI、OCR、短信、文件存儲等實用功能。其模塊化設計使得每個功能都可以獨立引用,非常適合大型企業(yè)級應用的開發(fā)。

基礎API

[圖片上傳失敗...(image-646521-1763536251890)]

作者微信

SunSelectMan

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容