Originally posted by Allan Lykke Christensen:
The upsides:
- Allows the application to be easily used on many platforms
- Allows the application to be used by many people at the same time
- Allows the application to be accessed at geographical separate locations
First is irrelevant in most office environments as all users will have standardised desktops.
The others are strong arguments to use a browserbased system.
The downsides:
- Web applications does not support sophisticated user interaction
- Web applications are stateless (making it complicated to maintain the state in the application).
- Browser-hell (The developers end up spending much more time trying to get it to look and work properly in the many browsers and browser-versions.)
- Off-line users without Internet connection can't get access to the system (which can cause a lot of problems for off-side users who need to make changes in the system and replicate them when they get back to the office).
first: you can make surprisingly rich and sophisticated user interfaces using HTML, CSS and Javascript. Downside is that you may loose browser interoperability but read on...
second: Using the HTTP session you can store just about anything you need to, no problem
third: see also above. Most large browserbased applications are for internal use within companies where there is a single standardised browser environment. Browserhell as known with public websites is thereby avoided. Also, as time goes on ever more browsers have excellent standards support so as as long as you stay within the standards things should work reasonably consistently (the last non-conformant browsers are Netscape 4, IE 3 and Opera (older versions as well) which have by now miniscule marketshare).
last: no different there from any client/server system, except that indeed there is no local client which can be used offline. Such a client could conceivably be created just as for the traditional client/server system it would also have to be created specially (or special provisions made within the single client).
In all, I see no real disadvantages in a browserbased environment compared to traditional client/server or terminal applications, but they do offer the advantage of richer clients (over terminal applications) and/or less trouble maintaining applications on the client (over traditional client/server).
Effectively then, browserbased applications combine the best of terminal applications (all processing on a single machine, no client software to distribute and keep up to date) with the main advantage of client/server applications (rich user interfaces) (many client/server applications did hardly any work on the client anyway except data validation which you can do in Javascript as well if you want to).
They are inappropriate in those environments where traditionally terminal applications and client/server would be inappropriate which is those applications generating output directly onto the client machine or otherwise requiring direct access to the client machine (like barcode scanners).