<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Representing dependencies in code</title><link>http://blogs.msdn.com/kirillosenkov/archive/2008/08/10/representing-dependencies-in-code.aspx</link><description>It is more often than you would suspect that people have to deal with some sort of dependencies in an application they're developing. In this post I'll talk about some common algorithms and data-structures to work with dependencies that might turn out</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Representing dependencies in code</title><link>http://blogs.msdn.com/kirillosenkov/archive/2008/08/10/representing-dependencies-in-code.aspx#8847704</link><pubDate>Mon, 11 Aug 2008 11:00:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8847704</guid><dc:creator>Vladimir Matveev</dc:creator><description>&lt;p&gt;Recursive solution is very elegant but in some cases it cannot be used. We apply DAGs in tasks similar to the first one you described: shreadsheets. In our application one of common cases is following: cell A1 is independent, A2 depends on A1, A3 - on A2 and so on. When amount of rows is large enough, application fails with stack overflow. Thus we replace recursion with iterative approach.&lt;/p&gt;
&lt;p&gt;Also DAGs are used to resolve dependencies in &amp;nbsp;our plugin-based application. Plugins are organised in graph, non-leaf plugins are used to allow data sharing for leaf plugins. So plugin instance creation should be done in correct order from non-leaf ones to leafs&lt;/p&gt;
</description></item><item><title>re: Representing dependencies in code</title><link>http://blogs.msdn.com/kirillosenkov/archive/2008/08/10/representing-dependencies-in-code.aspx#8848187</link><pubDate>Mon, 11 Aug 2008 17:35:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8848187</guid><dc:creator>Mark</dc:creator><description>&lt;p&gt;Several years ago I had to write a database replication system for a proprietary database. &amp;nbsp;When updating a target database instance with changes, a DAG of table dependencies and a topological sort of the updates is used to insure that updates to the tables occur in the right order so all foreign key constraints remain valid.&lt;/p&gt;
</description></item><item><title>re: Representing dependencies in code</title><link>http://blogs.msdn.com/kirillosenkov/archive/2008/08/10/representing-dependencies-in-code.aspx#8960630</link><pubDate>Sun, 21 Sep 2008 21:20:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8960630</guid><dc:creator>Patrick Smacchia</dc:creator><description>&lt;p&gt;Have you tried NDepend to dig into dependencies inside your code base?&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.ndepend.com/Features.aspx#DependenciesView"&gt;http://www.ndepend.com/Features.aspx#DependenciesView&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Representing dependencies in code</title><link>http://blogs.msdn.com/kirillosenkov/archive/2008/08/10/representing-dependencies-in-code.aspx#8960847</link><pubDate>Mon, 22 Sep 2008 06:52:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8960847</guid><dc:creator>Kirill Osenkov</dc:creator><description>&lt;p&gt;I just noticed that the 4 definitions I gave (4 bullets) form a DAG themselves!&lt;/p&gt;
</description></item><item><title>NDepend</title><link>http://blogs.msdn.com/kirillosenkov/archive/2008/08/10/representing-dependencies-in-code.aspx#9058761</link><pubDate>Tue, 11 Nov 2008 00:46:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9058761</guid><dc:creator>Kirill Osenkov</dc:creator><description>&lt;p&gt;Static analysis tools allow us to measure code quality and better understand the design and architecture&lt;/p&gt;
</description></item></channel></rss>