Skip to the content.

MS.Microservice

MS.Microservice 是一个面向 .NET 10 的微服务基础框架仓库,当前主线包含 Web Host、DDD Domain/Core、Infrastructure、Swagger、EventBus、Logging 和 AI Provider 模块。

首页文档只描述当前可运行状态和接入方式;DDD、微服务、消息队列、Kubernetes 等长期资料保留在 docs/

版本矩阵

当前值
TargetFramework net10.0
SDK 10.0.x,见 global.json
主解决方案 MS.Microservice.slnx
Web Host src/MS.Microservice.Web
Docker Runtime mcr.microsoft.com/dotnet/aspnet:10.0

模块

模块 说明
src/MS.Microservice.Core 通用领域接口、函数式类型、规范模式、缓存、序列化、安全工具。
src/MS.Microservice.Domain 当前示例业务领域模型、聚合、领域服务和领域事件暂存。
src/MS.Microservice.Infrastructure EF Core、SqlSugar、事件溯源、健康检查、OpenTelemetry 等基础设施实现。
src/MS.Microservice.Web ASP.NET Core Host、API 入口、认证授权、Swagger、Wolverine 接入。
MS.Microservice.Logging Provider-agnostic request logging,支持 NLog 和 Serilog。
MS.Microservice.Swagger Swagger 注册与 UI 封装。
MS.Microservice.EventBus 事件总线抽象与内存订阅管理。
MS.Microservice.AI Provider-neutral AI Gateway,支持 OpenAI、DeepSeek、Qwen。

本地开发

dotnet restore
dotnet build
dotnet test

运行 Web Host:

dotnet run --project src/MS.Microservice.Web/MS.Microservice.Web.csproj

默认配置位于:

关键配置启动期校验:

Docker

docker build -t ms-microservice-web .
docker run --rm -p 8080:8080 ms-microservice-web

容器默认监听 http://+:8080。Dockerfile 使用 .NET 10 SDK/Runtime,并按当前仓库结构 restore/publish src/MS.Microservice.Web

Logging

Web Host 已接入新 Logging 模块:

builder.ConfigureMsNLog();
builder.Services.AddMsRequestLogging();
app.UseMsRequestLogging();

请求日志上下文由 MS.Microservice.Logging.AspNetCore 写入,NLog/Serilog Provider 只负责渲染或结构化 enrich。旧 Web 内部 NLog 工具保留用于兼容测试,不再作为默认启动路径。

Swagger

Swagger 通过 MS.Microservice.Swagger 接入:

builder.Services.AddPlatformSwagger(options =>
{
    configuration.GetSection(SwaggerOptions.SectionName).Bind(options);
});

app.UsePlatformSwagger();

配置节:SwaggerOptions

EventBus 与领域事件

实体只负责暂存内存态 DomainEvents。完整生产链路仍需 Outbox/Inbox、事件版本、trace/correlationId、失败重试和死信记录。

当前已修正:

长期事件路线见 docs/framework-optimization-roadmap.md

AI

MS.Microservice.AI 当前已具备:

仍计划补齐:更细粒度限流策略、熔断策略、prompt/response 脱敏日志、Secret Provider、payload 限制和成本统计。路线见 docs/framework-optimization-roadmap.md

CI

GitHub Actions 工作流位于 .github/workflows/dotnet-ci.yml,执行:

dotnet restore
dotnet build --no-restore -c Release
dotnet test --no-build -c Release
dotnet publish src/MS.Microservice.Web/MS.Microservice.Web.csproj --no-build -c Release
dotnet list package --vulnerable --include-transitive

架构边界

架构测试位于 test/MS.Microservice.Core.Tests/Architecture,当前守护:

文档入口