So, the old school website philosophy, which is tried and true, is pretty easy to grasp. A full web application is an “enterprise” level MVC design pattern:
- You have your database and interface to that database (Model)
- You have your web server, which processes requests, reads/writes from the database, and servers web pages (Controller)
- You have your web pages, which submit information to the server in the form of POST or GET calls (View)
Simple, straightforward, and proven.
Well, with the introduction of AJAX methodologies almost a decade ago (has it really been that long??? Man, I’m getting old…) we now have a significant portion of the processing / logic being done on the web page itself.
This is a good thing! I’m definitely not saying it isn’t. I’m just punching your ticket on my thought train that led me to my “Aha!” moment…
And this is the “Aha!” moment:
HTML is now an application.
(The paradigm of ‘Site’ is dead)
Webpages aren’t webpages anymore. They’re applications. GET/POST should now be looked at as just-another-data-source for the Model of that application, and for “downloading” the application (FKA webpage).
That may not be an “Aha!” moment for anybody else, but the implications of it most definitely were for me:
- You don’t need Site Maps anymore.
– What formerly was a separate webpage is now just another view / attribute of the webpage ‘application’.
– For e.g.: Preferences (it used to be a separate page. Now it’s a panel, just like it would be in a fully-installed app)
- You can treat a webpage literally as you would a full application:
– It’s ‘downloaded’ and ‘installed’
– It has different modes / views (instead of separate pages)
– It stores information locally (instead of just using cookies)
– It consumes web services (instead of it being the View of a web service, ala POST/GET calls)
– It can live on its own, outside a browser (e.g. PhoneGap)
So there you have it- You can start treating HTML as an application. Not a pseudo-application. An actual application. The call to the web server is now the download+installation process, and nothing else.
I’m 100% sure I’m not the first person to think about it this way, but it was definitely a paradigm shift for me, and qualified in my mind as an “Aha!” moment.