Skip to content

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, 单向数据流, 防抖)
  • 异常处理
  • 性能优化
  • 数据流安全性

适用场景:

  • 理解业务流程
  • 排查数据不一致问题
  • 性能优化
  • 安全审计

关键图表:

  • 数据流总览图
  • 应用启动序列图
  • 创建/编辑备忘录序列图
  • 搜索流程图
  • 异步线程切换图

🗺️ 快速导航

我是新人,从哪里开始?

  1. 先看: 01_架构图.md - 了解整体架构
  2. 再看: 02_模块划分.md - 了解各层职责
  3. 最后: 04_数据流和通信.md - 了解数据如何流动

我要添加新功能

  1. 查看: 02_模块划分.md 第 8 节 - 模块扩展指南
  2. 参考: 04_数据流和通信.md 第 2 节 - 核心数据流场景

我要升级依赖或选型新技术

  1. 查看: 03_技术栈和依赖.md 第 3 节 - 核心依赖详解
  2. 对比: 03_技术栈和依赖.md 第 10 节 - 技术选型对比

我要排查 Bug

  1. 定位模块: 02_模块划分.md
  2. 追踪数据流: 04_数据流和通信.md
  3. 检查关键模块: 01_架构图.md 第 10 节 - 容易出问题的模块

我要做性能优化

  1. 查看: 04_数据流和通信.md 第 8 节 - 性能优化
  2. 参考: 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

🔧 维护指南

文档更新规则

当以下情况发生时,请更新相应文档:

  1. 新增模块/功能

  2. 升级依赖或更换技术

  3. 修改业务流程

  4. 架构调整


📝 相关文档


🤝 贡献

如果您发现文档有误或需要补充,请:

  1. 提交 Issue 说明问题
  2. 或直接提交 Pull Request 修改文档

最后更新: 2025-11-15

Released under the MIT License.