<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Speeding up a local build</title>
	<atom:link href="http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/</link>
	<description>Strong opinions, weakly held</description>
	<lastBuildDate>Thu, 23 May 2013 23:40:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: Charlie Barker</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-3608</link>
		<dc:creator>Charlie Barker</dc:creator>
		<pubDate>Fri, 15 Jul 2011 13:53:00 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-3608</guid>
		<description>Giving your developers SSD drives will also help</description>
		<content:encoded><![CDATA[<p>Giving your developers SSD drives will also help</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Padda</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-1456</link>
		<dc:creator>Padda</dc:creator>
		<pubDate>Tue, 02 Nov 2010 22:04:24 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-1456</guid>
		<description>Hi,

Excellent tips.

On point 2. Is there any way to control build order other than via project dependencies? In a solution with lots of projects, sometimes a small change means all dependent projects are recompiled. This increases local build time significantly. So, I copy all projects output to a ReferencedAssemblies folder, and reference dependencies from there (with CopyLocal = false). But when I build a solution, the dependent projects still build, even if no changes have been made. I&#039;d like to decide the project build order without using dependency ordering. Is this possible? I&#039;m using VStudio 2008.

Thank you.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Excellent tips.</p>
<p>On point 2. Is there any way to control build order other than via project dependencies? In a solution with lots of projects, sometimes a small change means all dependent projects are recompiled. This increases local build time significantly. So, I copy all projects output to a ReferencedAssemblies folder, and reference dependencies from there (with CopyLocal = false). But when I build a solution, the dependent projects still build, even if no changes have been made. I&#8217;d like to decide the project build order without using dependency ordering. Is this possible? I&#8217;m using VStudio 2008.</p>
<p>Thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bogardj</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-1455</link>
		<dc:creator>bogardj</dc:creator>
		<pubDate>Thu, 16 Apr 2009 18:53:44 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-1455</guid>
		<description>@Eric

I&#039;m on a laptop supplied by our client - not too much I can do in that side.  I forgot about the /m switch, thanks!</description>
		<content:encoded><![CDATA[<p>@Eric</p>
<p>I&#8217;m on a laptop supplied by our client &#8211; not too much I can do in that side.  I forgot about the /m switch, thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bogardj</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-1454</link>
		<dc:creator>bogardj</dc:creator>
		<pubDate>Thu, 16 Apr 2009 18:49:34 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-1454</guid>
		<description>@Sean

Thanks!  We&#039;ll keep an eye on it.  On the other hand, I don&#039;t see a situation where dev&#039;s shouldn&#039;t have their own DB.  Sharing DB&#039;s is messy.</description>
		<content:encoded><![CDATA[<p>@Sean</p>
<p>Thanks!  We&#8217;ll keep an eye on it.  On the other hand, I don&#8217;t see a situation where dev&#8217;s shouldn&#8217;t have their own DB.  Sharing DB&#8217;s is messy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bogardj</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-1453</link>
		<dc:creator>bogardj</dc:creator>
		<pubDate>Thu, 16 Apr 2009 18:46:48 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-1453</guid>
		<description>@Jeremy

Here&#039;s my case study - a recent gig we went from 72 to 12 projects.  Many of the projects were exactly one file, even though there were only 4 deployed applications. Pointless, in that case.

If a team has problems with understanding layers and responsibilities, and you have to force a project structure to make that understanding, then I&#039;d say you have other bigger problems.  I&#039;d rather the focus be on deployments and dependencies between deployments rather than trying to enforce layers, or &quot;i don&#039;t want to reference System.Data from my Domain project&quot;.  That&#039;s hand-holding.</description>
		<content:encoded><![CDATA[<p>@Jeremy</p>
<p>Here&#8217;s my case study &#8211; a recent gig we went from 72 to 12 projects.  Many of the projects were exactly one file, even though there were only 4 deployed applications. Pointless, in that case.</p>
<p>If a team has problems with understanding layers and responsibilities, and you have to force a project structure to make that understanding, then I&#8217;d say you have other bigger problems.  I&#8217;d rather the focus be on deployments and dependencies between deployments rather than trying to enforce layers, or &#8220;i don&#8217;t want to reference System.Data from my Domain project&#8221;.  That&#8217;s hand-holding.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Gray</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-1452</link>
		<dc:creator>Jeremy Gray</dc:creator>
		<pubDate>Thu, 16 Apr 2009 18:12:10 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-1452</guid>
		<description>@Jimmy - Using multiple solutions is something I&#039;ve done on many larger projects. To be able to do that you still have to go against the frothing masses and break things up. That the break-up usually is best cut along the very same lines that define tiers and partitions, published abstractions and private implementations, is very telling IMHO.

Don&#039;t get me wrong, I&#039;m not advocating cutting along EVERY single line. People need to determine their own priorities and then cut where and only where appropriate based on those priorities, whether they be build time, test time, published abstraction version stability, tiering, partitioning, IDE performance when working on subsets of projects, all sorts of options.

The blanket statements just need to stop because they aren&#039;t helping anyone and will actively harm many. The first thing to happen on a blindly-minimized-project-count solution with a large enough number of tests in it is that the devs will stop running the tests, and we all know where that leads. And, no, the fact that the build process will still run them is inadmissible because, while true, it kinda misses the point. ;)</description>
		<content:encoded><![CDATA[<p>@Jimmy &#8211; Using multiple solutions is something I&#8217;ve done on many larger projects. To be able to do that you still have to go against the frothing masses and break things up. That the break-up usually is best cut along the very same lines that define tiers and partitions, published abstractions and private implementations, is very telling IMHO.</p>
<p>Don&#8217;t get me wrong, I&#8217;m not advocating cutting along EVERY single line. People need to determine their own priorities and then cut where and only where appropriate based on those priorities, whether they be build time, test time, published abstraction version stability, tiering, partitioning, IDE performance when working on subsets of projects, all sorts of options.</p>
<p>The blanket statements just need to stop because they aren&#8217;t helping anyone and will actively harm many. The first thing to happen on a blindly-minimized-project-count solution with a large enough number of tests in it is that the devs will stop running the tests, and we all know where that leads. And, no, the fact that the build process will still run them is inadmissible because, while true, it kinda misses the point. <img src='http://lostechies.com/jimmybogard/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alberto</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-1451</link>
		<dc:creator>alberto</dc:creator>
		<pubDate>Thu, 16 Apr 2009 18:08:24 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-1451</guid>
		<description>Nice article.

It would be great if you could share your build scripts.</description>
		<content:encoded><![CDATA[<p>Nice article.</p>
<p>It would be great if you could share your build scripts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean Feldman</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-1450</link>
		<dc:creator>Sean Feldman</dc:creator>
		<pubDate>Thu, 16 Apr 2009 15:25:36 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-1450</guid>
		<description>We used to have SQLite in memory testing for the DB, but we stopped it. SQLite was passing tests locally and failing them against the real database (Foreign keys, etc). Our solution was to use local DB per developer. This is not as bad as going to some server. As long as there&#039;s a 100% compliance between in-memory and production database, you can do it. Otherwise - no.</description>
		<content:encoded><![CDATA[<p>We used to have SQLite in memory testing for the DB, but we stopped it. SQLite was passing tests locally and failing them against the real database (Foreign keys, etc). Our solution was to use local DB per developer. This is not as bad as going to some server. As long as there&#8217;s a 100% compliance between in-memory and production database, you can do it. Otherwise &#8211; no.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Hauser</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-1449</link>
		<dc:creator>Eric Hauser</dc:creator>
		<pubDate>Thu, 16 Apr 2009 14:06:31 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-1449</guid>
		<description>Jimmy,

You may be doing this, but msbuild /m is your friend.  Also, I recently upgraded my workstation which was a Core 2 Duo with 4 GB of RAM -- not a bad box -- to a low end Core i7 with 6GB of RAM.  A previous large .NET solution that took ~35 secs to compile now compiles in 10 secs flat.  Hardware is cheap relative to developer time.

Also, are you running your unit tests in parallel or single threaded?  For non-sequential tests, it would be interesting to see what parallelizing your tests did.</description>
		<content:encoded><![CDATA[<p>Jimmy,</p>
<p>You may be doing this, but msbuild /m is your friend.  Also, I recently upgraded my workstation which was a Core 2 Duo with 4 GB of RAM &#8212; not a bad box &#8212; to a low end Core i7 with 6GB of RAM.  A previous large .NET solution that took ~35 secs to compile now compiles in 10 secs flat.  Hardware is cheap relative to developer time.</p>
<p>Also, are you running your unit tests in parallel or single threaded?  For non-sequential tests, it would be interesting to see what parallelizing your tests did.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bruno Mart&#237;nez</title>
		<link>http://lostechies.com/jimmybogard/2009/04/16/speeding-up-a-local-build/#comment-1448</link>
		<dc:creator>Bruno Mart&#237;nez</dc:creator>
		<pubDate>Thu, 16 Apr 2009 12:50:59 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/04/15/speeding-up-a-local-build.aspx#comment-1448</guid>
		<description>I&#039;m intrigued about the point on memory databases.  Visual Studio 10 uses SQL Server Compact Edition to store intellisense, so it can&#039;t be that slow.</description>
		<content:encoded><![CDATA[<p>I&#8217;m intrigued about the point on memory databases.  Visual Studio 10 uses SQL Server Compact Edition to store intellisense, so it can&#8217;t be that slow.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
