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