Мы используем FindBugs и Checkstyle, а также Clover для Покрытия Кода.
я думаю, что важно иметь некоторый статический анализ, поддерживая Вашу разработку. К сожалению, это широко все еще не распространено, что эти инструменты важны.
Основным недостатком WMI является скорость, он медленно запрашивает данные, и если вы пытаетесь использовать его во время запуска, это может задержать запуск в качестве службы WMI требуется много времени, чтобы появиться.
Однако информация WMI богаче, так как вам иногда нужно сделать несколько вызовов API, чтобы получить такое же количество, некоторая информация намного проще получить, а синтаксис фильтрации может значительно сократить количество кода, которое вы должны написать.
Если скорость не является большой проблемой, я всегда склоняюсь к WMI.
Disadvantage: Speed
Advantage: Wraps the native API, so as API calls change, unless the WMI changed also you will (might) get the benefits. It will also save you some coding.
И данные побольше. Поскольку программисты могут писать своих собственных поставщиков WMI, вы можете получать данные из стороннего программного обеспечения. Это то, что Microsoft делает в интерфейсе своего центра безопасности, получая данные от сторонних антивирусных программ и брандмауэров.
Преимущество WMI: Может получать информацию об удаленных машинах так же легко, как и текущая машина
И выдача себя за другое лицо!
Вы можете запустить программу с непроверенным пользователем, но получить доступ к удаленной машине, указав учетные данные.