# 工作进度-27 > 规则原文:每次对话结尾都要生成工作进度 ## 本轮任务 回答用户提问:**本项目采用的架构是什么**(纯咨询,无代码改动)。 ## 本轮完成内容 1. 梳理并确认项目整体架构: - 总体:前后端分离 + 单体后端四层分层(DDD + CQRS),IIS 单站点同源部署(`wwwroot` 静态资源 + `MapFallbackToFile("index.html")`)。 - 后端 .NET 8 四层:`F9WebAiTest.Domain` / `.Application` / `.Infrastructure` / `.Api`,依赖方向 `Api → Application → Domain ← Infrastructure`。 - CQRS + MediatR 12.4.1(`Application/CQRS/SYS/**/Commands|Queries`,45 个文件),读写仓储分离。 - 工作单元 `IUnitOfWork_F9`、雪花 ID 单例、FreeSql 软删除全局过滤器。 - 领域事件 `BusinessChangedEvent` → MediatR Handler → SignalR `/hubs/notification` 推送。 - RBAC:用户–角色–权限–菜单,JWT Bearer;SignalR 与报表下载走 query string `access_token`。 - `LongToStringJsonConverter` 解决雪花 ID 精度丢失。 - 前端 `web/`:Vue 3 + Vite + Element Plus + Pinia + Vue Router + axios,NSwag 生成 `src/api/client.ts`,`v-permission` 按钮级权限,动态路由。 - 数据层:SQLite + FreeSql(CodeFirst + `DbSeeder` 种子),枚举映射 int 兼容旧库。 - 遗留/辅助目录:`client/` + `server/`(早期「社区生活圈」Express + Vue3 原型)、`TempleRun/`(旧 WinForms 参考)、`tools/`、`deploy-iis.ps1`、`update-iis.ps1`。 ## 改动文件 无(本轮为架构说明,未修改任何代码)。 ## 发现的问题(待修正) - 根目录 `README.md` 中「数据库:SQLite(EF Core)」的表述已过时,实际 ORM 为 **FreeSql**;README 也缺少 CQRS/MediatR、SignalR、DDD 分层等当前架构描述。 ## 验证情况 - 已通过目录浏览、README、`F9WebAiTest.Api.csproj`、`Program.cs`、`Infrastructure/DependencyInjection.cs`、`web/package.json`、`server/package.json`、`client/package.json` 交叉核对确认。 - 未编译、未运行(无代码改动)。 ## 待办 1. (可选)更新 `README.md`:EF Core → FreeSql,补充 CQRS/MediatR、SignalR 实时推送、IIS 同源部署说明。 2. 继续按既有计划推进业务模块迁移。