▲ | zkmon 4 days ago | |
It was basically the 3-tier architecture hijacked by some authors with hyper sales-pitch who messed it up beyond recognition. The 3-tier model has 3 simple layers - Data, Business, Front-end. The MVC inventors called data as "Model" - I could not get my head around this weird naming. What does "Model" mean in plain English? And why do you need those dotted lines between Front-end and Data layers bypassing the Business layer? MVC is a fake that lasted for decades. | ||
▲ | anon7725 4 days ago | parent | next [-] | |
MVC came from desktop applications. It was later repurposed to client-server apps when the web arrived, but it was always an impedance mismatch. In desktop GUI apps, the delineation is much crisper: the model is the data that the application manages (the CAD geometry, the document, etc). The view is one or more renderings of the data to screen, and the controller is the input and command processor that updates both the model and the view. Storage is not central to this architecture - it exists, of course, but it’s not really described as part of these core relationships. | ||
▲ | dragonwriter 4 days ago | parent | prev | next [-] | |
That’s a nice story, but completely ahistorical; MVC was not originally a distributed architecture but an architecture for local desktop GUI apps. While it was later applied to client/server apps, that isn’t its origin (and even in that context it was never equivalent to the 3-tier model, which you can easily note by all three of M, V, and C being represented by backend components in web frameworks like Rails—the View being the backend component that renders what is sent to the frontend in that version.) | ||
▲ | mjevans 4 days ago | parent | prev [-] | |
It makes so much more sense in that light. It was __sold__ not to programmers, but to NON programmers. The model is the underlying shape (the data in storage). The Controller is like the security guard for the warehouse / building. The View is what's presented to external clients (end users). |