2012-05-31 63 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 –

相關問題