Files
luban_ui_internal/design/项目架构设计.md
2025-09-24 01:22:21 +08:00

91 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目架构设计文档
## 一、总体说明
本项目采用 **Avalonia** 作为跨平台桌面UI框架目标是让非程序员也能轻松使用Luban管理配置表。项目结构高度模块化底层能力与业务服务解耦便于维护和扩展。
---
## 二、架构分层
### 1. Core基础能力库单独程序集
命名空间:**LubanHub.Core**
- 封装所有原生能力:下载、文件管理、进程调用、解压缩等
- 只暴露通用接口,供各业务服务调用
- 例如:`ICoreFileService``ICoreDownloadService``ICoreProcessService`
### 2. 各业务服务(每个服务一个程序集)
- **Luban集成服务**
- 命名空间:**LubanHub.LubanService**
- 负责调用Luban命令行、管理Luban相关配置、版本检测等
- 依赖Core的进程调用、文件管理能力
- **知识库应用服务**
- 命名空间:**LubanHub.KnowledgeService**
- 管理本地知识库、历史会话
- 封装AI API调用如OpenAI、本地模型等
- 依赖Core的文件管理、网络能力
- **配置表管理服务**
- 命名空间:**LubanHub.TableService**
- 管理配置表结构、配置表设计器逻辑
- 支持table/enum/bean等结构
- 依赖Core的文件管理
- **模板工程创建服务**
- 命名空间:**LubanHub.TemplateService**
- 负责扫描luban_example、按模板生成新工程
- 支持变量替换、目录操作
- 依赖Core的文件管理、解压缩等
### 3. UI层Avalonia MVVM
命名空间:**LubanHub.App**
- 只负责界面展示与交互,所有业务逻辑通过服务层调用
- 通过依赖注入获取服务实例
---
## 三、依赖关系示意
```
UI层
├─ Luban集成服务
│ │
│ └─ Core
├─ 知识库应用服务
│ │
│ └─ Core
├─ 配置表管理服务
│ │
│ └─ Core
└─ 模板工程创建服务
└─ Core
```
---
## 四、主要功能模块
- **问答**本地知识库、历史会话、AI对话
- **项目管理**:分组、创建、打开、配置、发布
- **配置表设计器**:结构化编辑、字段类型、处理器、分组、备注、导出标记
- **模板工程生成**基于luban_example按模板生成新工程
- **设置页**外观、Luban文档、外部编辑器、shell路径、语言等
---
## 五、开发建议
- 每个服务建议定义接口(如 IFileService便于测试和扩展
- Core层实现时注意跨平台兼容
- 业务服务只依赖Core不直接操作系统API
- UI层只做展示和交互所有逻辑下沉到服务