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.

1 Answer 1


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).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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