The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Web-based Software Installer


Currently we are distributing our desktop software with a simple installer in a single package that the user downloads and runs. We also wrote our own auto-updater which is bundled, which will keep the users install up-to-date (unless they kill it or say no)

We would like to move to a web-based installer, because we are about to release both Mac and Linux versions of our software and rather than presenting a multitude of download links for different platforms, versions, etc. we would rather have a web-based installer do all the work. Also, web based installers are much easier for users.

I have seen web-based installers work before at GoToMyPC and Windows AutoUpdate. The first is an example of a Java applet (or it might have been a WebStart app, can't recall) and the second an ActiveX control. Both have their pro's and con's but judging from our server logs Java is far more common (97.8%) than IE (41%)

Another reason why we would like web-based is because we also have a web version of our product, so giving those users the option of clicking a link to install a desktop client is much easier than asking them to download, click, click, agree, click, click, click, ok, reboot.

So, we could build this ourselves, but we prefer using off-the-shelf when we can. So does anybody know of a Java web-based application installer that can detect the target platform and do standard installer actions?

Bonus points if it can read an NSIS script

Nik Cubrilovic Send private email
Sunday, January 28, 2007
Not an answer to your question, but I'm amazed you consider a Windows-only technology like ActiveX to have any pros at all if the reason you're looking at web technology at all is that you're trying to expand into the Mac and Linux markets... ;)

NSIS is also a Windows-only technology, so I doubt you'll find anything that matches your ideal solution.

Your simplest answer, in fact, is just to continue to use your current offline solution for Windows.  Mac and Linux tend not to use installers as such anyway, so just use simple browser sniffing to detect those platforms and present different download links.

The advantage of this is threefold: you don't need to replace a Windows solution that works just fine as it is, you don't need to invest in any new technology at all, and - most importantly - computers don't need to have an active internet connection to install your software.

(Just make the browser sniffing user-overrideable, please, if you go down that route.  There are valid reasons why someone might want to do things like download the Mac version from a Windows machine, etc.)
Sunday, January 28, 2007
I know of two installers that are cross-platform, but I have never used them. As far as I know they are not web-based, but they might help with your cross-platform issues: BitRock ( ) and InstallAnywhere ( )
Gareth Hayter Send private email
Sunday, January 28, 2007
Hey thanks for your comments.

Iago, you are right, ActiveX is by no means a solution. I mentioned it for sake of 'completeness'.

The web based installer would be the primary way of installing, but we would always link to the offline installers as well.

As for understanding NSIS, it would just be an applet that is able to understand what the NSIS script is doing, so while the NSIS compiler is windows-only, the script itself (because it is plain-text) is cross-platform - I just haven't found a compiler for it that could be used in an applet.

Thanks for the pointers Gareth, I had heard of BitRock but never tried it, will have to take a closer look.
Nik Cubrilovic Send private email
Monday, January 29, 2007
In the long run, I'd like to ask you to be open to the possibility of maintaining separate installers for each platiform. In general, the web browser/server does a good job of figuring out where a person is coming from, and then providing just the one link to the appropriate installer.  As an example, check out Firefox.

I agree it appears to be more work, but at the same time you have to realize that if you pick a universal installer, and find and fix a bug for Gentoo, you're still going to have to test it in Gentoo, Debian, Redhat, OS X, and Windows to make sure your fix didn't break things for them. If you break them up into separate programs, and find a bug in Gentoo, you really only have to test Gentoo.

I also believe that once Vista becomes widespread, it will be much harder to get Windows users to install directly from the web, due to Microsoft's security precautions.
Monday, January 29, 2007
I'd tend to agree with using targeted installers.

I doubt Java is any sort of solution at all without extreme care.  As it is users blunder into enough "your Java isn't good enough, please install yet another 20 MB download - and oh, we're gonna stick a coffee cup in your tray" prompts from applets.

And yes, Vista does enforce a lot of rules to get a program installed unless you follow the prescribed path.
Monday, January 29, 2007

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz