Iotgateway技术手册-2. 技术栈

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 技术选型理由

  1. .NET 6

    • 高性能:.NET 6 具有优异的性能,适合处理大量设备数据

    • 跨平台:支持 Windows、Linux、macOS 等多种平台

    • 生态成熟:拥有丰富的库和框架,便于开发和扩展

    • 长期支持:微软提供长期支持,确保系统稳定性

  2. ASP.NET Core

    • 轻量级:模块化设计,只包含必要的组件

    • 高性能:比传统 ASP.NET 性能提升显著

    • 跨平台:支持多种操作系统

    • 内置依赖注入:简化组件管理

  3. MQTTnet

    • 高性能:支持大量并发连接

    • 跨平台:可在多种平台上运行

    • 易于使用:API 设计简洁,便于集成

    • 支持最新 MQTT 协议:支持 MQTT 3.1.1 和 5.0

  4. Entity Framework Core

    • 简化数据访问:减少样板代码

    • 支持多种数据库:便于切换数据库

    • LINQ 支持:使用 LINQ 查询数据,提高开发效率

    • 迁移支持:便于数据库结构变更

  5. LayUI

    • 简洁易用:API 设计简洁,学习曲线平缓

    • 丰富的组件:提供了大量 UI 组件,如表单、表格、弹窗等

    • 响应式设计:支持不同屏幕尺寸

    • 模块化设计:按需加载,提高性能

2.8 技术栈演进

  • .NET Core 3.1.NET 6:提升性能和跨平台支持

  • ASP.NET Core MVCASP.NET Core Web API + Vue.js:前后端分离,提高开发效率

  • SQLite多数据库支持:满足不同规模应用的需求

  • 自定义 MQTT 实现MQTTnet:提高 MQTT 通信的可靠性和性能

2.9 技术栈学习资源


文档版本 :1.0 更新日期 :2025-11-29 编写人员:辉为科技

相关推荐
a努力。18 小时前
虾皮Java面试被问:JVM Native Memory Tracking追踪堆外内存泄漏
java·开发语言·jvm·后端·python·面试
这周也會开心18 小时前
JVM-垃圾回收器
jvm·算法
找不到、了19 小时前
JVM 跨代引用与 Card Table 机制
java·jvm
sunywz19 小时前
【JVM】(2)java类加载机制
java·jvm·python
alonewolf_9919 小时前
深入浅出JVM:从Class文件到GC调优的全方位解析
jvm
学编程的小鬼19 小时前
JVM 常见的问题
开发语言·jvm
进阶小白猿19 小时前
Java技术八股学习Day13
java·jvm·学习
sunywz19 小时前
【JVM】(3)JVM内存模型深度剖析与优化
jvm
代码or搬砖21 小时前
JVM垃圾回收器
java·jvm·算法