Files
DMS/QWEN.md

48 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

2025-09-07 19:01:58 +08:00
# 项目概述DMS (Device Management System - 设备管理系统)
2025-09-07 19:01:58 +08:00
此目录包含了设备管理系统 (DMS) 的源代码,这是一个基于 C#/.NET 8 构建的应用程序。该系统主要由一个用于用户界面的 WPF 桌面应用程序组成,后端采用分层架构,包括 Core核心、Application应用和 Infrastructure基础设施项目。此外还为基础设施层和 WPF 层配备了专门的单元测试项目。
2025-09-07 19:01:58 +08:00
项目自述文件中提到的一个重要特性是 OPC UA 服务实现,表明该系统是为工业设备通信和管理而设计的。
2025-09-07 19:01:58 +08:00
## 项目结构
2025-09-07 19:01:58 +08:00
解决方案 (`DMS.sln`) 由几个关键项目组成:
2025-09-07 19:01:58 +08:00
* **`DMS.Core`**: 包含基础的、可复用的组件和共享模型。可能包括实用工具、通用数据传输对象 (DTOs) 以及核心业务逻辑抽象。它引用了 `Microsoft.Extensions.Logging.Abstractions``Newtonsoft.Json``NLog`
* **`DMS.Application`**: 实现应用特定的业务逻辑。它依赖于 `DMS.Core`,并使用 `AutoMapper`(用于对象映射)和 `Microsoft.Extensions`(用于托管和日志记录抽象)等库。
* **`DMS.Infrastructure`**: 处理数据访问、外部集成和技术实现。它引用了 `DMS.Core``DMS.Application`。关键依赖包括:
* `SqlSugarCore`用于数据库交互MySQL
* `MQTTnet`:用于 MQTT 协议通信。
* `OPCFoundation.NetStandard.Opc.Ua`:用于 OPC UA 通信。
* `S7netplus`:用于西门子 S7 PLC 通信。
* `NPOI`:用于读写 Excel 文件。
* `AutoMapper.Extensions.Microsoft.DependencyInjection`:用于 AutoMapper 的依赖注入设置。
* **`DMS.WPF`**:主 WPF 桌面应用程序。它以 `net8.0-windows` 为目标,并使用 WPF 特定的库,如 `CommunityToolkit.Mvvm``HandyControl`UI 工具包)、`Hardcodet.NotifyIcon.Wpf`(系统托盘图标)和 `iNKORE.UI.WPF.Modern`(现代 UI 样式)。它依赖于 `DMS.Application``DMS.Infrastructure`
* **`DMS.Infrastructure.UnitTests`**:针对 `DMS.Infrastructure` 项目的单元测试。使用 `xunit``Moq``Bogus`(用于伪造数据)和 `Microsoft.NET.Test.Sdk`
* **`DMS.WPF.UnitTests`**:针对 `DMS.WPF` 项目的单元测试。同样使用 `xunit``Moq``Bogus`
2025-09-07 19:01:58 +08:00
## 构建与运行
2025-09-07 19:01:58 +08:00
这是一个 .NET 8 解决方案。您需要安装 .NET 8 SDK 以及 Visual Studio 或 JetBrains Rider 等 IDE 来构建和运行它。
2025-09-07 19:01:58 +08:00
**构建:**
在解决方案目录下使用标准 .NET CLI 命令:
`dotnet build`
2025-09-07 19:01:58 +08:00
**运行:**
主可执行文件是 WPF 应用程序 (`DMS.WPF`)。您可以使用以下命令运行它:
`dotnet run --project DMS.WPF`
2025-09-07 19:01:58 +08:00
**测试:**
单元测试包含在 `DMS.Infrastructure.UnitTests``DMS.WPF.UnitTests` 中。
使用以下命令运行所有测试:
`dotnet test`
2025-09-07 19:01:58 +08:00
## 开发规范
2025-09-07 19:01:58 +08:00
* **语言与框架:** C# 配合 .NET 8。
* **架构:** 分层架构Core, Application, Infrastructure配合 WPF 表现层。
* **UI 模式:** MVVMModel-View-ViewModel`CommunityToolkit.Mvvm` 支持。
* **依赖注入 (DI)** 使用 Microsoft.Extensions.DependencyInjection`DMS.WPF` 项目中进行配置。
* **日志记录:** 使用 NLog 进行日志记录,配置文件位于 `DMS.WPF\Configurations\nlog.config`
* **对象映射:** 使用 AutoMapper 进行对象到对象的映射。