技术栈与运行依赖
本页描述仓库当前使用的技术,不承诺所有包始终保持同一大版本。精确版本以 src/Directory.Build.props、各 .csproj、docs-site/package.json 和 Compose 文件为准。
应用与框架
| 能力 | 当前主线 | 在项目中的作用 |
|---|---|---|
| 运行时 | .NET 10 / ASP.NET Core | Web Host、后台宿主、SignalR、Health Checks |
| ORM | FreeSql 3.5.x | CodeFirst、仓储、多数据源与 AOP |
| DI | Autofac | 模块程序集扫描、生命周期与拦截 |
| 认证授权 | ASP.NET Core Identity + OpenIddict 7.x | 用户/角色存储、OAuth2/OIDC、Token 验证 |
| 消息 | CAP 10.x + RabbitMQ | 集成事件和后台消息处理 |
| 调度 | FreeScheduler 2.x | Job 调度与管理 UI |
| 缓存 | FreeRedis | 缓存、分布式状态和 SignalR 连接映射 |
| 日志 | Serilog 10.x | Console、File、MariaDB 与 OTLP Logs |
| 可观测性 | OpenTelemetry 1.17.x | ASP.NET Core、HttpClient、Runtime、FreeSql Trace/Metric |
| 搜索 | MeiliSearch .NET client | CmsKit 搜索索引与查询 |
| 实时通信 | SignalR | 通知与在线连接 |
| 对象存储 | 本地、七牛、Cloudflare R2 等 | Identity.Infrastructure 文件管理 |
默认 Compose 基础设施
build/compose/freekit_pro_modules/docker-compose.yml 当前固定:
| 服务 | 镜像 |
|---|---|
| MySQL | mysql:8.4 |
| Redis | redis:7.4-alpine |
| RabbitMQ | rabbitmq:3.13-management |
| MeiliSearch | getmeili/meilisearch:v1.13 |
可观测性栈位于 build/observability/,由 OpenTelemetry Collector、OpenObserve、MySQL/Redis exporter 和 Pyroscope 组成。
架构选择
- 模块化单体控制部署复杂度,同时用程序集和 DDD 轻量分层保留边界。
- FreeSql 仓储优先,Application/Controller 不新增裸
IFreeSql依赖。 - 核心与 HttpApi 分离,后台 Host 只加载业务核心。
- OpenTelemetry 标准出口让存储后端可替换;仓库当前提供 OpenObserve 部署方案。
数据库支持边界
开发配置保留 MySQL、SQL Server、PostgreSQL、Oracle 和 SQLite 连接示例,但生产 Compose、部分 SQL、健康检查和运维脚本以 MySQL 为主。切换数据库前必须验证目标模块的 Provider、DDL、索引和测试,而不能只修改 DefaultDB。
前端与文档
| 项目 | 技术/位置 |
|---|---|
| 管理前端 | 工作区上层 ../kit-pro-frontend |
| 文档站 | Docusaurus 3、React 19、TypeScript、pnpm |