- 描述整体基于ASP.NET Core的分层架构与领域驱动设计 - 详细说明表现层、视图模型层、配置层和基础设施层职责 - 介绍用户认证、OAuth2授权码与令牌颁发的数据流过程 - 抽象说明用户与租户、声明和授权实体设计 - 说明应用启动入口和关键HTTP端点 - 列出错误处理策略和跨领域关注点(日志、追踪、安全) docs(concerns): 新增代码库问题与关注点分析文档 - 汇总并详述安全漏洞如配置文件泄露、Cookie策略不当 - 记录技术债务包括缺乏单元测试、依赖注入不统一等 - 罗列性能问题和具体代码缺陷 - 给出优先级明确的修复建议和改进措施 - 涵盖架构设计问题和依赖兼容性风险 - 说明测试覆盖缺口及高风险未测试区域 docs(conventions): 新增编码约定与规范文档 - 明确文件、类、方法、变量等命名规则 - 规范代码风格包括命名空间、主构造函数使用 - 制定日志记录、审计日志和依赖注入的标准 - 规定控制器路由、异步模式和错误处理方式 - 说明DTO命名及特性使用规范 - 描述配置管理、注释规范及常用代码注释样例 docs(integrations): 添加外部系统集成文档 - 介绍数据库连接和PostgreSQL客户端库版本 - 描述身份认证与授权服务及默认用户信息 - 说明可观测性方案及OpenTelemetry组件 - 涵盖容器化部署相关Docker与Kubernetes配置 - 说明CI/CD流水线触发条件与构建流程 - 列出环境变量需求和主要API端点 - 强调生产环境密钥管理与安全存储机制
118 lines
3.4 KiB
Markdown
118 lines
3.4 KiB
Markdown
# 技术栈
|
||
|
||
**分析日期:** 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*
|