Files
DMS/QWEN.md

48 lines
3.3 KiB
Markdown
Raw Permalink 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.

# 项目概述DMS (Device Management System - 设备管理系统)
此目录包含了设备管理系统 (DMS) 的源代码,这是一个基于 C#/.NET 8 构建的应用程序。该系统主要由一个用于用户界面的 WPF 桌面应用程序组成,后端采用分层架构,包括 Core核心、Application应用和 Infrastructure基础设施项目。此外还为基础设施层和 WPF 层配备了专门的单元测试项目。
项目自述文件中提到的一个重要特性是 OPC UA 服务实现,表明该系统是为工业设备通信和管理而设计的。
## 项目结构
解决方案 (`DMS.sln`) 由几个关键项目组成:
* **`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`
## 构建与运行
这是一个 .NET 8 解决方案。您需要安装 .NET 8 SDK 以及 Visual Studio 或 JetBrains Rider 等 IDE 来构建和运行它。
**构建:**
在解决方案目录下使用标准 .NET CLI 命令:
`dotnet build`
**运行:**
主可执行文件是 WPF 应用程序 (`DMS.WPF`)。您可以使用以下命令运行它:
`dotnet run --project DMS.WPF`
**测试:**
单元测试包含在 `DMS.Infrastructure.UnitTests``DMS.WPF.UnitTests` 中。
使用以下命令运行所有测试:
`dotnet test`
## 开发规范
* **语言与框架:** 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 进行对象到对象的映射。