fengling-platform/.planning/codebase/STRUCTURE.md
movingsam 1b8c937aa4
Some checks failed
Build and Push Docker / build (push) Failing after 23s
Publish NuGet Packages / build (push) Failing after 8s
feat: 添加 Gateway 路由实体到 Platform
- 新增 GatewayAggregate 领域实体 (GwTenant, GwTenantRoute, GwServiceInstance)
- 新增 IRouteStore, RouteStore, IInstanceStore, InstanceStore
- 新增 IRouteManager, RouteManager
- 合并 GatewayDbContext 到 PlatformDbContext
- 统一 Extensions.AddPlatformCore 注册所有服务
2026-02-28 23:53:00 +08:00

4.5 KiB
Raw Blame History

代码库结构

分析日期: 2026-02-28

目录布局

fengling-platform/
├── Fengling.Platform.Domain/
│   ├── AggregatesModel/
│   │   ├── UserAggregate/
│   │   │   ├── ApplicationUser.cs
│   │   │   ├── AuditLog.cs
│   │   │   └── AccessLog.cs
│   │   ├── RoleAggregate/
│   │   │   └── ApplicationRole.cs
│   │   └── TenantAggregate/
│   │       ├── Tenant.cs
│   │       └── TenantInfo.cs
│   ├── GlobalUsings.cs
│   └── Fengling.Platform.Domain.csproj
├── Fengling.Platform.Infrastructure/
│   ├── Configurations/
│   │   └── TenantConfiguration.cs
│   ├── Migrations/
│   │   ├── 20260221065049_Initial.cs
│   │   ├── 20260221065049_Initial.Designer.cs
│   │   ├── 20260221071055_OpenIddict.cs
│   │   ├── 20260221071055_OpenIddict.Designer.cs
│   │   └── PlatformDbContextModelSnapshot.cs
│   ├── Extensions.cs
│   ├── GlobalUsings.cs
│   ├── ITenantStore.cs
│   ├── TenantManager.cs
│   ├── TenantStore.cs
│   ├── PlatformDbContext.cs
│   ├── SeedData.cs
│   ├── DesignTimeApplicationDbContextFactory.cs
│   └── Fengling.Platform.Infrastructure.csproj
├── Directory.Packages.props
├── NuGet.Config
├── Dockerfile
└── AGENTS.md

目录用途

Fengling.Platform.Domain:

  • 目的: 包含核心业务实体的领域层
  • 包含: 聚合Tenant、User、Role、值对象
  • 关键文件: AggregatesModel/*/*.cs

Fengling.Platform.Infrastructure:

  • 目的: 数据访问和外部关注的基础设施层
  • 包含: DbContext、Stores、Managers、EF 配置、迁移
  • 关键文件: PlatformDbContext.csTenantStore.csTenantManager.cs

迁移:

  • 目的: EF Core 数据库迁移
  • 已生成: 是(基于时间戳)
  • 已提交: 是

关键文件位置

入口点:

  • Fengling.Platform.Infrastructure/Extensions.cs: DI 注册入口点
  • Fengling.Platform.Infrastructure/PlatformDbContext.cs: 数据库上下文

配置:

  • Directory.Packages.props: 集中包版本管理
  • Fengling.Platform.Infrastructure/Configurations/TenantConfiguration.cs: EF 租户配置

核心逻辑:

  • Fengling.Platform.Domain/AggregatesModel/TenantAggregate/Tenant.cs: 租户实体
  • Fengling.Platform.Domain/AggregatesModel/UserAggregate/ApplicationUser.cs: 用户实体
  • Fengling.Platform.Infrastructure/TenantStore.cs: 租户数据访问
  • Fengling.Platform.Infrastructure/TenantManager.cs: 租户业务逻辑

命名约定

文件:

  • 实体: {EntityName}.cs(如 Tenant.csApplicationUser.cs
  • 接口: I{InterfaceName}.cs(如 ITenantStore.csITenantManager.cs
  • 实现: {InterfaceName}.cs(如 TenantStore.cs

目录:

  • 聚合: *Aggregate/(如 TenantAggregate/
  • 配置: Configurations/
  • 迁移: Migrations/

类:

  • 实体: PascalCaseApplicationUserTenant
  • 枚举: PascalCaseTenantStatus
  • 值对象: PascalCase 记录(如 TenantInfo

新增代码位置

新聚合:

  • 领域实体: Fengling.Platform.Domain/AggregatesModel/{AggregateName}/
  • Store 接口: Fengling.Platform.Infrastructure/I{EntityName}Store.cs
  • Store 实现: Fengling.Platform.Infrastructure/{EntityName}Store.cs
  • Manager 接口: Fengling.Platform.Infrastructure/I{EntityName}Manager.cs
  • Manager 实现: Fengling.Platform.Infrastructure/{EntityName}Manager.cs
  • EF 配置: Fengling.Platform.Infrastructure/Configurations/

新实体属性:

  • 领域: 在 AggregatesModel/ 中的现有实体添加
  • 基础设施: 在 Configurations/ 中添加配置或在 PlatformDbContext.OnModelCreating() 中添加

新迁移:

  • 位置: Fengling.Platform.Infrastructure/Migrations/
  • 通过以下方式生成: 从 Infrastructure 目录运行 dotnet ef migrations add

特殊目录

迁移:

  • 目的: EF Core 数据库模式迁移
  • 已生成: 是(由 dotnet ef 自动生成)
  • 已提交: 是(纳入版本控制)

配置:

  • 目的: EF Core 实体配置
  • 包含: IEntityTypeConfiguration 实现

依赖关系

Domain → Infrastructure:

  • Domain 引用: Microsoft.AspNetCore.Identity仅接口
  • Domain 不引用 EF Core

Infrastructure → Domain:

  • Infrastructure 引用: Fengling.Platform.Domain
  • Infrastructure 引用: Microsoft.EntityFrameworkCore
  • Infrastructure 引用: Npgsql.EntityFrameworkCore.PostgreSQL

结构分析: 2026-02-28