Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Basically, I'm trying to understand why layered and tiered are that different, and why they don't translate easily to each other.

I understand that layered could be 3 separate class files for UI, BL and DAL. Whereas tiered can be a Project for the UI, which links to a BL project which links to a DAL like entity framework, and then a database. So why are/aren't they easily translatable?

Hope that makes sense, Thanks.

share|improve this question
up vote 3 down vote accepted

Both concepts introduce a separation of concerns. But for layers, seperation of concerns is usually the main goal. Tiers are used for scalability and load distribution/allocation purposes, and separation of concerns is more a side effect there.

That also explains why the concepts are not easily translatable. In a layered architecture, a feature is usually implemented in the layer where it fits best semantically, and you try to avoid redundancy between layers. In tiers, you implement a feature where you have the computing ressources for it. Redundancy between tiers is common (e.g. replicate some business logic in the UI tier, but in the business logic layer, the check runs only once when data is saved, in the UI layer the check runs after each user input).

share|improve this answer
Thanks man, appreciate it. – Rhys Drury May 18 '13 at 20:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.