在我的应用程序中,我有像任务、资源和锁之类的东西。任务可以依赖于资源、其他当前正在运行或已完成的任务以及对资源的锁定。任务还可以创建资源。是否有一些开源或商业库可以帮助建模这个问题?
在我的应用程序中,我有像任务、资源和锁之类的东西。任务可以依赖于资源、其他当前正在运行或已完成的任务以及对资源的锁定。任务还可以创建资源。是否有一些开源或商业库可以帮助建模这个问题?
看一下NGenerics - http://code.google.com/p/ngenerics/。
它有一个很棒的图形库,并实现了Tarjan强连通分量算法,用于检测图中的循环。它应该拥有你在代码中建模所需的一切。
它提供代码依赖图和代码依赖结构矩阵。NDepend还提供了创建基于LINQ查询的代码规则(CQLinq)的功能。可以编写依赖性代码规则,它们看起来可能像:
warnif count > 0
from a in Assemblies where
a.IsUsing ("NUnit.Util") && (a.Name == @"nunit-agent")
select new { a, a.NbLinesOfCode }
借助 NDepend 插件,可以在 Visual Studio 中检查此规则,或在 构建过程/CI 时间生成的报告中进行检查。
请注意,使用这些功能并不能帮助您创建良好的设计。但它可以帮助您表达和形式化您所制定的设计,并持续为您检查代码演进时,固定的设计是否被根除。