views:

49

answers:

1

How do software houses like Microsoft or anti-virus companies patch/update their software?

Anti virus companies dont send the complete executable; only new virus signatures I suppose. Similarly, Ive noticed microsoft sends certain files to the '$NtUninstallKB......$' folder that it creates when it the windows update program runs. I suppose there is an installer in each such folder there that replaces only those dlls that need to be updated or fixed.

Questions

Is there a universal method for doing this or does each house employ their own methods?

I dont want to re-send the entire application to each individual client. Suppose if only certain dlls need to be changed or maybe some more added, how should I go about planning my final compiled application.

  • Do I need to look at separating my application into multiple assemblies?
  • If yes, then is there some compilation method that is allows to pack specific classes into a particular dll?

What I have put down here are my thoughts on the subject and I could be wrong. Could anyone throw some light on this please? I am looking at implementing such a deployment and patch management technique for the .net platform.

Thanks for your time.

+1  A: 

There are several ways you can do this that I see, and those include making your application just a mere shell that dynamically loads in functionality which you replace, just outright replacing the files involved in the upgrade (what most vendors currently do), or, the interesting way: Binary diffs. I'd really take a look at the last item.

jer