So I admit it’s a fairly pompous title, but at least you are reading it. In case you have been under a rock for the last few years, Microsoft's bread 'n' butter (The Windows API) is under direct assault by pretty much the entire free world. Not only that, but they are losing. Innovation on MS's desktop platform is pretty much non-existent. The problem isn't that Win32 or .Net are bad platforms, quite the contrary. The problem is deployment. The amount of effort involved in deploying and maintaining an application built on these platforms, is just enormous. This is the one spot Microsoft has let its developers, developers, developers down, down, down.
Let’s break it down. The most logical alternative to a desktop application is a web application. Take a look at how the two platforms compare:
1) Initial Deployment
Web - It's usually as simple as getting someone to visit your site and fill out a form.
Desktop - You need to do essentially every that a web app has to do, plus they user needs to download/execute a bootstrapper to install prerequisites as well as run the actual installer. This process is riddled with problems including, yet not exclusive to, security issues, versioning problems, and scalability concerns. Not to mention that authoring an MSI, that does more than the most trivial tasks, requires a PhD in absurdity. In short getting an application installed and running properly on an arbitrary configuration of Windows, is an extremely difficult task.
2) Updates
Web - Once again it's simple and easy. Basically you just change what ever files need changing. It almost never requires the end user to do anything.
Desktop - This is an absolute nightmare. The platform offers an application absolutely zero help out of the box. Most, if not all, of the applications that update themselves, rely on custom updaters, that at a bare minimum involve the user clicking through a few prompts, which literally ask the user a rhetorical question about whether or not they want a better version of the program. If you try to offer a solution that requires no interaction and you want to support vista, you will suffer will die, long before you finish. The one exception to this is gtalk, but then again gtalk doesn't even use the windows installer (see #1), nor does it run out the program files directory, and its Google (read: endless supply of money).
So how does Microsoft win? It should be fairly obvious by now, make deploying desktop applications as easy as is to deploy web applications. Fine, that may be a stretch, but make them as easy as possible, and make this part of the platform. There is no excuse either. A good start to this problem would be to open up windows update, and let ISV's piggyback off from this service.