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介紹
DDD思想
🌐後台管理系統(基於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
🧩 項目結構詳解
以下是項目的核心模塊及其功能説明:
- App.AuthorizationService
- 功能:授權服務,基於 IdentityServer4 搭建,支持單點登錄(SSO)。
- 説明:用於統一管理用户認證和授權,是整個系統的安全中心。
- Kevin.Common
- 功能:工具類庫,包含常用幫助類、擴展方法、文件流操作、圖片處理等。
- 説明:提供基礎的通用功能,避免重複開發。
- 文檔
- 功能:基礎使用文檔。
- 説明:包含項目啓動説明、配置步驟、數據庫生成方法等。
- InitData
- 功能:數據初始化的 SQL 腳本。
- 説明:用於初始化數據庫結構和測試數據。
- Share
- 功能:存放 DTO(數據傳輸對象)、結構類型等共享模型。
- 説明:用於跨模塊的數據交換。
- App.TaskQuartz
- 功能:基於 Quartz 的自動任務調度系統。
- 説明:用於定時執行後台任務,如數據同步、清理、推送等。
- App.RepositorieRps
- 功能:數據庫倉儲層。
- 説明:提供對數據庫的讀寫操作,通常使用 EFCore 實現。
- App.Application
- 功能:應用服務層。
- 説明:處理業務邏輯,調用倉儲層或領域層,是業務操作的中轉站。
- Kevin.Web
- 功能:Web 相關工具層,包含過濾器、中間件、全局類、服務初始化等。
- 説明:提供 Web 層的基礎配置和擴展。
- App.WebApi
- 功能:API 層。
- 説明:對外暴露的 RESTful API 接口,接收請求並調用應用服務。
- kevin.CrawlingService
- 功能:基於 Selenium 的爬蟲服務或自動化測試。
- 説明:用於模擬瀏覽器行為進行數據採集或測試。
- Kevin.EntityFrameworkCore
- 功能:基於 EFCore 的工作單元(UnitOfWork)實現。
- 説明:提供統一的數據庫事務管理。
- kevin.Domain
- 功能:領域服務層。
- 説明:實現核心業務邏輯,是 DDD 的核心部分。
- kevin.Cache
- 功能:基於 IDistributedCache 的緩存服務,支持多種緩存方式。
- 説明:提供緩存策略和操作接口。
- kevin.Cap
- 功能:基於 CAP 的分佈式事件總線。
- 説明:用於微服務之間的消息通信和事件處理。
- kevin.Consul
- 功能:微服務註冊與發現,使用 Consul 實現。
- 説明:支持服務的動態發現和負載均衡。
- Kevin.Cors
- 功能:跨域配置模塊。
- 説明:提供自定義的跨域策略支持。
- kevin.DistributedLock
- 功能:分佈式鎖。
- 説明:用於在分佈式環境中控制資源訪問。
- kevin.Domain.EventBus
- 功能:基於 MediatR 的領域事件實現。
- 説明:用於處理業務邏輯中的事件發佈與訂閲。
- kevin.FileStorage
- 功能:文件存儲服務,支持阿里雲、騰訊雲。
- 説明:提供文件上傳、下載、管理等功能。
- Kevin.HttpApiClients
- 功能:基於 IHttpClientFactory 的 HTTP 客户端。
- 説明:支持 HTTP/2.0,用於調用外部 API。
- kevin.Ioc
- 功能:IOC 容器模塊。
- 説明:提供模塊化的依賴注入配置。
- Kevin.log4Net
- 功能:日誌系統,基於 log4Net。
- 説明:用於記錄系統運行日誌,便於調試和分析。
- kevin.Permission
- 功能:權限服務,可根據 API 配置權限。
- 説明:支持基於 API 的細粒度權限控制。
- Kevin.SignalR
- 功能:SignalR 實時通信服務。
- 説明:用於實時消息推送、在線狀態同步等。
- Kevin.SMS
- 功能:短信服務,支持阿里雲、騰訊雲。
- 説明:用於發送驗證碼、通知短信等。
- 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 技術
📦 項目啓動與配置
- 配置 Redis 和數據庫
- 項目啓動前需配置 Redis 和數據庫連接字符串。
- 數據庫結構可通過腳本生成。
- Docker 配置
- 項目支持 Docker 部署,Dockerfile 和配置文件已提供。
- JSON 配置
- 項目使用 JSON 文件進行配置,包括緩存、短信、日誌、AI 等模塊。
🧠 AI 集成説明
AI 模塊包括:
- SemanticKernel:語義理解框架,支持自然語言處理。
- OCR 驗證碼識別:通過 AI 技術識別驗證碼圖像。
- MCP 服務:用於 AI 服務通信或協議擴展。
📝 總結
NetCoreKevin 是一個非常完整的微服務架構項目,結合了 DDD、CAP、Quartz、EFCore 等多種技術,並集成了 AI、OCR、短信、文件存儲等實用功能。其模塊化設計使得每個功能都可以獨立引用,非常適合大型企業級應用的開發。
基礎API