2013-07-24 2 views
1

Есть ли у кого-нибудь хороший способ поиска через веб-приложение WebForms, чтобы вернуть список уникальных пользовательских элементов управления, используемых во всем приложении (на страницах .aspx и .ascx)? У нас есть более 100 страниц и более 150 пользовательских элементов управления. Мы также используем несколько сторонних библиотек, и я хочу посмотреть, какие элементы управления мы используем в приложении. Я не обязательно ищу счет каждого уникального элемента управления, только уникальные предметы. Например: asp: Label, asp: MultiView и т. Д.Поиск по коду для списка уникальных элементов управления

Заранее спасибо.

ответ

1

Я использую NDepend, когда дело доходит до анализа зависимостей и анализа изменений. Если у вас нет пробной версии лицензии, вы должны использовать все функции без ограничений.

Начните с создания нового проекта и добавьте скомпилированную сборку своего веб-приложения. Он автоматически загрузит все зависимости, которые вы можете просматривать с помощью Class Browser. Это даст вам общее представление о том, какие типы (элементы управления) используются вашим веб-приложением.

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 } 

CQL query result

Как вы можете видеть результат запроса может быть экспортированы в различных форматах (HTML, Excel, Text или графика).

NDepend очень мощный инструмент в основном из-за встроенного в Code Query Language. Он основан на LINQ, и вы можете начать создавать простые запросы без какой-либо дополнительной подготовки или обучения.

Смежные вопросы