After a lot of reading i still unable to understand the difference between the design pattern MVC and 3-tier architecture. I see that the model in mvc is the same as business layer in 3-tier. In all websites i searched in, i found that MVC is an applicatif architecture for presentation layer in 3-tier architecture.
-
*I see that the model in mvc is the same as business layer in 3-tier.* It's not remotely the same. Models are not a layer, nor are views. – Erik Philips Oct 25 '16 at 18:51
-
But both the Model and business layer are meant to work on data (ie do a server validation). – TarAll Oct 25 '16 at 20:17
-
Sure they can, but they aren't in separate layers. Models, Views and Controllers are tightly coupled in [tag:asp.net-mvc]. Maybe you should remove that tag if you aren't specifically talking about the asp.net-mvc implementation. – Erik Philips Oct 25 '16 at 21:08
1 Answers
I guess in a sense a MVC project could be considered a 3-tiered application. It has a data layer, view layer and a logic layer. However, all 3 of these layers are tightly coupled to the MVC project.
On the otherhand an n-tiered application may consist of a UI application(ie. MVC web app) which calls a web service(ie. WCF) which then calls a Business Logic/Data Access layer(ie. LINQ-> SQL, Database calls).
The main difference I see is MVC is tightly coupled to it's architecture. By this I mean, you can not just remove the controller/models without rebuilding the application. N-tiered applications on the other hand are more loosely coupled. Meaning, I could switch out the WCF layer for Web API and the rest of my application would not care. This is an advantage where growth/expansion may required.

- 4,773
- 8
- 53
- 91