SharpSnmp 与 SnmpSharpNet

问题描述 投票:0回答:1

我即将开始一个项目,我需要通过 C# 创建 SNMP 代理。我从未使用过 SNMP,因此我计划使用现有的库/API,例如 SharpSnmpSnmpSharpNet

我正在寻找任何对这两种 api 有个人经验并且对哪一个更好以及为什么更好有意见的人的回应。 - 或者也许您认为它们是相同的差异(即您没有偏好) - 如果是这样,我也对这种回应感兴趣。

.net api snmp sharp-snmp
1个回答
10
投票

作为#SNMP的开发者,我只能提供以下反馈,

两者设计不同(历史回顾)

#SNMP 来自 Malcolm Crowe 的 SNMP 研究项目。当我尝试改进它时,我从头开始重新设计了整个 API,并希望使其自然且适合 C#/.NET 开发人员,类似于 PowerSNMP for .NET (http://www.dart.com/psnet.aspx ),但不是克隆。

SNMP#NET 源自其他库,例如 snmp4j,如果你阅读它的主页,http://snmpsharpnet.com/node/1。所以它的API看起来也和他们很相似,我个人不喜欢这一点。

两者开发方式不同(软件流程)

#SNMP 从第一天起就遵循测试驱动开发。所有关键部分都已包含在其单元测试套件中。因此,尽管在七个主要版本中它已经被多次重构,但它仍然是一个稳定的代码库。

从 SNMP#NET 我看不到任何单元测试套件。我不知道它是如何测试的。但它也被证明是稳定的。

代码库管理方式不同(SCM)

#SNMP 的所有修订都可以在 CodePlex 上轻松观察,随后在 Google Code 上,最后在 GitHub 上。 https://github.com/lextm/sharpsnmplib/commits/master 您可以跟踪几乎所有更改,因为我经常签入。如果您想检查代码库的演变,#SNMP 可以轻松实现。

SNMP#NET 仅发布带有二进制文件的源代码快照。没有它的公共存储库。

功能集差异

#SNMP 提供了一组命令行实用程序(类似于某些 Net-SNMP 实用程序)来演示如何使用该库。它还提供演示级 MIB 编译器、浏览器和代理。这些示例可以作为首次用户了解 API 的起点。

SNMP#NET 有很多关于如何使用 API 的好小文章,http://snmpsharpnet.com/node/6。但它没有很多大规模的样本。特别是,SNMP#NET 还没有 MIB 编译支持,也没有代理开发支持。

平台支持差异

#SNMP几年前就已经在Mono上进行了测试,后来正式支持非Windows操作系统上的Mono。我不知道 SNMP#NET 是否支持这个。

更新从8.0版本开始,#SNMP开始针对移动平台(首先是Android的Mono,后来是MonoTouch)。代码库也在 MIT/X11 下重新获得许可,以避免部署问题。

更新从10.0版本开始,#SNMP开始针对.NET Standard。

两者的关系

值得注意的是,#SNMP v3 支持的一部分是从 SNMP#NET 移植的。这两个项目都是在 LGPL 下发布的,所以我没有尝试重新发明轮子。显然 SNMP#NET 有更好的隐私方法支持,但是将这些部分移植到 #SNMP 也很容易实现(我确实表明通过移植 MD5、SHA-1、DES、TripleDES 和 AES128/192/256 支持)。

更新从 8.0 版本开始,#SNMP 代码库根据 MIT/X11 + BSD 3 条款重新获得许可。

更新 #SNMP 有专业版,其中包括 MIB 文档支持。

© www.soinside.com 2019 - 2024. All rights reserved.