Search code examples
architecturen-layer

When to use a Visual Studio Project for a Layer in a Layered Architecture? What are the benefits for physical seperation?


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.


Solution

  • 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