We use a technology called ClickOnce to keep all of our clients up-to-date on the latest version of ParaPlan Desktop. ClickOnce enables our software to install over the internet and perform background updates over the internet. ParaPlan automatically checks for updates and install them in the background while the user continues to perform their tasks in ParaPlan. The next time the user starts using ParaPlan, they will be using the newer version. We have the ability to let the user know they need to update in the case of a major update that impacts the database. Most cases, the user doesn’t even know the update has been applied. We find this provides a level of continuity with the software experience that users appreciate.
We also don’t check for updates until AFTER they have started working. We feel that people open our software to get stuff done and the last thing they want to concern themselves with is downloading and installing a new update when they have work to do!
Manually initiate an update
A user can always check the About screen to see the current version of the software and the date the software was released. Launching this screen will also perform a manual check for updates. If an update was found, it will display that to the user and let them know when they need to restart.
Lifecycle of an update
- A new feature is added to ParaPlan in Visual Studio.
- The feature is checked into our internal testing queue.
- Manual and automatic tests (unit tests) are performed.
- If all the tests pass, the feature is checked into the release branch of TFS.
- TFS compiles the new feature into ParaPlan and runs another set of automatic tests.
- If those tests pass, TFS builds a .application with the new feature and places it on software.engraph.com.
- On each client’s computer, ParaPlan will check software.engraph.com for a new version of the .application file every four hours.
- If a new version is found, ParaPlan will download the new feature and install it while the user is still working in ParaPlan.
- If the new feature is very important, ParaPlan will alert the user and instruct them to restart ParaPlan.
- If it was not a crucial update, the user will continue to work in the old version. The next time they restart, they will have the new version.
From a development standpoint, the process is completely automated outside of the manual testing process. This allows us to push out frequent updates and support a large number of clients.
From a user’s standpoint, their experience is contiguous as they receive new updates. We can push out frequent updates without the user having their workflow interrupted.