# 技术栈 **分析日期:** 2026-02-28 ## 语言 **主要:** - **C# 12** - 项目使用最新的 C# 语言特性 - **.NET 10.0** - 目标框架版本 **运行时:** - **ASP.NET Core 10.0** - 用于构建 Web 应用程序和 API ## 运行时环境 **框架:** - **.NET 10.0** - 当前稳定版本 - **ASP.NET Core** - Web 框架 **包管理:** - **NuGet** - .NET 包管理器 - **Fengling.Platform.Infrastructure** - 1.0.0 版本,内部平台基础设施包 - **NetCorePal.Extensions** - 3.2.1 版本,一系列扩展库 ## 核心框架 **身份认证与授权:** - **OpenIddict** 7.2.0 - OAuth2/OpenID Connect 实现 - `OpenIddict.AspNetCore` - OpenIddict 的 ASP.NET Core 集成 - `OpenIddict.EntityFrameworkCore` - OpenIddict 的 EF Core 存储 - `OpenIddict.Quartz` - OpenIddict 的 Quartz.NET 集成(用于后台任务) **数据访问:** - **Entity Framework Core** 10.0.3 - ORM 框架 - `Microsoft.EntityFrameworkCore` - 核心 EF Core 包 - `Microsoft.EntityFrameworkCore.Design` - EF Core 设计时工具 - `Npgsql.EntityFrameworkCore.PostgreSQL` - PostgreSQL 提供程序(已注释) - `Microsoft.EntityFrameworkCore.InMemory` - 内存数据库(用于测试) **用户与角色管理:** - **ASP.NET Core Identity** 10.0.3 - 用户身份管理系统 **Web API:** - **Swashbuckle.AspNetCore** 10.1.4 - Swagger/OpenAPI 文档生成 **健康检查:** - **AspNetCore.HealthChecks.Npgsql** 9.0.0 - PostgreSQL 健康检查 - **Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore** 10.0.3 - EF Core 健康检查 ## 日志与观测 **日志:** - **Serilog** - 结构化日志框架 - `Serilog.AspNetCore` 10.0.0 - Serilog 的 ASP.NET Core 集成 - `Serilog.Sinks.Console` 6.1.1 - 控制台输出接收器 **分布式追踪:** - **OpenTelemetry** 1.15.0 - 可观测性标准 - `OpenTelemetry` - 核心包 - `OpenTelemetry.Extensions.Hosting` - Host 集成 - `OpenTelemetry.Instrumentation.AspNetCore` - ASP.NET Core instrumentation - `OpenTelemetry.Instrumentation.Http` - HTTP 客户端 instrumentation - `OpenTelemetry.Exporter.OpenTelemetryProtocol` - OTLP 导出器 ## 业务逻辑 **CQRS 与中介者:** - **MediatR** 12.5.0 - 中介者模式实现 **领域驱动设计支持:** - **NetCorePal.Extensions.Domain.Abstractions** - 领域抽象 - **NetCorePal.Extensions.Primitives** - 基础类型扩展 - **NetCorePal.Extensions.Repository.EntityFrameworkCore** - 仓储模式实现 - **NetCorePal.Extensions.Repository.EntityFrameworkCore.Snowflake** - 雪花算法 ID 生成 ## 配置 **环境配置:** - `appsettings.json` - 基础配置 - `appsettings.Development.json` - 开发环境配置 - `appsettings.Testing.json` - 测试环境配置 **关键配置项:** ```json { "ConnectionStrings": { "DefaultConnection": "Host=81.68.223.70;Port=15432;Database=fengling_auth;..." }, "Jwt": { "Issuer": "http://localhost:5132", "Audience": "fengling-api", "Secret": "..." }, "OpenIddict": { "Issuer": "http://localhost:5132", "Audience": "fengling-api" } } ``` **Docker 配置:** - 基础镜像:`mcr.microsoft.com/dotnet/aspnet:10.0` - 构建镜像:`mcr.microsoft.com/dotnet/sdk:10.0` - 暴露端口:80 ## 项目结构 **解决方案:** - `Fengling.AuthService.slnx` - 现代解决方案格式 **项目文件:** - `src/Fengling.AuthService.csproj` - 主项目文件 - `Directory.Packages.props` - 集中化包版本管理 --- *技术栈分析:2026-02-28*