How To Write an Automatic Update System Part 1 – the Simplest Auto Update Ever

You are working on finishing the first version of your software product, you want to release it as soon as possible, you already decided to delay some features to the next version and you don't have the time to write an automatic update feature or to buy and integrate an existing solution. What do you do?

You just add a page to your web site, the page just says there is no update available, in your application the "check for updates" button or menu item just opens that page in the user's default browser. When a new version is available - redirect from this page into your download page.

You can make things a bit nicer by opening the page in a browser embedded in your application and matching the application's graphic style on the updates page, but this takes extra work, so you might as well create a real auto-update feature instead – in part 2 I'll talk about how to easily build one.

This is the system I used in yaTImer 1.0, in yaTimer 1.0.1 I switched to the system I will describe in part 2 of this series.

UPDATE: Source code is here

NOTE: This is the first post in a series, it is about how to get the "check for updates" button working as quickly as possible so you can ship your software, please continue reading the next parts for the real auto-upadate feature

posted @ Sunday, June 17, 2007 5:44 PM

Comments on this entry:

# re: How To Write an Automatic Update System Part 1 – the Simplest Auto Update Ever

Left by Vighnesh at 6/11/2009 10:04 AM

I am not sure if this provides any useful information.

# re: How To Write an Automatic Update System Part 1 – the Simplest Auto Update Ever

Left by The Man from U.N.C.L.E. at 7/10/2009 1:20 PM

Not exactly auto update is it. A better title would be 'How to launch a web page in a browser'. There is infact nothing auto and nothing update in this article, and launching a web page is not exactly rocket science!

Your comment:



 (will not be displayed)


 
 
Please add 5 and 8 and type the answer here: