Files
Hua.Todo/.trae/rules/项目/01-项目架构.md
T
ShaoHua cf96c56bed chore: 完成v1.2版本迭代与代码清理
本次提交完成了多项清理与规范工作:
1. 移除默认管理员硬编码配置与云同步相关代码
2. 简化前端与MAUI端的配置,关闭静态资源托管以外的冗余功能
3. 清理.gitignore与协调目录,移除临时文件与冗余规则
4. 统一项目命名规范,修正包名与版本号
5. 重构后端数据模型,移除ABP审计字段与云同步相关逻辑
6. 简化WebView配置与系统栏样式,移除不必要的平台检测代码
7. 更新文档与规则文件,完善项目规范与版本记录
2026-06-15 22:06:58 +08:00

5.1 KiB
Raw Blame History

项目架构(Hua.Todo 专属)

适用范围:本规则属于 项目规则(仅 Hua.Todo 项目生效)。

描述当前仓库的项目划分、依赖方向、运行模式与跨平台策略,供智能体在做改动时快速对齐架构边界。 完整设计参见 docs/manual/01-技术设计文档.mddocs/manual/03-技术栈与模块.md

一、项目清单(src/

项目 类型 职责 平台
Hua.Todo.Core 类库 领域实体、仓储接口(TaskEntityUserEntitySecurityPolicyEntityAuditLogEntityITaskRepository 等) netstandard / net
Hua.Todo.Application 类库(共享层) EF Core TodoDbContextTaskService/TaskRepository、动态 APIDynamicApi/)、云同步(CloudSync/)、迁移 net
Hua.Todo.Host ASP.NET 服务端 独立服务端宿主,承载本地动态 API + 云同步端点 + Admin 管理后台静态资源 Windows/Linux 等服务器
Hua.Todo.Maui MAUI 客户端 Windows / macOS / iOS / Android 入口;内嵌 WebServer + WebView 承载 Vue 前端 多端
Hua.Todo.Avalonia Avalonia 客户端 Linux / Windows 桌面入口;内嵌 WebServer + WebView.Avalonia 承载 Vue 前端 桌面(含 Linux
Hua.Todo.Web Vite + Vue 3 前端 同一份前端构建产物,被多个宿主以静态资源形式承载 浏览器/WebView

二、依赖方向(必须保持单向)

Hua.Todo.Core
   ↑
Hua.Todo.Application
   ↑
   ├── Hua.Todo.Host       (服务端注册 AddCloudSyncServer + 动态 API)
   ├── Hua.Todo.Maui       (客户端,仅注册 AddApplicationServices)
   └── Hua.Todo.Avalonia   (客户端,仅注册 AddApplicationServices)

Hua.Todo.Web (无 .NET 依赖;通过 HTTP/同源调用上述任一宿主)

三、两种运行模式

模式 A:嵌入式(MAUI / Avalonia + WebView

  • 启动内嵌 Kestrel WebServer(默认端口 5057),托管 Vue 前端的静态产物(wwwroot/+ 本地 /api/*
  • WebView 加载 HostUrl(生产)或 ForEndUrl(开发,例如 Vite dev server
  • 注入:window.__API_BASE_URL__ = "${HostUrl}/api"window.mauiInterop
  • 默认 SQLite 路径:LocalApplicationData/Hua.Todo/Hua.Todo.db(避免安装目录无写权限)
  • 不暴露云同步端点;登录/同步走外部 Host

模式 B:独立服务端(Hua.Todo.Host

  • 独立部署的 ASP.NET 应用,端口 :5173Vite proxy 目标)
  • 同时注册 AddApplicationServices() + AddCloudSyncServer(),对外提供:
    • /api/*:本地任务 API(动态 API
    • /auth/*/tasks/*/sync/security/policy/cloud-sync/probe:云同步端点
    • /admin/*:管理后台前端静态资源
  • 数据库:src/Hua.Todo.Host/Hua.Todo.db(开发/测试用)

四、跨平台原则

  • 业务逻辑统一在 Application 层,宿主项目只做 DI 装配与平台桥接
  • 平台差异通过接口 + 平台目录实现(例:IGlobalHotKeyService 在 MAUI 与 Avalonia 各有自己的 Platforms/ 子目录实现)
  • 前端只有一份Vue 项目通过不同的 .env.* 文件区分模式(.env.development / .env.maui / .env.production

五、关键扩展点

扩展点 位置
DI 注册总入口 Hua.Todo.Application/ServiceCollectionExtensions.cs
云同步 DI Hua.Todo.Application/CloudSync/CloudSyncServiceCollectionExtensions.cs
云同步端点 Hua.Todo.Application/CloudSync/CloudSyncEndpointExtensions.cs
动态 API 中间件 Hua.Todo.Application/DynamicApi/DynamicApiMiddleware.cs
嵌入式 WebServer Hua.Todo.{Maui,Avalonia}/Services/EmbeddedWebServerService.cs
全局快捷键平台实现 Hua.Todo.{Maui,Avalonia}/Services/Platforms/*GlobalHotKeyService.cs

六、版本统一策略