Scott Hanselman’s latest post explains how he keeps his source code organized. His method is far too complicated. I don’t want to bash the guy too badly, he’s obviously coming out of some kind of sugar coma after his Kool-Aid incident. I mean for gods sake, he’s actually considering going to Tech Ed. Proof of mental instability.
Scott’s system is cute, but I don’t understand why he wants to make things harder for himself instead of using the default system built into Visual Studio 2003? When you create a new item in a Visual Studio project, it automatically assigns an ENGLISH name (I mean, c’mon look at his structure. “reffiles’? That’s not english, that’s like … French or something, maybe Spanish) to the item you’ve created as well as AUTOMATICALLY appending a numerical representation of a … err .. number to the end of the file name. What’s more the name chosen REPRESENTS WHAT THE ITEM IS. This sytem is infinitely scalable. I mean I suppose you might run into the upper limit for integers, but then there’s always longs right? They’ve got to be longer.
Also, look at his file structure. I keep all of my project files in one directory, for ALL of my applications. I mean if you are really using OOP it doesn’t matter what objects you use in what projects. They should all be able to work together right? Using the built in naming system allows me to quickly sort and classify all of my code files much more easily than Scott’s system does. I mean look at his system. Just to get to your Webforms you have to make like one, two … I don’t know. Like a billion clicks. Now, look at my source code “tree” and tell me where you can find the WebForms.
DUH, right at the bottom where they should be. In my system, like components are automatically grouped together. No more digging around trying to find the correct class files. All the class files are right at the top under ‘c’. You’ll also notice I let Visual Studio name my application as well, ‘WebApplication1′. In another stroke of genius, the Visual Studio developers have embedded a method for delivering important metrics to our supervisors at review time. ‘How many projects did you work on this year Scott?’ ‘Well, my latest project is called WebApplication34 and I was only up to 30 at my last review, so I’ve worked on four. Two Web based applications and one CustomControl’. See, it’s so much easier. Compiling, whether from within Visual Studio or nAnt or even from the command line is as simple as pointing the compiler at the directory and specifying ‘*’.
You don’t have to be good, just smart.