3.3 KiB
3.3 KiB
项目概述: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 模式: MVVM(Model-View-ViewModel),由
CommunityToolkit.Mvvm支持。 - 依赖注入 (DI): 使用 Microsoft.Extensions.DependencyInjection,在
DMS.WPF项目中进行配置。 - 日志记录: 使用 NLog 进行日志记录,配置文件位于
DMS.WPF\Configurations\nlog.config。 - 对象映射: 使用 AutoMapper 进行对象到对象的映射。