Submitting code changes / modifications

Topics: Updater Application Block
Feb 20, 2004 at 11:56 PM
originally posted by: rudman

Hi all,

I have added quite a bit to the current Updater Application Block and would like to contribute this back to the community. What is the best way to go about doing this ( submitting the source )?

List of changes / TODO items / suggestions ...

1) Changed the server manifest to include the following
1.1) minimumRequiredVersion element

1.2) File Element has had the following added ...

1.2.1) src attribute - this is relative to the "updateLocation" URL where the file can be retrieved.

1.2.2) dest attribute - this is relative to the application installation folder, where files will eventually be copied to.

1.2.3) md5 - A MD5 checksum of the file. This way the client can checksum the file on it's side and determine if the file needs to be downloaded. My thinking here is that all files will be "deployed" for each version this way allowing a client to update itself from version straight to with no problems.

1.2.4) compression - has values for type of compression or none if the file is not compressed. Compressed files will obviously download quicker.

1.2.5) action - haven't implemented this yet, but the idea is to allow the registration of COM .dll's or installation of assemblies into the GAC.

1.2.6) size - the file size in bytes. This way the client can determine how large the entire download will be.

2) I've made most of the changes to the source to implement the above. This includes the decompression of files. I've also added / made various small changes .. too many to list here, for example added a DownloadProgress event and a NoUpdateAvailable event.

1) Have the client send it's RSA public key to the server so that a process running on the server can encrypt the server manifest file. I don't like having the url "exposed", as with my current way of thinking anyone would be able to download the all files in the application suite.

2) While the BITS technology is pretty neat, I would like to have a downloader which uses 100% of available bandwidth. This would be used in situations where the user has click "check for updates" and the update happens interactively. Has anyone developed a ForegroundDownloader?

1) Add a IInstall interface. I think that once the files are downloaded there needs to be an installation routine. I know of the post process but I think a separate "installation" routine should happen before the post process. This routine should probably be initiated in a separate process to eliminate the possibility of getting "file in use" errors.

2) Add a ICompress interface. This way any compression library can be used.

And of course now that I'm posting all this I can't remember everything which I had in mind. Anyways, here's some of the stuff. Please let me know how I should go about submitting changes. Is there a code maintainer. How will the community decide what functionality should be included / excluded from the source. Is this up to the community?

Mar 7, 2004 at 4:30 AM
originally posted by: JamesCadd

These sound like great updates. I'd like to see them posted; not sure how you can submit them though.
Mar 7, 2004 at 10:32 AM
originally posted by: Duncanma

rudman, can you submit your changes as a .zip file into the source control section of this workspace?

If that doesn't work, send them to me and I'll make sure they get posted somewhere visible to everyone else...
Apr 3, 2004 at 5:15 AM
originally posted by: GravyBod

All these files available yet? Rudman's changes look very interesting and I would like to try them but I just can't see them in source control.

I may be being a little stupid here but any help would be great.


Jun 25, 2004 at 12:38 AM
originally posted by: hermo


I am very interested in the MD5 checksum functionality that you listed.

Have you uploaded your changes yet?

I would be very grateful if you could share your code with me so that I can have a look at how you do the MD5 checksum.


Jul 2, 2004 at 4:27 AM
originally posted by: willr3

Have the files been uploaded and if so where can I find them? I basically have to create these same functionalities (and perhaps a few more) and I'd rather not try to invent the wheel all over again.
Oct 14, 2004 at 7:04 AM
originally posted by: RagingKore

Hit me baby one more time!!!


Where is this wonderfull update?