Chicinho
Chicinho

Reputation: 41

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.

Upvotes: 0

Views: 299

Answers (2)

Chicinho
Chicinho

Reputation: 41

I watched the video 'Creating N-Tier Application in C#' today from Steve Smith on Pluralsight. This video helped me to find the right answer for me. When you logically seperate your application into layers but combine them physically into a single assembly, the main advantages are simple deployment and performance.

You gain performance because you have no machine and process boundaries. The deployment is simple because you can deploy a single artefact of your build.

The physicall seperation of the architecture into layers is the first step before the application can be deployed in a different manner. Furthermore you can apply Service Oriented Architecture with physical separation.

Upvotes: 1

Daniel
Daniel

Reputation: 9829

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

Upvotes: 3

Related Questions