5

C# 経由で SNMP エージェントを作成する必要があるプロジェクトに着手しようとしています。SNMP を使用したことがないため、 SharpSnmpSnmpSharpNetなどの既存のライブラリ/API を使用する予定です。

私は、これらの API の両方を個人的に使用した経験があり、どちらが優れているか、またその理由について意見を持っている人からの回答を求めています。-あるいは、あなたの意見は、それらは同じ違いであるということです(つまり、好みはありません) -もしそうなら、私はそのちょっとした反応にも興味があります.

4

1 に答える 1

10

#SNMP の開発者として、私は次のフィードバックしか提供できません。

2つは異なる設計でした(歴史のレビュー)

#SNMP は SNMP に関する Malcolm Crowe の研究プロジェクトから来ています。それを改善しようとしたとき、API 全体をゼロから再設計し、PowerSNMP for .NET ( http://www.dart.com/psnet.aspx )と同様に、C#/.NET 開発者にとって自然で適切なものにしたいと考えました。しかし、クローンではありません。

SNMP#NET は、ホームページhttp://snmpsharpnet.com/node/1を読むと、snmp4j などの他のライブラリに由来します。そのため、その API もそれらに似ているように見えますが、これは個人的には嫌いです。

この 2 つは異なる方法で開発されました (ソフトウェア プロセス)。

#SNMP は、初日からテスト駆動開発に従います。すべての重要な部分は、単体テスト スイートでカバーされています。そのため、7 回のメジャー リリースの間に何度か大幅なリファクタリングが行われましたが、依然として安定したコード ベースです。

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 用のモノ、その後はモノタッチ)。コードベースは、展開の問題を回避するために、MIT/X11 の下で再ライセンスされています。

更新10.0 リリースから、#SNMP は .NET Standard をターゲットにし始めます。

二人の関係

注目すべきは、#SNMP の v3 サポートの一部が SNMP#NET ( https://blog.lextudio.com/trident-sign-another-open-source-snmp-library-via-c-4f2b904252 ) から移植されたことです。どちらのプロジェクトも LGPL の下でリリースされているため、車輪を再発明しようとはしませんでした。明らかに、SNMP#NET はより優れたプライバシー メソッドのサポートを備えていますが、そのような部分を #SNMP に移植することも簡単に実現できます (MD5、SHA-1、DES、TripleDES、および AES128/192/256 サポートを移植することによってそれを示しました)。

更新8.0 リリースから、#SNMP コード ベースは MIT/X11 + BSD 3 条項の下で再ライセンスされます。

更新された #SNMP には、MIB ドキュメントのサポートを含む Professional エディションがあります。

于 2012-06-01T06:07:01.600 に答える