I’m working with Visual Studio .Net for about 4 years now. To be honest, it’s one of the greatest IDE I’ve ever worked with but the amount of memory it consumes simply knocks the best of my computers. I’m currently using VS.NET 2005 with SP1 and the average memory allocation is ~200MB-~500MB. Now, I usually need to see a few solutions in front of me in order to work so from the total of 2G of memory I have, about ~1G is taken by Visual Studio instance(s). That is just too much, developer need some memory for other application you know (aka Outlook).
One of the obvious suggestions in this scenario is to create some sort of “master” solution and thus working with one instance of VS.NET that contains all the projects I need (from all the solutions). That is a good suggestion unless it was so boring to do and simply took too long(let’s face it, no one wants to waste about 5 minutes to create some sort of _temporary_ “master” solution each time he needs to see 2-3 solutions in front of him).
I came up with the idea to develop some sort of automatic solution builder with the following logic:
Let’s say I have an open solution X.sln.
Now I’m trying to open Y.sln.
The user will be asked if he wants to join X & Y into a temporary “master” solution (Z.sln) and if so:
1). The current open instance of VS.NET will save X.sln.
2). Generate a new solution: Z.sln
2.1) This solution will contain 2 “Solution Folder” (a new feature in VS.NET 2005):
X solution directory
Contain all the projects from the original X.sln.
Contain all the projects from the original Y.sln.
The user will have the option to select a “Solution Folder” and set it as the “active solution” (just like you select “active project”). Only the “Active Solution” will be built. I am not sure how useful this feature is, but I believe we do _not_ want to compile all of our projects in this master solution each and every time we build the solution. If you think about it, we usually need the other solutions open just to look at them while we’re trying to develop a feature or solving a bug.
This will decrease VS.NET memory usage and let me see all of the required data _without_ switching VS.NET instances and most important – no need to “build” the puzzle by hand.
Thinking about the constant time usage trade-off, I want to hear from you guys. Would you use this sort of utility? Do you really need it? Do you need any other functionality? Want to help me build it?