After reading a couple articles about web MVC architecture, I'm conflicted about how to go about creating an modern web application nowadays.
The previous web paradigm consisted of:
Model: Business logic server
View: Dummy browser client that showed whatever the controller told it to show.
Controller: Web server tier that maintained the state and communicated between the Model and View and updated the view accordingly.
Given that browsers are more powerful than before and can use javascript to run entire "desktop" applications (think Google docs), is it necessary to maintain this same paradigm? Currently I'm entertaining a different paradigm, and I wanted the professional community's input:
- Every component of the MVC triad should reside on the client, not distributed between the client and a server.
- The client interacts with services whenever the client needs data.
In the three-tier architecture, this removes the web-tier. Once the program client is downloaded, there's no need to communicate with the web server again for the program logic.
My question is two-fold:
What is the validity of using web frameworks (like Spring MVC, Stripes, etc.) for this kind of application?
What is the drawback of throwing away the proven technology of the previous web development approach?