推荐一款.NET开发的物联网开源项目

物联网(IoT)是一个正在快速发展的技术领域,它涉及到各种设备、物体和系统的互联。所以各种物联网平台和物联网网关项目层出不穷,在物联网(IoT)领域,.NET平台扮演着重要的角色。作为一款广泛使用的软件开发框架,.NET为开发者提供了丰富的工具和功能,使得构建高效、可靠的物联网应用程序变得更加容易。

下面介绍一个基于.NET开发的物联网项目,这两个项目都是利用.NET框架的强大功能和灵活性,为物联网应用提供了高效、可靠的解决方案。

IoTSharp

IoTSharp 是一个 基于.Net Core 开源的物联网基础平台, 支持 HTTP、MQTT 、CoAp 协议, 属性数据和遥测数据协议简单类型丰富,简单设置即可将数据存储在PostgreSql、MySql、Oracle、SQLServer、Sqlite,是一个用于数据收集、处理、可视化与设备管理的 IoT 平台。

部署IoTSharp的必要条件

  • Docker最新版本

    • 如果要部署IoTSharp, 首先推荐的是docker, 以及Docker-Compose,通过docker-compose.yml可以直接部署成功,而不用煞费周折的部署环境。

  • 关系型数据库 用来存储基础数据和属性数据。

    • PostgreSQL 验证过的版本为 PostgreSQL 11.3,12.x等。

    • MySql 验证过的版本为 MySQL 8.0.17

    • Oracle 验证过的版本为 Oracle Standard Edition 12c Release 2 , 操作系统为Cent OS 7

    • Sqlite 程序内置,均验证。 小项目推荐。

    • SQLServer 验证过的版本为 Microsoft SQL Server 2016 (RTM-GDR) (KB4019088) - 13.0.1742.0 (X64)

    • InMemory 通过EF 的内存数据库,一般用于测试 。

    • Cassandra 现在开始我们通过 EFCore.Cassandra 支持了Cassandra。

  • 时序数据库 用来存储遥测数据并提供遥测数据的查询统计等等。

    • 通过EFCore 使用关系型数据库来存储带有时间戳的数据,虽然不推荐,但不妨是一种小型项目的最佳选择。

    • InfluxDB 2.x 我们致力于推荐的时序数据库, InfluxDB集成非常好用的可视化工具, 除了不符合信创没有任何可挑剔的。

    • TDengine 我们致力于推荐的国产时序数据库, 甚至为了支持它我花了大量时间编写他的提供程序 Maikebing.EntityFrameworkCore.Taos

    • PinusDB 国产松果时序数据库, 简单易用, 我们也为他编写了提供程序, PinusDB.Data

    • TimescaleDB 基于PostgreSQL的时序数据库, 你可以直接选择它来当时序数据库也可以当关系型数据库, 一次搞定。

    • 关系数据库 分区法 , 我们有支持这种方式,但始终不推荐,除非你想只想用一个数据库且通过分区就能搞定你的数据量。

    • SingleTable 通过EF的的单表存储。 通过单表, 我们就不需要依赖于数据库或者分区等等。 小项目推荐。

  • 消息队列 我们是通过CAP项目来实现的,因此它支持的理论上我们都支持。

    • RabbitMQ 我们推荐的。

    • Kafka 测试似乎正常。

    • ZeroMQ 针对出门的ZeroMQ , 我们编写了MaiKeBing.CAP.ZeroMQ 和 MaiKeBing.HostedService.ZeroMQ 以支持它。

    • InMemory 通过它可以不需要依赖任何外接, 这是CAP提供的一种途径。 小项目推荐。

  • 消息队列存储

    • PostgreSql 如果全称用PostgreSQL 可以考虑。

    • MongoDB 我们推荐的

    • LiteDB .Net 编写的NoSQL 项目, 小项目推荐,

    • InMemory 存储在内存, 不依赖于外接。 小项目推荐。

初次使用

  • 初始租户和管理员、用户注册信息在系统发现你未初始化时自动跳转到安装界面, 填写完成后, 系统会初始化权限、基础数据等种子数据。

  • X509 CA证书用于通过证书进行保障安全通讯和关系验证, 第一次时需要调用高级管理员权限办法并写入系统, 尤其是当你使用了非管理员用户进行启动IoTSharp 时 , 因此, 需要确保第一次生成使用高权限, 后续使用低权限。

功能预览