by Mathieu
5. June 2008 20:46
Before going further, it can be useful to have a look at a "standard" solution tree, that I will be using for upcoming posts :
- Apps : applications : Winforms, Console, WebForms, everything that is executable
- Libs : class libraries, module, components : everything that is not executable.
- References : every external libraries used in your solution (NHibernate, Castle Project, etc)(not visible in Visual Studio, only in the "physical" directory)
- Scripts : build scripts, deployments scripts
- Tests : unit tests
Important : if you create solution folders inside Visual Studion you have to physical" folder, beware when you add projects to them. By default, Visual Studio adds them to the physical solution root dir. It's the same for solution elements, that are created inside solution root. It's safer to create solution elements manually, inside the desired folder, then add them to the solution by "Add existing element".
This solution tree is only for demonstration purpose. It's probably not the best, but it's not the worst either. It's always nice to have consistency between projects, and it simplifies greatly continuous integration process.
Regarding external libraries, I chose to link them on a "by solution" basis : it's simplier to make an update : you don't worry about breaking something, you can update your libraries solution by solution and test accordingly.