The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

(Re-)organizing a large solution in Visual Studio

At the moment we have a large solution with close to 100 projects in it. A lot of these are shared library projects, and most are applications, web sites, etc. This approach only scales so far, and I think we've already reached the point where the single solution is too unwieldy.

So the question is, how do I reorganize this in the best way possible? I am looking at NAnt and MSBuild, and I am considering splitting the solution in many, but there are some challenges that I don't know how to approach.

Basically, I want the developer experience to be at least as good as it is now. That means being able to browse, debug, change and build code from within Visual Studio.

If I split the solution, I fear the browsing and building will be more complicated whenever an application developer needs to change shared code.

I could build a comprehensive script in NAnt or MSBuild that would take care of all build issues, but how do I combine that with manageable Visual Studio solutions including just what an app developer needs?

I've spent some hours searching the net today, and I must say I'm surprised how little such issues seems to be discussed. So, does anybody have a good setup that they would like to share with the world?
Monday, July 02, 2007
You can look at build systems that generate Visual Studio solution/project files as a byproduct of the build. 

Both cmake and scons do this.  (A caveat though, scons leaves some things out of the solution file and this makes code browsing a little bit harder than usual.  However, since the whole system is in python, it is easy to extend.)

We use scons + Visual Studio and I'm really happy with how its working out.  We are also working to address the issue I pointed out above.
Perl Solution
Monday, July 02, 2007
That is a brilliant idea! I'll look into that.

Monday, July 02, 2007

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz