Monday, October 20, 2008

IntelliGantt Add In now supports ClickOnce

One of the hardest decisions to make as a software company is not only how to develop the bits but also how best to send them. I've long thought that web-based solutions are actually, from a user interaction perspective, a poorer experience than comparable rich client applications. The fundamental reason is HTML is a presentation environment with javascript and other 'glue' bolted on to aid user interaction whereas a rich client has the full power of your desktop to work with.

However, the delivery of a web-based solution has been so superior that it has tipped the balance in their favor. Given two equal applications, the web-based solution wins because the installation and update is as simple as a click (ideally).

Not that rich clients will ever go away-- after all, what is the browser itself? But they could certainly learn something from the efficiencies of web delivery. Thankfully, it looks like the latest incarnation of ClickOnce is on the right track.

Our 'old' IntelliGantt product suite (the IntelliGantt rich client and the Add Ins for Microsoft Project and Mindjet MindManager) were delivered with traditional installtion programs. However, rounding back to that initial 'delivery choice', we are using the very latest ClickOnce technology with .NET 3.5 SP1 to deliever the new releases.


1) Microsoft addressed the installation and security model to be on par with a web applications 'sandbox'.
2) They also built in automatic updating
3) They reduced the complextiy of actual installation (supporting frameworks, redistributables and such)
4) They're supporting a wider delivery path (Apache, Firefox, etc)

With the latest incarnation Microsoft also made a very wise choice-- support for servers other than IIS to ClickOnce distribution! This will have huge ramifications strategically (see OpEd below), but there are still a few hiccups we ran in to. Here's what we did to address them:

Make sure your web server supports the required mime types!

Our site runs on Apache and as such we had to add the following mime types in an .htaccess file in order for ClickOnce to download all the bits correctly:

AddType application/x-ms-application application
AddType application/x-ms-manifest manifest
AddType application/octet-stream deploy

These are described in detail on MSDN.

We also found out, by actually deploying our new Microsoft Project Add In to customers that the following mime type is needed for the VSTO file itself:

AddType application/x-ms-vsto vsto

With the possiblity that msu (microsoftupdate)and msp (microsoftpatch) are also needed.

We've been very pleased with the result as not only do users experience a seamless installation, but every update we make is automatically updated for all our clients as well. As a result, we've been able to respond just as quickly as a web-solution, download the bits just as easily and still take advantage of the tremendous power on everyone's desktop.

Web solutions versus desktop solutions is really a battle between what will be the application container going forward-- to OS or the Browser. Didn't we go through this already with Microsoft and Netscape back in the late 90s? Yes, and Netscape lost. And so did Microsoft. Why? Because rather then answering the technology advantages of the web, Microsoft used their business advantage to carry the day. However, the door was still open in the weeks and months that followed. As a result, Google, among others, were able to walk through it and plant their flags.

Does ClickOnce finally start levelling the playing field? I think so, though in truth the lines will most likely totally blur between what is a desktop app and what is a web app. For instance, how different is a Flash package downloaded and run from cache in your web-browser than a .NET app downloaded and run in your OS?

Not much.

It's just nice to finally have some of the same tools that makes the web so successful. Good job to Microsoft's ClickOnce team!

No comments: