2. 技术栈
IoT Gateway 采用了多种先进的技术和框架,构建了一个高性能、可扩展的物联网网关系统。以下是项目使用的主要技术栈:
Iotgateway 网关

2.1 后端技术
| 类别 | 技术/框架 | 版本 | 用途 | 详细说明 |
|---|---|---|---|---|
| 开发框架 | ASP.NET Core | 6.0 | Web 应用框架 | 用于构建高性能、跨平台的 Web 应用程序,提供了 MVC、Web API 等功能 |
| 开发语言 | C# | 10.0 | 主要开发语言 | 现代、类型安全的面向对象编程语言,具有良好的性能和开发效率 |
| ORM 框架 | Entity Framework Core | 6.0 | 数据库访问 | 轻量级、可扩展的 ORM 框架,支持多种数据库,简化数据访问代码 |
| 依赖注入 | Microsoft.Extensions.DependencyInjection | 6.0 | 依赖注入容器 | 提供了强大的依赖注入功能,便于组件之间的解耦和测试 |
| 日志框架 | Microsoft.Extensions.Logging | 6.0 | 日志记录 | 灵活的日志记录框架,支持多种日志提供程序,如 Console、File 等 |
| 配置管理 | Microsoft.Extensions.Configuration | 6.0 | 配置管理 | 统一的配置管理系统,支持多种配置源,如 JSON 文件、环境变量等 |
| 后台服务 | Microsoft.Extensions.Hosting | 6.0 | 后台任务管理 | 用于创建和管理长期运行的后台服务,如设备数据采集、MQTT 通信等 |
2.2 通信协议
| 协议 | 库/框架 | 用途 | 详细说明 |
|---|---|---|---|
| MQTT | MQTTnet | MQTT 通信 | 高性能、跨平台的 MQTT 客户端和服务器库,支持 MQTT 3.1.1 和 5.0 协议 |
| OPC UA | OPC UA .NET Standard | OPC UA 通信 | 用于实现 OPC UA 客户端和服务器功能,支持工业设备通信 |
| Modbus | 自定义 | Modbus 通信 | 支持 Modbus TCP 和 RTU 协议,用于连接 Modbus 设备 |
2.3 数据库
| 数据库类型 | 驱动/库 | 用途 | 详细说明 |
|---|---|---|---|
| SQLite | Microsoft.Data.Sqlite | 轻量级数据库 | 嵌入式关系型数据库,适合小型应用和开发环境 |
| MySQL | MySqlConnector | 关系型数据库 | 开源的关系型数据库,适合中大型应用 |
| PostgreSQL | Npgsql | 关系型数据库 | 功能强大的开源关系型数据库,支持高级特性 |
| Oracle | Oracle.EntityFrameworkCore | 关系型数据库 | 企业级关系型数据库,适合大型应用 |
2.4 前端技术
| 技术/框架 | 版本 | 用途 | 详细说明 |
|---|---|---|---|
| LayUI | 2.0+ | UI 框架 | 经典的模块化前端 UI 框架,提供了丰富的组件和简洁的 API |
| jQuery | 3.6+ | JavaScript 库 | 简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互 |
| ECharts | 5.0+ | 图表库 | 功能强大的开源可视化图表库,支持多种图表类型 |
| Vue.js | 2.6+ | JavaScript 框架 | 用于构建用户界面的渐进式 JavaScript 框架 |
| Font Awesome | 4.7+ | 图标库 | 提供了丰富的矢量图标,可用于增强 UI 设计 |
2.5 其他技术
| 技术/工具 | 用途 | 详细说明 |
|---|---|---|
| DynamicExpresso | 动态表达式计算 | 用于在运行时解析和执行 C# 表达式,支持数据转换和计算 |
| Newtonsoft.Json | JSON 处理 | 高性能的 JSON 序列化和反序列化库 |
| System.Text.Json | JSON 处理 | .NET 6 内置的 JSON 处理库,性能优异 |
| NPOI | Excel 处理 | 用于读写 Excel 文件,支持设备和驱动的导入导出 |
| SixLabors.ImageSharp | 图像处理 | 用于处理图像,如缩放、裁剪、格式转换等 |
| WalkingTec.Mvvm | MVVM 框架 | 基于 ASP.NET Core 的 MVVM 框架,简化了 Web 应用开发 |
2.6 开发工具
| 工具 | 用途 | 详细说明 |
|---|---|---|
| Visual Studio | 集成开发环境 | 功能强大的 IDE,支持 .NET 开发、调试、测试等 |
| Visual Studio Code | 代码编辑器 | 轻量级的代码编辑器,支持多种编程语言和扩展 |
| Git | 版本控制 | 分布式版本控制系统,用于代码管理和协作 |
| Docker | 容器化 | 用于构建、打包和部署应用程序,实现环境一致性 |
| Swagger | API 文档 | 用于生成和查看 API 文档,便于前后端协作 |
2.7 技术选型理由
-
.NET 6:
-
高性能:.NET 6 具有优异的性能,适合处理大量设备数据
-
跨平台:支持 Windows、Linux、macOS 等多种平台
-
生态成熟:拥有丰富的库和框架,便于开发和扩展
-
长期支持:微软提供长期支持,确保系统稳定性
-
-
ASP.NET Core:
-
轻量级:模块化设计,只包含必要的组件
-
高性能:比传统 ASP.NET 性能提升显著
-
跨平台:支持多种操作系统
-
内置依赖注入:简化组件管理
-
-
MQTTnet:
-
高性能:支持大量并发连接
-
跨平台:可在多种平台上运行
-
易于使用:API 设计简洁,便于集成
-
支持最新 MQTT 协议:支持 MQTT 3.1.1 和 5.0
-
-
Entity Framework Core:
-
简化数据访问:减少样板代码
-
支持多种数据库:便于切换数据库
-
LINQ 支持:使用 LINQ 查询数据,提高开发效率
-
迁移支持:便于数据库结构变更
-
-
LayUI:
-
简洁易用:API 设计简洁,学习曲线平缓
-
丰富的组件:提供了大量 UI 组件,如表单、表格、弹窗等
-
响应式设计:支持不同屏幕尺寸
-
模块化设计:按需加载,提高性能
-
2.8 技术栈演进
-
.NET Core 3.1 → .NET 6:提升性能和跨平台支持
-
ASP.NET Core MVC → ASP.NET Core Web API + Vue.js:前后端分离,提高开发效率
-
SQLite → 多数据库支持:满足不同规模应用的需求
-
自定义 MQTT 实现 → MQTTnet:提高 MQTT 通信的可靠性和性能
2.9 技术栈学习资源
文档版本 :1.0 更新日期 :2025-11-29 编写人员:辉为科技

