2012-05-31 88 views
4

我即将开始一个项目,我需要通过C#创建一个SNMP代理。我从来没有使用过SNMP,所以我打算使用现有的库/ API,例如SharpSnmpSnmpSharpNetSharpSnmp vs SnmpSharpNet

我正在从任何有这两种api的亲身经历的人的反应中寻找答案,并且对哪一个更好,为什么有意见。 - 或者你的看法是他们是相同的区别(即你没有偏好) - 如果是这样,我也对这种反应感兴趣。

回答

7

由于#SNMP的开发商,以及SNMP#NET观察者,我只能提供以下反馈,

两种设计不同的(历史回顾)

#SNMP来自马尔科姆·克罗SNMP的研究项目。当我尝试改进它时,我重新设计了整个API,并希望使它成为C#/ .NET开发人员的自然选择,类似于PowerSNMP for .NET(http://www.dart.com/psnet.aspx),但不是克隆。

如果您读取主页,http://snmpsharpnet.com/node/1,SNMP#NET源自其他库,如snmp4j。所以它的API看起来也与他们相似,我个人不喜欢。

两人被不同的(软件程序)开发

#SNMP如下测试其1天驱动开发。所有关键部分都已在其单元测试套件中进行了介绍。因此,尽管在七个主要版本中已经重构过几次,但它仍然是一个稳定的代码库。

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

代码库管理方法是不同的(SCM)

#SNMP的所有修改可以在CodePlex被容易地观察到的,以及后来的谷歌代码,最后在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操作系统的单声道。我不知道SNMP#NET是否支持这一点。

更新从8开始。0版本,#SNMP开始针对移动平台(首先是Android版Mono,后来是MonoTouch)。代码库也在MIT/X11下重新授权,以避免部署问题。两个

值得注意之间

关系,排名SNMP的支持V3从SNMP#.NET,http://www.lextm.com/2009/05/trident-sign-another-open-source-snmp.html移植的一部分。这两个项目都是在LGPL下发布的,所以我没有试图重新发明轮子。很显然,SNMP#NET有更好的隐私方法支持,但将这些片段移植到#SNMP也很容易实现(我通过移植MD5,SHA-1,DES和AES支持表明了这一点)。我没有移植别人,因为我没有简单的方法来测试它们。

更新从8.0版本开始,#SNMP代码库是根据MIT/X11 + BSD 3条重新许可,http://sharpsnmplib.codeplex.com/wikipage?title=600012&referringTitle=KB

+0

感谢,莱克斯李! - 优秀和有用的信息。您能否指出我可以在哪里学习如何使用#SNMP创建SNMP代理? – Jed

+0

对于代理程序开发,您可以从http://www.lextm.com/2010/11/honeycell-drops-snmp-pipeline-and-our.html –

相关问题