Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why are web apps prevalent for internal corporate apps?

OK, I realize that people don't like to install stuff on their PCs if they don't have to and that is the primary advantage of web apps over "desktop" that run locally.

But for corporate internal applications where security is not an issue, if an application is such that its user base has the app up 100% of the time, using it exclusively as their primary tool, wouldn't a desktop app be a better choice?

I don't have any experience/know much about WPF web applications, but my impression is that it is essentially an application that is running locally on your Windows PC. I am more familiar with what is probably older technology, WinForms, specifically, deploying a WinForm app via ClickOnce technology.

It seems to me that Click-Once (and presumably WPF Web Apps) have, for practical purposes, solved the dll hell deployment issues of the past, yet it seems to me that the appeal of using Web apps internally was to avoid the dll hell associated with local installations. Yet, with this problem solved, why do companies still avoid/fear apps that involve local installation and gravitate so quickly to web apps?

It seems to me that the advantages of desktop apps are

1) COST - Desktop apps are just conceptually simpler because you have the full resources of the local machine and you have state. As a result, desktop apps GOT TO BE much cheaper to develop for the same functionality. Just look at all the complicated client side/server sided Ajax fancy code one has to go through to do things that would be trivial in a desktop app. I picture people disputing this point but to me it is obvious and beyond debate.

2) Desktop apps are typically richer. Web apps are at best comparable at the expense of more complicated / more expensive to develop code. (a corrolary to 1)

I can list more, but these should be enough...

Obviously desktop apps wouldn't be appropriate for all internal web sites. But take this as an example and tell me if you think a web deployed desktop app is the better choice:

A Help Desk application used 8 hours/day every day by the users and is the only app running on their PCs. Furthermore, application is patched seldom.

My feeling is that people get in a rut and once they know something (eg, web apps) it is the solution for everything. What do you say?

Edit #1: Here's an example of a Click Once desktop app (an integrated front end for Rational Clearquest/Sharepoint/PVCS/Mercury for managing problem tickets) that takes advantage of the computer power of the client to store information locally and let the user slice and dice the data in different ways w/o hitting the server each time while still allowing the user to link real time to the live data to update individual records. It's kind of like a spreadsheet download that maintains links to server data should the user want to perform an update.

Sure you can imitate this functionality on the web but I think that the the dev effort would be much greater and you wouldn't get this type of responsiveness which would be important to a user that spends a lot of time in the app.

like image 625
Chad Avatar asked Jan 20 '10 01:01

Chad


People also ask

Why are Web Apps important?

Web apps can protect websites and software programs. They are designed for more privacy and a high level of security. With so many web technologies on the market today, it can be easy to protect your app. Markets like Europe and Asia rely on mobile apps for security reasons.

What is a benefit of making a web app instead of a native app?

Advantages of Web Apps: Web apps are easy to maintain, as they have a common codebase regardless of the operating system. These apps can be set to update themselves or automatically. Web Apps easier and faster to build than native mobile apps.


1 Answers

Web applications are prevlent for many reasons:

  1. Its easy to secure
  2. It creates a standard point of reference that everyone can access:
  3. Does not lockout people using different platforms.
  4. Easier for people to access from outside the network (it puts the security issues to the routers/vpn etc)
  5. Less tech support (standard running platform)
  6. Easier to support (if it goes down then you have a critical response team that can fix that, rather than 1000s of machines that randomly go down)
  7. Central point of storage of data (easier to backup and access)
  8. Can scale better
  9. Its easier to build or reuse an enterprise framework than to find/create a distributed component set to work with a changing environment (LDAP, different dbs, different backups, synchronization)
  10. Less subjected to attackers (worms, people modifying the client etc)
  11. Desktop clients may sometimes have hard coded environments, or require certain tool sets which make new users a pain to setup
  12. Its cheaper to deal with a server rather than 1000s of clients. You can setup the systems to be reductant and have a quick failsave. Yes the server equipment costs more by a factor, but it costs less to maintain in the long run.
like image 58
monksy Avatar answered Oct 16 '22 21:10

monksy