DesktopMemo 项目架构文档索引
文档概述
本目录包含 DesktopMemo 项目的完整架构文档,帮助开发者快速了解系统设计、技术选型和数据流机制。
📚 文档列表
01_架构图.md
核心内容:
- 整体系统架构 (三层架构图)
- 项目结构说明
- 依赖注入配置
- 数据存储架构
- 关键设计模式
- 核心模块概览
- 外部依赖说明
- 容易出问题的模块分析
适用场景:
- 新人入职快速了解项目
- 架构评审和讨论
- 技术债务分析
关键图表:
- 三层架构总览图
- 数据存储架构图
- 依赖关系图
02_模块划分.md
核心内容:
- 表示层模块详解 (Views, ViewModels, Localization)
- 领域层模块详解 (Models, Contracts, Helpers)
- 基础设施层模块详解 (Repositories, Services)
- 模块间通信机制
- 模块依赖关系
- 模块职责矩阵
- 模块扩展指南
- 模块维护建议
适用场景:
- 添加新功能前的模块定位
- 代码审查和重构
- 模块职责划分讨论
关键图表:
- 模块总览图
- 模块通信序列图
- 模块依赖图
03_技术栈和依赖.md
核心内容:
- .NET 9.0 + WPF 技术栈
- MVVM 架构详解
- 第三方库依赖清单 (CommunityToolkit.Mvvm, Dapper, Markdig 等)
- 核心依赖详解
- 数据存储技术 (SQLite, Markdown, JSON)
- Windows API 调用
- 开发工具和环境
- 技术选型对比
适用场景:
- 依赖升级决策
- 技术选型评估
- 环境搭建指南
关键信息:
- NuGet 包版本清单
- 技术选型对比表
- 替代方案分析
04_数据流和通信.md
核心内容:
- 数据流总览
- 核心业务流程 (应用启动、创建备忘录、编辑、搜索、设置保存)
- 数据存储策略 (双存储设计)
- 数据一致性保证
- 并发控制
- 异步数据流
- 事件驱动机制
- 关键设计模式 (Repository, 单向数据流, 防抖)
- 异常处理
- 性能优化
- 数据流安全性
适用场景:
- 理解业务流程
- 排查数据不一致问题
- 性能优化
- 安全审计
关键图表:
- 数据流总览图
- 应用启动序列图
- 创建/编辑备忘录序列图
- 搜索流程图
- 异步线程切换图
🗺️ 快速导航
我是新人,从哪里开始?
- 先看: 01_架构图.md - 了解整体架构
- 再看: 02_模块划分.md - 了解各层职责
- 最后: 04_数据流和通信.md - 了解数据如何流动
我要添加新功能
- 查看: 02_模块划分.md 第 8 节 - 模块扩展指南
- 参考: 04_数据流和通信.md 第 2 节 - 核心数据流场景
我要升级依赖或选型新技术
- 查看: 03_技术栈和依赖.md 第 3 节 - 核心依赖详解
- 对比: 03_技术栈和依赖.md 第 10 节 - 技术选型对比
我要排查 Bug
- 定位模块: 02_模块划分.md
- 追踪数据流: 04_数据流和通信.md
- 检查关键模块: 01_架构图.md 第 10 节 - 容易出问题的模块
我要做性能优化
- 查看: 04_数据流和通信.md 第 8 节 - 性能优化
- 参考: 02_模块划分.md 第 9 节 - 性能敏感模块
📊 架构一览
三层架构
┌─────────────────────────────────────────┐
│ 表示层 (DesktopMemo.App) │
│ - WPF Views │
│ - ViewModels (MVVM) │
│ - Localization │
├─────────────────────────────────────────┤
│ 领域层 (DesktopMemo.Core) │
│ - Domain Models │
│ - Contracts/Interfaces │
│ - Helpers │
├─────────────────────────────────────────┤
│ 基础设施层 (DesktopMemo.Infrastructure)│
│ - Repositories (数据访问) │
│ - Services (业务服务) │
└─────────────────────────────────────────┘
↓ ↓
┌──────────┐ ┌──────────┐
│ SQLite DB│ │ Markdown │
│ 索引 │ │ 文件 │
└──────────┘ └──────────┘核心技术栈
- 开发平台: .NET 9.0 + C# 13.0
- UI 框架: WPF (Windows Presentation Foundation)
- 架构模式: MVVM (CommunityToolkit.Mvvm)
- 数据存储: SQLite + Markdown + JSON
- 依赖注入: Microsoft.Extensions.DependencyInjection
- ORM: Dapper
- Markdown: Markdig
核心模块
| 模块 | 职责 | 关键类 |
|---|---|---|
| 备忘录管理 | CRUD 操作 | MainViewModel, SqliteIndexedMemoRepository |
| TodoList | 任务管理 | TodoListViewModel, SqliteTodoRepository |
| 搜索 | 全文搜索 | MemoSearchService |
| 设置 | 配置管理 | JsonSettingsService |
| 日志 | 日志记录 | FileLogService, LogViewModel |
| 托盘 | 系统托盘 | TrayService |
| 数据迁移 | 版本升级 | *MigrationService |
🔧 维护指南
文档更新规则
当以下情况发生时,请更新相应文档:
新增模块/功能
- 更新 01_架构图.md - 核心模块表
- 更新 02_模块划分.md - 模块详解
升级依赖或更换技术
- 更新 03_技术栈和依赖.md - NuGet 包清单
修改业务流程
- 更新 04_数据流和通信.md - 相应流程图
架构调整
- 更新 01_架构图.md - 架构图
- 更新 02_模块划分.md - 模块依赖关系
📝 相关文档
🤝 贡献
如果您发现文档有误或需要补充,请:
- 提交 Issue 说明问题
- 或直接提交 Pull Request 修改文档
最后更新: 2025-11-15