Hey gang. I'm considering implementing a new feature into the app launchers and wanted to get feedback and suggestions. The idea is to let the individual app launchers be able to check for updates of their apps independently of the PortableApps.com Platform. This would be designed for folks that use the apps outside the platform and would automatically be disabled when the launcher is used in conjunction with the platform.
The actual check would be much lighter weight than the PortableApps.com Platform's updater. Instead of a full 40K app database to download, it would just be downloading a single two line file for just that app that would just check the PackageVersion. And it wouldn't handle the download and automatic update to the app, which would introduce a ton of support headaches especially if a bug is found.
Here's how it would work. When a user launches, say, 7-Zip Portable directly without using the PortableApps.com Platform, the launcher will run a parallel process that will hit the PA.c web server and pull 7-Zip's version file. It would compare the PackageVersion within it to the PackageVersion of the app. If there is a new version, a message box would be displayed to the user saying that 'a new version of 7-Zip Portable is available, would you like to visit the app's homepage to download the update?' or similar. If the user clicks Yes, the browser is opened to the 7-Zip Portable homepage. If the user clicks No, a second messagebox would appear saying 'Would you like to be notified when updates to 7-Zip Portable are available?'. If the user clicks Yes, the parallel process exits. If the user clicks No, the parallel process will save the user's preference to a settings file within the Data directory and exit. The user would also be able to disable the update check without triggering it by manually setting an INI preference themselves. The check mechanism would just use the same settings Windows is already configured with (same as the PA.c Platform's automatic connection setting) and there would be no options to set proxies or anything like that to minimize code complexity and support. If the update check is unable to connect due to a Windows issue, software firewall, etc, it will just silently fail and exit without alerting the user.
The goal here is to ensure users know when updates are available for the apps they use even if they don't use the PortableApps.com Platform, particularly since security issues can come up and be exploited quickly. The example app we use here, 7-Zip, recently had an exploit like this which got me thinking about non-platform users. And I've got a plan on how to implement this on the server side so everything is fully cached and served to the checking launchers in about 500 bytes rather than pulling the full 40K app database or worrying about database hits.
So, I'm wondering what thoughts other folks have on this? Ideas, improvements, comments?
Thanks in advance for your input.