Skip to content

The Wildcard Updater

Hours: ~60. Produced: 2008.

I created the Wildcard Updater in 2008, for updating various applications I built for Wildcard Technologies, a company which I started with a partner and in which I had a 50% ownership stake. Even though we were working mostly at offshore projects, I dedicated a fair amount of time to in-house products.

Two of those in-house products have grown large enough to require and feature the Live Updates insured by the Wildcard Updater System. As a matter of fact, they are featured on this website: eTimeKeep and The NeverFail Messenger.

I mentioned the “Wildcard Updater System”. That’s because this is not simply an application-specific updater. I am a huge fan of code re-usability, so I created a system which I could use in all my applications.

Technical Aspects

The system relies on the Wildcard Update Builder, which you can see in the screenshot below. This is the Administration-side of the Wildcard Update System. It downloads a binary-serialized Update Data File from a certain Update Website (configurable) and allows us to set up the currently used version for any of our products. The file can then be saved and uploaded back to the Update Website.

Screenshot of the Wildcard Updater Admin Screen

The Wildcard Updater Admin Screen

Any Applications which use the Wildcard Updater System will usually check the Update Website on startup or during their execution. The Wildcard Updater Class Library will be used to decode the data found in the Update Data File. This data will tell the Application what version is currently set as Active. This way, we can even roll back to previous versions whenever we wish to.

When the Application determines that an update is required, it will download the Update Archive from the Update Website and then shut itself down, but not before launching the Wildcard Updater File Installer. This is a separate application which takes care of unpacking the Update Archive and updating the required files. The system uses the 7Zip SDK for superb compression rates and a File System Specification Structure for very detailed operations, including the patching of files.

Screenshot of Wildcard Updater File Installer

The Wildcard Updater File Installer

The system is highly redundant. It can use multiple Update Servers: in case a server is down, connection to another one will be attempted. The Update Data file can be disseminated to all websites at once using the Update Builder. Furthermore, strict hash-checks are employed to safe-guard the update process.

And of course, to ensure no unauthorized persons can bust into our update system, the Update Builder requires login before allowing access to the modification of the Update File.

Screenshot of the Wildcard Updater Login Screen

The Wildcard Updater Login Screen

Other Aspects

Like with any project, there are still many features which I would like to implement. But alas, like with any project (again), time is unforgiving. Greater priorities have pulled me away from C# in the recent years, so I haven’t had much use for the Wildcard Updater lately.

I wanted to Open Source it, but even that takes a bit of time, especially with systems of greater complexity (which rely on several applications & layers), mostly because of the functional diagrams and documentation I like to write when releasing something into the wild. Even so, I think it’s quite possible that the Wildcard Updater has a (glorious?) future ahead of it.

Spread The Love, Share Our Article

Related Posts