Today I discussed a software architecture topic with my co-worker. We don't know why most examples for layered software architecture uses a separate Visual Studio Project? What are disadvantages of logical separating the layers into Visual Studio Projects? Our team consist of 4 to 6 software developers.
I'm also asking myself the same question when starting a new project...
In my opinion:
Separation in Visual Studio Projects has the benefits:
- that you do not need to recompile projects that have not been changed. In large projects this may lead to faster compilation times.
- you can reuse several components by including a former compiled DLL in a different project. E.g. something like a Framework DLL or some core component you develop in each project.
- thinking of large projects: several teams work on several projects: If all the people would just use one project you would have a huge load of merge conflicts when you would just work on a single Project