Files
DMS/QWEN.md

3.3 KiB
Raw Blame History

项目概述DMS (Device Management System - 设备管理系统)

此目录包含了设备管理系统 (DMS) 的源代码,这是一个基于 C#/.NET 8 构建的应用程序。该系统主要由一个用于用户界面的 WPF 桌面应用程序组成,后端采用分层架构,包括 Core核心、Application应用和 Infrastructure基础设施项目。此外还为基础设施层和 WPF 层配备了专门的单元测试项目。

项目自述文件中提到的一个重要特性是 OPC UA 服务实现,表明该系统是为工业设备通信和管理而设计的。

项目结构

解决方案 (DMS.sln) 由几个关键项目组成:

  • DMS.Core: 包含基础的、可复用的组件和共享模型。可能包括实用工具、通用数据传输对象 (DTOs) 以及核心业务逻辑抽象。它引用了 Microsoft.Extensions.Logging.AbstractionsNewtonsoft.JsonNLog
  • DMS.Application: 实现应用特定的业务逻辑。它依赖于 DMS.Core,并使用 AutoMapper(用于对象映射)和 Microsoft.Extensions(用于托管和日志记录抽象)等库。
  • DMS.Infrastructure: 处理数据访问、外部集成和技术实现。它引用了 DMS.CoreDMS.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.MvvmHandyControlUI 工具包)、Hardcodet.NotifyIcon.Wpf(系统托盘图标)和 iNKORE.UI.WPF.Modern(现代 UI 样式)。它依赖于 DMS.ApplicationDMS.Infrastructure
  • DMS.Infrastructure.UnitTests:针对 DMS.Infrastructure 项目的单元测试。使用 xunitMoqBogus(用于伪造数据)和 Microsoft.NET.Test.Sdk
  • DMS.WPF.UnitTests:针对 DMS.WPF 项目的单元测试。同样使用 xunitMoqBogus

构建与运行

这是一个 .NET 8 解决方案。您需要安装 .NET 8 SDK 以及 Visual Studio 或 JetBrains Rider 等 IDE 来构建和运行它。

构建: 在解决方案目录下使用标准 .NET CLI 命令: dotnet build

运行: 主可执行文件是 WPF 应用程序 (DMS.WPF)。您可以使用以下命令运行它: dotnet run --project DMS.WPF

测试: 单元测试包含在 DMS.Infrastructure.UnitTestsDMS.WPF.UnitTests 中。 使用以下命令运行所有测试: dotnet test

开发规范

  • 语言与框架: C# 配合 .NET 8。
  • 架构: 分层架构Core, Application, Infrastructure配合 WPF 表现层。
  • UI 模式: MVVMModel-View-ViewModelCommunityToolkit.Mvvm 支持。
  • 依赖注入 (DI) 使用 Microsoft.Extensions.DependencyInjectionDMS.WPF 项目中进行配置。
  • 日志记录: 使用 NLog 进行日志记录,配置文件位于 DMS.WPF\Configurations\nlog.config
  • 对象映射: 使用 AutoMapper 进行对象到对象的映射。