SharpSnmp против SnmpSharpNet

Я собираюсь приступить к проекту, где мне нужно создать агент SNMP через C#. Я никогда не работал с SNMP, поэтому планирую использовать существующую библиотеку / API, такую ​​как SharpSnmp или SnmpSharpNet.

Я ищу ответы от любого, кто имеет личный опыт работы с обоими этими API-интерфейсами и имеет мнение о том, какой из них лучше и почему. - или, возможно, ваше мнение таково, что они имеют одинаковую разницу (то есть у вас нет предпочтений) - Если это так, меня тоже интересует этот ответ Сорта.

1 ответ

Решение

Как разработчик #SNMP, я могу предоставить только следующие отзывы,

Два были разработаны по-разному (обзор истории)

#SNMP происходит из исследовательского проекта Малкольма Кроу по SNMP. Когда я попытался улучшить его, я переработал весь API с нуля и хотел сделать его естественным и подходящим для разработчиков на C#/.NET, аналогично PowerSNMP для.NET ( http://www.dart.com/psnet.aspx), но не клон.

SNMP#NET происходит из других библиотек, таких как snmp4j, если вы читаете его на домашней странице, http://snmpsharpnet.com/node/1. Так что его API тоже похож на них, что мне лично не нравится.

Два были разработаны по-разному (программный процесс)

#SNMP следует за Test Driven Development с самого первого дня. Все критические части были рассмотрены в его модульном тесте. Таким образом, хотя он подвергался серьезному рефакторингу несколько раз в течение семи основных выпусков, он все еще остается стабильной базой кода.

Из 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 несколько лет назад, а позже официально поддерживает Mono в операционных системах, отличных от Windows. Я не знаю, поддерживает ли когда-нибудь SNMP#NET это.

Обновлено Начиная с версии 8.0, #SNMP начинает ориентироваться на мобильные платформы (сначала Mono для Android, а позже MonoTouch). Кодовая база также повторно лицензируется под 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.

Другие вопросы по тегам