Finally, the last post in the auto-update series. Previous posts: part 1, 2, 3, 4, 5, 6 and 7
For 8 posts I've been writing about the technical details of building a good automatic update component from scratch, what I haven't wrote is that it's probably silly to write your own instead of using something that already works.
ClickOnce is built into .net (version 2.0 and later) and is extremely easy to use, all you have to install your software using ClickOnce. You prepare the ClickOnce package – just a few files on a web server (all your program files and a manifest file that can be automatically generated by developer studio).
The user clicks a link to the manifest file and .net will magically download and install your program and all prerequisites (the .net framework itself, SQL server express etc.).
If your customer already have all prerequisites on his/hers computer ClickOnce installation is quick and painless, if some of the prerequisites (especially the .net framework) are missing the installation is long and not so painless.
An important feature of ClickOnce (at least from this post point of view) is that it includes an auto-update feature, you replace the files on the server with the latest version and clients will update automatically.
Highly recommended if you can expect your prerequisites are already installed on your customer's computer.
The update component from Microsoft patterns and practices "Enterprise Library"
To use the update application block you need to add 6 dlls, 3 configuration files and one manifest to your program, at that much "extra weight" it is unsuitable for my application – so I have no experience with it.
It is very customizable but I have no idea how it handles the basics (like updating without having the user log in as an administrator).
If you already use Enterprise Library give it a try, otherwise, why bother?
Off The Shelf Automatic Update Component
There are off-the-shelf components you can buy, it is very likely that a company that focuses on automatic update components can build a better one then you, they can spend all their time on auto-update while you have to build your application.
You should evaluate those off-the-shelf solutions before considering building your own.
posted @ Tuesday, August 7, 2007 5:32 PM