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.