Я использую NDepend, когда дело доходит до анализа зависимостей и анализа изменений. Если у вас нет пробной версии лицензии, вы должны использовать все функции без ограничений.
Начните с создания нового проекта и добавьте скомпилированную сборку своего веб-приложения. Он автоматически загрузит все зависимости, которые вы можете просматривать с помощью Class Browser
. Это даст вам общее представление о том, какие типы (элементы управления) используются вашим веб-приложением.
Также вы можете сузить или расширить свои выводы с Queries and Rules Edit
(Ctrl + Alt + R). Выполнить следующий запрос, чтобы получить список используемых элементов управления из System.Web.UI.WebControls
:
from type in Assemblies.WithNameNotIn("WebApplication2").ChildTypes()
// depth is needed th find all controls that are used directly or indirectly
let depth = type.DepthOfIsUsedBy("WebApplication2".MatchAssembly())
// we are interested only in types from specific namespace, in this case "System.Web.UI.WebControls"
where type.ParentNamespace.Name == "System.Web.UI.WebControls"
where depth >= 0 orderby depth
select new { type, depth }
Как вы можете видеть результат запроса может быть экспортированы в различных форматах (HTML, Excel, Text или графика).
NDepend очень мощный инструмент в основном из-за встроенного в Code Query Language. Он основан на LINQ, и вы можете начать создавать простые запросы без какой-либо дополнительной подготовки или обучения.