标签: ndepend

使用NDepend查看代码度量标准中的趋势

我有一个NDepend版本用于构建服务器,并自动生成NDepend报告.因此,每晚构建都会发挥作用,并生成NDepend报告/ XML.我现在想要做的是跟踪一些时间因素的指标.

因此,例如,在y轴上具有特定类型或命名空间(例如,传入耦合)的图形与x轴上的时间可能是很好的.我知道我可以比较两个NDepend构建并具有代码和度量差异,但我想要做的是比较相同的单个度量或N个构建的度量以查看正在进行的趋势.

我有点假设当前没有一个工具可以做到这一点,而且我必须自己动手,但如果有一个,我肯定喜欢在投入时间之前听到它.那么,NDepend本身是否支持这样的东西,或者是否存在某些我可以使用的实用工具?

除了NDepend之外,我也愿意接受其他可以实现这一目标的技术建议,尽管由于已经投入了NDepend并熟悉它的工作方式,我对NDepend有很强的偏好.

提前致谢.

c# static-analysis ndepend visual-studio-2010 cqlinq

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

我是否可以强制执行POCO中的字段只能在类型初始化器中设置?

如果我有这样的POCO:

[Poco]
public class MyPoco
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

......它的初始化如下:

new MyPoco { FirstName = "Joe", LastName="Bloggs", Address="123 Abc St." }
Run Code Online (Sandbox Code Playgroud)

我是否可以在NDepend中使用CQL,确保只使用上面的对象初始化程序设置属性,而不是单独设置.

我正试图抓住这样的代码:

myPoco.FirstName="John";
doSomething(myPoco);
Run Code Online (Sandbox Code Playgroud)

...我不希望人们在现有的POCO上设置属性.我理解我可以创建setter private,但我不喜欢传入构造函数中的所有属性,因为你最终会得到一个签名MyPoco(string, string, string)- 使得更容易错位参数(比使用对象初始化语法更容易)

所以,我想用NDepend来捕获它.这是我的CQL查询的开始:

from f in JustMyCode.Fields.Where(f=>
   f.ParentType.HasAttribute ("JetBrains.Annotations.PocoAttribute".AllowNoMatch())) 
       where f.MethodsAssigningMe [I'M STUMPED HERE]
Run Code Online (Sandbox Code Playgroud)

看起来我可以分析设置POCO属性的方法,但是我需要更低一步并检查代码块以查看它是否在对象初始化块中.

这可能吗?

c# code-analysis ndepend cql poco

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

如何查看代码指标lke扇入/扇出与NDepend

我已经安装了NDepend(14天试用版)作为Visual Studio 2015扩展,它现在可以使用了.

我想在我的解决方案中获得一些类的一些指标:

  • 标识符的长度
  • 扇入/扇出
  • 加权方法
  • 类对象的耦合

我没有从官方网站上找到任何有用的指示,有人知道吗?

谢谢.

.net c# ndepend code-metrics

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

NDepend程序集的指标

您是否尝试将每个组件的主序距离保持在低位?那些只包含Business Objects定义的程序集呢?是否有可能让他们远离疼痛区?这种组件中的类型通常由其他组件使用,而且非常具体.如何处理这种情况?

.net ndepend code-metrics

2
推荐指数
1
解决办法
281
查看次数

退出痛苦区 - NDepend

我刚刚通过NDepend运行我的一个项目,报告将我的组件放在痛苦区域的角落.我只是想知道这是否应该让我担心.

疼痛区真正意味着什么?这不是说有很多耦合,事情不容易改变.

我最近删除了很多接口并密封了很多类,因为我不希望用户扩展API(仅在某些地方).它是com对象的.NET包装器,因此用户不需要扩展任何东西.

有什么好办法让我走出痛苦的区域?

谢谢

.net code-analysis ndepend

2
推荐指数
1
解决办法
539
查看次数

使用ndepend分析asp.net站点

我正试图用ndepend来分析一个网站(用asp.net构建).

如果看看关于"未使用的代码/死代码"的CQL查询,该工具几乎引用了我的所有方法(包括onload,onprerender,......),这显然是错误的.

有谁知道我能做些什么来获得更好的结果?提前致谢

asp.net ndepend

2
推荐指数
1
解决办法
452
查看次数

在构建期间使用NDepend生成差异报告

我们使用TeamCity进行持续集成,我们的源代码控制是Git,我们有一个主要的存储库,包含多个.sln文件(大约10个).

总而言之,这个存储库大约有100到200个C#项目.

在推送到主存储库后,TeamCity会触发一个构建,该构建将编译存储库中的所有项目.

我希望能够告诉哪些项目实际上受到特定提交的影响,因此只将这些项目的输出发布为当前构建的工件.

为此,我设计了一个解决方案,将NDepend集成到我们的构建过程中,并在当前和最新构建输出之间生成差异报告.已更改/添加的输出将作为构建输出发布.

我对NDepend的经验不多; 从我所看到的,它所有的真正力量都来自于它的查询语言.

我想知道如何(如果可能的话)我可以实现以下目标:

  1. 包含先前构建的输出的文件夹与构建输出的当前文件夹之间的差异.
  2. 让NDepend以可使用的格式生成报告,以便我可以确定需要复制的文件.

这种情况可能吗?这有多容易/多难?

.net c# continuous-integration ndepend build

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