I think that “language agnostic” will be the limiting factor here. Applications come in so many shapes and sizes that there is no answer to one size. I implemented several automatic updates in several languages, and none of them looked alike.
The most common philosophy is that the application checks with some home location (web address, web request, corporate network location, etc.) to ask if this version is current, or ask which latest version . If the response triggers an update, this process will be different for each situation.
A popular alternative is to invite the home location to run the script when the application starts. The script can check the version, download updates if necessary, and request usage feedback, for example.
Perhaps we can better help if you limit your options.
UPDATE. The “fix” approach also depends on the nature of the application, and there is a very wide variety. For example, if you have one executable, then probably the most practical is to replace the executable. If your application has a lot of files, you should look for ways to minimize the number of replaced files. If your application is customized or parameterized, you should strive to minimize reinstallation efforts. If your application uses interpreted code (for example, Excel VBA or MS Access MDB), you can replace parts of the code. In a Java application, you may need to replace the JAR file, or even a subset of the contents of the JAR. You will also need to find out the current version of the client and update it accordingly. I could go on and on, but I hope you see my point of view on diversity. This is one of those cases where the best answer usually starts with "Well, it depends ...!" This is why so many answers include "Please narrow your options."
Ken Paul Oct. 24 '08 at 3:12 2008-10-24 03:12
source share