【问题标题】:Dependency graph in .NET.NET 中的依赖关系图
【发布时间】:2011-11-12 16:46:59
【问题描述】:

在我的应用中,我有任务、资源和锁之类的东西。任务可以依赖于资源、当前运行或完成的其他任务以及锁定资源。任务也可以创建资源。是否有一些开源或商业库可以帮助对此进行建模?

【问题讨论】:

  • 您在使用 Visual Studio 吗?如果“是”,那么是哪个版本? Ultimate 包括各种建模工具。
  • 是的,我使用 Ultimate,但我需要图形算法之类的东西才能正确实现。
  • 我不知道您所说的需要“图算法”是什么意思——您需要更具体地了解您正在寻找的内容,您当前的工具无法满足您的需求(也许一个具体的例子会有所帮助)。

标签: .net graph dependencies circular-dependency


【解决方案1】:

看看NGenerics - http://code.google.com/p/ngenerics/

它有一个很棒的图形库并实现了Tarjan’s strongly connected components algorithm 来检测图形中的循环。它应该包含在代码中建模所需的一切。

【讨论】:

    【解决方案2】:

    您可以使用 NDepend 工具来做到这一点。 免责声明:我是该工具的开发人员之一

    它提供code dependency graphcode dependency structure matrix。 NDepend 还提供了创建Code Rules over LINQ Queries (CQLinq) 的能力。可以编写依赖代码规则,它们可以如下所示:

    warnif count > 0 
    from a in Assemblies where
    a.IsUsing ("NUnit.Util") && (a.Name == @"nunit-agent")
    select new { a, a.NbLinesOfCode }
    

    借助 NDepend 插件,此类规则可以是 checked in Visual Studio,也可以是 Reports created at Build Process/CI time

    请注意,使用这些功能,NDepend 不会帮助您创建一个好的设计。但它会帮助你表达和形式化你精心设计的设计 + 它会不断地检查你,随着代码的演变,固定的设计不会生根。

    【讨论】:

      猜你喜欢
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多