标签: ndepend

NDepend - 几个.NET程序集的名称为{MyAssembly},但它们不同

我刚开始使用NDepend并试图分析解决方案.

当我添加解决方案的程序集时,会出现此警告,并且它不会加载带有警告的任何程序集:

无法加载程序集{MyAssembly}:几个.NET程序集的名称为{MyAssembly},但它们不同:...项目中包含此程序集的.dll列表

可能是什么导致了这个?我使用通用的AssemblyInfo.cs文件以及标准的文件来设置一些公共属性,但这些属性之间没有冲突.

.net ndepend

6
推荐指数
1
解决办法
822
查看次数

VS 2010 Ultimate与第三方实用程序

/sf/ask/19170091/,/sf/ask/10016191/HTTPS ://stackoverflow.com/questions/180939/net-must-have-development-tools,我发现一些软件工具是多重推荐的,比如Reshaper,dotTraceNDepend.

我使用Visual Studio 2010 Ultimate,它有一些功能,如代码覆盖率,分析和StyleCop等等,而且它非常昂贵.

作为VS 2010 Ultimate的用户,是否值得投资我提到的那些工具?或者,它们是否提供VS 2010 Ultimate已具有的类似功能?

resharper ndepend visual-studio-2010 dottrace

6
推荐指数
1
解决办法
952
查看次数

C# - 如何检查缺少scope.Complete()语句?

我团队中的程序员有时会打开一个事务而忘记包含scope.Complete()语句(参见下面的代码块).任何有关方法的想法

(1)搜索我们的解决方案是否缺少scope.Complete()语句,或

(2)让Visual Studio自动突出显示或发出缺少scope.Complete()语句的警告?

这是我们想念的那条线:

 using(TransactionScope scope = new TransactionScope())
 {
      /* Perform transactional work here */
      scope.Complete(); <-- we forget this line
      /* Optionally, include a return statement */
 }
Run Code Online (Sandbox Code Playgroud)

我试过的
 
尝试使用ReSharper自定义模式,没有运气.理想情况下,我会搜索类似的东西:

using(TransactionScope scope = new TransactionScope())
{
    $statements1$
    [^(scope.Complete();)]
    $statements2$
}
Run Code Online (Sandbox Code Playgroud)

但是,ReSharper只接受标识符的正则表达式,而不接受语句,因此这似乎不起作用(http://www.jetbrains.com/resharper/webhelp/Reference__Search_with_Pattern.html).

有任何想法吗?我也愿意使用其他插件或工具.

谢谢,

c# resharper qa ndepend

5
推荐指数
1
解决办法
318
查看次数

如何忽略 NDepend 中的 .NET 程序集?

背景

随着时间的推移,我发现自己越来越多地转向NDepend来深入了解遗留应用程序的设计/实现。

问题

有没有JustMyCode办法永久配置NDepend(在项目级别)以简单地忽略 .NET Framework,而不是添加到 CQL 查询?我可能是错的,但我很确定NDepend v3支持此功能。

例子

  1. 在 Visual Studio 中打开您的解决方案并单击“重建”
  2. 根据您的解决方案文件 (*.sln)创建NDepend项目
  3. 运行分析
  4. 打开交互式(非 HTML)依赖关系图
  5. 单击左上角的重置箭头(提示:回收图标)
  6. 单击仅重置为应用程序程序集
  7. 观察
    • 您将不再看到对 .Net Framework 的引用(注意:蓝色字体消失了)
  8. 右键单击您的程序集之一:选择类型
  9. 点击我直接使用
  10. 以下 CQL 将出现在查询窗口中:
    • from t in Types where t.IsUsedBy ("MyCompany.MyProduct.MyAssemblyName") select new { t, t.NbILInstructions }
  11. 观察
    • 您现在很可能会在查询结果窗口中看到 .NET Framework 引用(注意:蓝色字体又回来了)
    • 将 JustMyCode 添加到 CQL 查询中,.NET 引用再次消失:from t in JustMyCode.Types where t.IsUsedBy ("MyCompany.MyProduct.MyAssemblyName") select new …

ndepend

5
推荐指数
1
解决办法
1243
查看次数

如何更改"潜在死方法"CQLinq在WPF MVVM项目中有用

刚开始NDepend一个WPF项目.更改了"潜在死类型"内置查询以包含我们的System.Windows.Application派生类而不是名为Program的类:

// <Name>Potentially dead Types</Name>
warnif count > 0
let canTypeBeConsideredAsDeadProc = new Func<IType, bool>(
   t => !t.IsPublic &&
        (t.BaseClass == null || t.BaseClass.FullName != "System.Windows.Application") && 
        !t.IsGeneratedByCompiler && ...
Run Code Online (Sandbox Code Playgroud)

解决这些问题后,我仍然需要处理NDepend发现的许多死方法,这些方法实际上是在WPF绑定中使用的.任何想法如何开始这个没有用属性标记所有这样的视图模型属性?

不幸的是,只有那些属性使用的所有方法似乎都是死代码,所以这个查询也"泄漏"到模型的某些部分.

data-binding ndepend mvvm

5
推荐指数
0
解决办法
140
查看次数

找不到IDisposables

我正在寻找巨大代码库中的内存泄漏,因此逐行进行并观察IDisposable的使用位置的每个可能位置,而不是放在using语句中或没有被处理,这不是一个选项.

我目前正在使用NDepend与此答案的查询NDepend CQL Query缺少IDisposable实现, 但这不是我需要的.我需要知道一个对象是否被实例化,以后是否被处理掉了.如何在NDepend中编写一个查找这些对象的查询?或者,如果那是不可能的,那么如何获取实例化IDisposable对象的地方列表?

c# static-analysis ndepend idisposable

5
推荐指数
1
解决办法
940
查看次数

NDepend CQL查询缺少IDisposable实现

我意识到这个问题正在寻找的查询不足以找到IDisposable实现的每个小问题,但每个早期警告都很重要,所以我会采取我能得到的.

我想知道是否有人为NDepend提出了一个CQL查询,它将列出所有没有实现IDisposable的类,但是有一个或多个字段.一个类可能通过一个bug(即有人忘了检查IDisposable实现的字段类型)或者通过代码进化(或者某个字段中使用的类在某个地方获得IDisposable)来结束此查询的结果列表.以后的日期没有更新所有用法).

查找未实现IDisposable的所有类的简单查询是:

SELECT TYPES WHERE !Implement "System.IDisposable"
Run Code Online (Sandbox Code Playgroud)

但是,这当然不会检查类是否应该为上述规则实现IDisposable.

有没有人有这样的疑问?我仍然在掌握CQL,所以这部分让我无法理解.

ndepend idisposable cql cqlinq

4
推荐指数
1
解决办法
575
查看次数

确定未使用的方法和属性

我有一个独立的解决方案(任何其他项目中都没有使用DLL,因此不必担心在其他地方使用的方法).

我正在试图找出一种方法来确定根本没有使用的每个方法/属性.

所以我不能只看私有方法/属性,我还需要检查Public方法和属性.

我过去使用过一个程序来完成这项工作,但仅限于私有方法/属性(它保证的东西不被其他项目使用).即使我记得它是什么,它也无法满足我的需求.

我看过nDepend,但不确定这是否是应用程序中的标准内容,或者我是否需要为它编写自定义CQL语句.

有没有人知道这样做的应用程序,或者如果nDepend可以做到这一点,在nDepend中做多难?

.net refactoring ndepend

4
推荐指数
2
解决办法
1899
查看次数

如何指示NDepend忽略EF类?

我在NDepend上遇到一点问题而不是忽略生成的代码.在创建实体数据模型时,它会在EF生成的designer.cs文件中查找围绕方法的问题.该类注释了"自动生成"注释,但仍被NDepend选中.

我似乎无法找到如何强制*.designer.cs被忽略,甚至忽略没有外卡的特定文件.我最接近的是几年前的这篇文章,其中帕特里克提到计划这样做,但仅此而已.

我错过了什么吗?有没有简单的方法来排除这个?

.net entity-framework ndepend cqlinq

4
推荐指数
1
解决办法
1544
查看次数

NDepend代码质量指标 - 自定义CQL - Brownfield开发

我正在开发一个最初为.NET 1.1开发的棕色项目,后来改编为.NET 2.0,只有一小部分.NET 3.5

我很好奇用什么样的指标来开始寻找优化和现代化拐点.

有没有人发现有用的清理和重构"遗留".NET代码的CQL查询?

.net c# metrics ndepend cql

3
推荐指数
1
解决办法
510
查看次数