<?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: Tired Of Working With Big Visual Studio Solutions?</title>
	<atom:link href="http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/feed/" rel="self" type="application/rss+xml" />
	<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/</link>
	<description>Trying to walk that thin line between intelligence and ignorance</description>
	<lastBuildDate>Sun, 14 Mar 2010 15:41:46 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mark</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-22204</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Thu, 23 Jul 2009 12:54:47 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-22204</guid>
		<description>Just an info. I reorganized my projects from ~80 to &lt;20 and had a 2x faster build time. Even now, most of the build time is completely wasted copying files around (which under Windows, is especially slow).</description>
		<content:encoded><![CDATA[<p>Just an info. I reorganized my projects from ~80 to &lt;20 and had a 2x faster build time. Even now, most of the build time is completely wasted copying files around (which under Windows, is especially slow).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Antonio</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-16770</link>
		<dc:creator>Antonio</dc:creator>
		<pubDate>Mon, 25 May 2009 12:37:33 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-16770</guid>
		<description>20 projects is a big solution !? OMFG !

I have Delphi Project Group (aka Solution in VS.NET) that have 153 projects and it&#039;s not slow at all, I really have to think again about my transition in VS.NET</description>
		<content:encoded><![CDATA[<p>20 projects is a big solution !? OMFG !</p>
<p>I have Delphi Project Group (aka Solution in VS.NET) that have 153 projects and it&#8217;s not slow at all, I really have to think again about my transition in VS.NET</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Redhead - Jacob Slusser&#8217;s Blog &#187; Taming Large Solutions</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7787</link>
		<dc:creator>Redhead - Jacob Slusser&#8217;s Blog &#187; Taming Large Solutions</dc:creator>
		<pubDate>Sat, 17 Jan 2009 15:31:43 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7787</guid>
		<description>[...] buddy of mine had a great suggestion on how to work with large Visual Studio solutions. At my work it&#8217;s not uncommon for us to have Visual Studio solutions with as many as 45, 65, [...]</description>
		<content:encoded><![CDATA[<p>[...] buddy of mine had a great suggestion on how to work with large Visual Studio solutions. At my work it&#8217;s not uncommon for us to have Visual Studio solutions with as many as 45, 65, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tariq Salah</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7443</link>
		<dc:creator>Tariq Salah</dc:creator>
		<pubDate>Wed, 07 Jan 2009 19:24:25 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7443</guid>
		<description>This is my own experience and I&#039;m not sure wither it is correct or not but it work find with us:

Separate each group of related projects in a solution folder. Then unload unused folders currenty by you. Use PowerCommands. It is very usefull.
Note:
1- Do not add reference to projects, but add reference to a dll from a hard disk shared folder for a project already exist in the solution to allow debug. Like this you can even unload shared projects and reload them if you want to modify them with any depth.
2- WcfSvcHosting is very bad. It compiles all wcf, dal and entity even you did not modify them. In this case keep maximum 5 wcfs with dals and entities project loaded and unload others to get the solution with 100s projects run in one second.
I have Q6600 with 4GB RAM
3- Do not use CodeRush
4- Do not use more that one IntelliSense. Disable Visual Studio IntelliSense if you use another one that both of them will parse the whole solution and even the framework.
5- Put the solution in a separate hard drive than the OS and the swap file.
6- Use Core to Quad processor and Compile 8 projects simultanusly.

Sorry from my miss spelling if any.</description>
		<content:encoded><![CDATA[<p>This is my own experience and I&#8217;m not sure wither it is correct or not but it work find with us:</p>
<p>Separate each group of related projects in a solution folder. Then unload unused folders currenty by you. Use PowerCommands. It is very usefull.<br />
Note:<br />
1- Do not add reference to projects, but add reference to a dll from a hard disk shared folder for a project already exist in the solution to allow debug. Like this you can even unload shared projects and reload them if you want to modify them with any depth.<br />
2- WcfSvcHosting is very bad. It compiles all wcf, dal and entity even you did not modify them. In this case keep maximum 5 wcfs with dals and entities project loaded and unload others to get the solution with 100s projects run in one second.<br />
I have Q6600 with 4GB RAM<br />
3- Do not use CodeRush<br />
4- Do not use more that one IntelliSense. Disable Visual Studio IntelliSense if you use another one that both of them will parse the whole solution and even the framework.<br />
5- Put the solution in a separate hard drive than the OS and the swap file.<br />
6- Use Core to Quad processor and Compile 8 projects simultanusly.</p>
<p>Sorry from my miss spelling if any.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Franz</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7406</link>
		<dc:creator>Franz</dc:creator>
		<pubDate>Tue, 06 Jan 2009 14:43:39 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7406</guid>
		<description>I would suggest create 

a) add a solution folder (right click at the top in solution explorer and select add-&gt;new solution folder) which will tidy thing up a bit, or 

b) if you&#039;re concerned about compilation time copy all you DLLs from your big project that don&#039;t change into a Project/BinRefs folder of your small project and reference those.  By the sounds of it this is what you &quot;really&quot; want.  Of course all your little projects in the big solution should have their own versioning first otherwise you&#039;ll lose where you are.

Don&#039;t get me wrong I&#039;m all for the odd bodge but I reckon b) is a nicer bodge :)</description>
		<content:encoded><![CDATA[<p>I would suggest create </p>
<p>a) add a solution folder (right click at the top in solution explorer and select add-&gt;new solution folder) which will tidy thing up a bit, or </p>
<p>b) if you&#8217;re concerned about compilation time copy all you DLLs from your big project that don&#8217;t change into a Project/BinRefs folder of your small project and reference those.  By the sounds of it this is what you &#8220;really&#8221; want.  Of course all your little projects in the big solution should have their own versioning first otherwise you&#8217;ll lose where you are.</p>
<p>Don&#8217;t get me wrong I&#8217;m all for the odd bodge but I reckon b) is a nicer bodge <img src='http://davybrion.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Davy Brion</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7161</link>
		<dc:creator>Davy Brion</dc:creator>
		<pubDate>Tue, 30 Dec 2008 19:14:29 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7161</guid>
		<description>probably using the wrong MSBuild version or something... Visual Studio uses MSBuild to build your solution, so if Visual Studio can do it, so can you :)</description>
		<content:encoded><![CDATA[<p>probably using the wrong MSBuild version or something&#8230; Visual Studio uses MSBuild to build your solution, so if Visual Studio can do it, so can you <img src='http://davybrion.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mycall</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7160</link>
		<dc:creator>mycall</dc:creator>
		<pubDate>Tue, 30 Dec 2008 19:11:39 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7160</guid>
		<description>I try msbuild and get &quot;Solution file error MSB4054: The solution file must be opened in the Visual Studio IDE and converted to the latest version before it can be built by MSBuild&quot; with either 2.0 or 3.5 version of msbuild.  Note my project is .NET 2.0.  I guess MSBuild only works with latest .NET version solutions.</description>
		<content:encoded><![CDATA[<p>I try msbuild and get &#8220;Solution file error MSB4054: The solution file must be opened in the Visual Studio IDE and converted to the latest version before it can be built by MSBuild&#8221; with either 2.0 or 3.5 version of msbuild.  Note my project is .NET 2.0.  I guess MSBuild only works with latest .NET version solutions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chris</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7152</link>
		<dc:creator>chris</dc:creator>
		<pubDate>Tue, 30 Dec 2008 15:52:22 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7152</guid>
		<description>At least we can agree that this is something Microsoft should look at. Whenever I work with pure C++ solutions, I find it amazing how fast everything is... In C# solutions hundreds of files are copied around all the time (even for just opening the solution). For big solutions (~100 projects), this can add up to 1 GB being copied around for no reason. 

I like the idea to split stuff into multiple solutions, although that makes every &#039;svn update&#039; more expensive, because I would have to compile all the other solutions first. But with a nice msbuild script that can be solved.</description>
		<content:encoded><![CDATA[<p>At least we can agree that this is something Microsoft should look at. Whenever I work with pure C++ solutions, I find it amazing how fast everything is&#8230; In C# solutions hundreds of files are copied around all the time (even for just opening the solution). For big solutions (~100 projects), this can add up to 1 GB being copied around for no reason. </p>
<p>I like the idea to split stuff into multiple solutions, although that makes every &#8217;svn update&#8217; more expensive, because I would have to compile all the other solutions first. But with a nice msbuild script that can be solved.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vaibhav Gadodia</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7133</link>
		<dc:creator>Vaibhav Gadodia</dc:creator>
		<pubDate>Tue, 30 Dec 2008 04:50:14 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7133</guid>
		<description>This may not be the most perfect way of handling large Net applications. We have applications that we develop, which literally have over a hundred projects. We divide these up in multiple solutions.

The way we get around dependencies is to use a shared folder on the network which each developer has access to. Whenever a project is changed, it is rebuilt and the dll is copied to this shared folder (its all automated).

Each project has file references to DLLs of its dependencies (instead of project references). This allows everyone to have the latest DLL available as a reference when they build their project/solution.</description>
		<content:encoded><![CDATA[<p>This may not be the most perfect way of handling large Net applications. We have applications that we develop, which literally have over a hundred projects. We divide these up in multiple solutions.</p>
<p>The way we get around dependencies is to use a shared folder on the network which each developer has access to. Whenever a project is changed, it is rebuilt and the dll is copied to this shared folder (its all automated).</p>
<p>Each project has file references to DLLs of its dependencies (instead of project references). This allows everyone to have the latest DLL available as a reference when they build their project/solution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Davy Brion</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7119</link>
		<dc:creator>Davy Brion</dc:creator>
		<pubDate>Mon, 29 Dec 2008 21:20:20 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7119</guid>
		<description>as far as telling newcomers how to use this, it&#039;s really not that hard... both solutions are in the same folder structure.  each project only exists in one location, the solution files just point to the included projects.

when someone new joins the project, we tell them to use the EMS_NewArchitectureOnly.sln solution, and if it doesn&#039;t compile, run the local build bat file which simply does an msbuild of the entire solution.  After that, it just works... we don&#039;t need to wrestle with reference locations at all.</description>
		<content:encoded><![CDATA[<p>as far as telling newcomers how to use this, it&#8217;s really not that hard&#8230; both solutions are in the same folder structure.  each project only exists in one location, the solution files just point to the included projects.</p>
<p>when someone new joins the project, we tell them to use the EMS_NewArchitectureOnly.sln solution, and if it doesn&#8217;t compile, run the local build bat file which simply does an msbuild of the entire solution.  After that, it just works&#8230; we don&#8217;t need to wrestle with reference locations at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7118</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Mon, 29 Dec 2008 21:15:50 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7118</guid>
		<description>I&#039;d warn against this.  While it can be tricky (especially if office politics come in to play) to structure the solution in a way that is both fast and developer-friendly, the way you have this will only make things more convoluted in the future.  For example, when you add _another_ layer, what will you call the solution? EMS_NewNewNewArchitectureOnly?  Or if you add a junior dev, they&#039;ll need to have it explained that they must first download and build one solution, then download and build the second.

A better solution may be to properly version and separate everything.  Create a separate EMS solution, and add a reference to the CMS dlls as needed.  If you need to change the CMS code, build a new version and update your reference in EMS.  Alternatively, if these are really part of the same product, keep them in one solution, but refactor to have less projects.  For example, combine the Common class libraries into one of the others.  Only physically separate a project if there is a real functional need.  Use namespaces/folders for logical separation of code. 

One great way to make this even easier is to put any file references (ie dlls that don&#039;t live in Program Files or the GAC) in an empty project named &quot;_FileReferences&quot;.  Set it to not build in any build config (rt click solution -&gt; Build Configurations).  Then, when adding a reference, add it from that location.  This way, a developer can just get the solution from source control, build, and run.  This adds some size to the solution, but is much easier than wrestling with reference locations, etc.</description>
		<content:encoded><![CDATA[<p>I&#8217;d warn against this.  While it can be tricky (especially if office politics come in to play) to structure the solution in a way that is both fast and developer-friendly, the way you have this will only make things more convoluted in the future.  For example, when you add _another_ layer, what will you call the solution? EMS_NewNewNewArchitectureOnly?  Or if you add a junior dev, they&#8217;ll need to have it explained that they must first download and build one solution, then download and build the second.</p>
<p>A better solution may be to properly version and separate everything.  Create a separate EMS solution, and add a reference to the CMS dlls as needed.  If you need to change the CMS code, build a new version and update your reference in EMS.  Alternatively, if these are really part of the same product, keep them in one solution, but refactor to have less projects.  For example, combine the Common class libraries into one of the others.  Only physically separate a project if there is a real functional need.  Use namespaces/folders for logical separation of code. </p>
<p>One great way to make this even easier is to put any file references (ie dlls that don&#8217;t live in Program Files or the GAC) in an empty project named &#8220;_FileReferences&#8221;.  Set it to not build in any build config (rt click solution -&gt; Build Configurations).  Then, when adding a reference, add it from that location.  This way, a developer can just get the solution from source control, build, and run.  This adds some size to the solution, but is much easier than wrestling with reference locations, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Davy Brion</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7117</link>
		<dc:creator>Davy Brion</dc:creator>
		<pubDate>Mon, 29 Dec 2008 20:43:49 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7117</guid>
		<description>@David

in what situation? if you&#039;re trying to build the smaller solution in Visual Studio (which uses MSBuild) without having built the complete one, it fails... like i mentioned in the post

but if you&#039;ve built the larger solution before using the smaller solution, it works</description>
		<content:encoded><![CDATA[<p>@David</p>
<p>in what situation? if you&#8217;re trying to build the smaller solution in Visual Studio (which uses MSBuild) without having built the complete one, it fails&#8230; like i mentioned in the post</p>
<p>but if you&#8217;ve built the larger solution before using the smaller solution, it works</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7115</link>
		<dc:creator>David</dc:creator>
		<pubDate>Mon, 29 Dec 2008 20:31:51 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7115</guid>
		<description>Another thing to note is, that msbuild WILL complain about missing references.</description>
		<content:encoded><![CDATA[<p>Another thing to note is, that msbuild WILL complain about missing references.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Davy Brion</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7114</link>
		<dc:creator>Davy Brion</dc:creator>
		<pubDate>Mon, 29 Dec 2008 20:25:15 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7114</guid>
		<description>mostly ASP.NET projects, and C# class libraries</description>
		<content:encoded><![CDATA[<p>mostly ASP.NET projects, and C# class libraries</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chris</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7113</link>
		<dc:creator>chris</dc:creator>
		<pubDate>Mon, 29 Dec 2008 20:20:44 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7113</guid>
		<description>Doesn&#039;t work for me at all. My WPF projects complain that dependencies are missing. What type of projects do you use? Plain C# only?</description>
		<content:encoded><![CDATA[<p>Doesn&#8217;t work for me at all. My WPF projects complain that dependencies are missing. What type of projects do you use? Plain C# only?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trumpi</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7109</link>
		<dc:creator>Trumpi</dc:creator>
		<pubDate>Mon, 29 Dec 2008 19:01:31 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7109</guid>
		<description>This is a really great tip. One thing that you will have to be aware of when implementing something like this is circular references (particularly if you commit binaries to version control).</description>
		<content:encoded><![CDATA[<p>This is a really great tip. One thing that you will have to be aware of when implementing something like this is circular references (particularly if you commit binaries to version control).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Visual Studio Links #93 : Visual Studio Hacks</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7093</link>
		<dc:creator>Visual Studio Links #93 : Visual Studio Hacks</dc:creator>
		<pubDate>Mon, 29 Dec 2008 12:43:59 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7093</guid>
		<description>[...] Via Alvin Ashcraft:&#160; Davy Brion offers an alternative to working with Big Visual Studio Solutions. [...]</description>
		<content:encoded><![CDATA[<p>[...] Via Alvin Ashcraft:&nbsp; Davy Brion offers an alternative to working with Big Visual Studio Solutions. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Koen</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7087</link>
		<dc:creator>Koen</dc:creator>
		<pubDate>Mon, 29 Dec 2008 10:25:08 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7087</guid>
		<description>&quot;Cucumbertime&quot;?</description>
		<content:encoded><![CDATA[<p>&#8220;Cucumbertime&#8221;?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DotNetLinks.net</title>
		<link>http://davybrion.com/blog/2008/12/tired-of-working-with-big-visual-studio-solutions/comment-page-1/#comment-7073</link>
		<dc:creator>DotNetLinks.net</dc:creator>
		<pubDate>Mon, 29 Dec 2008 01:22:29 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=767#comment-7073</guid>
		<description>&lt;strong&gt;Tired Of Working With Big Visual Studio Solutions?...&lt;/strong&gt;

Track back from DotNetLinks.net...</description>
		<content:encoded><![CDATA[<p><strong>Tired Of Working With Big Visual Studio Solutions?&#8230;</strong></p>
<p>Track back from DotNetLinks.net&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
