1

有没有人有一种很好的方法来搜索 WebForms Web 应用程序以返回整个应用程序(在 .aspx 和 .ascx 页面中)使用的唯一用户控件列表?我们有 100 多个页面和 150 多个用户控件。我们还使用了一些第三方库,我想看看我们在整个应用程序中使用了哪些控件。我不一定要寻找每个独特控件的数量,而只是寻找独特的项目。例如:asp:Label、asp:MultiView等。

提前致谢。

4

1 回答 1

1

当涉及到依赖关系分析和更改分析时,我使用的是NDepend 。如果您没有许可证,试用版应该允许您不受限制地使用所有功能。

从创建新项目开始,添加 Web 应用程序的编译程序集。它将自动加载您可以浏览的所有依赖项Class Browser。这将使您对 Web 应用程序使用的类型(控件)有基本的了解。

NDepend 类浏览器

您也可以使用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查询结果

如您所见,查询结果可以导出各种格式(HTML、Excel、文本或图形)。

NDepend 是非常强大的工具,主要是因为内置了代码查询语言。它基于 LINQ,您无需任何额外的培训或学习即可开始创建简单的查询。

于 2013-08-04T10:34:00.547 回答