If you're a good programmer that not only knows how to program, but also how programs work and how they're put together, you can make it so that the users only have to download the changed parts of the executable.
I'm not going to explain how programs are put together. It's very complicated and you're probably only going to learn the same way I did, by disassembling very small programs and compairing the machine code to the assembly. I don't know
that much about it myself, but I know enough to get by.
First, you need to know where stuff is in your program. Whenever you add/remove/change any code, you add a label in your program to the place where you're going modify, download the new code, and then "insert" the code into the right place of the executable.
But this idea may not be completely bug free. It might mess up parts of the program that hold certain addresses of the program and if you insert code in the middle, then everything behind it is pushed back so static addresses may be wrong.
I don't know exactly how to do this or if it would even work... it was just an idea. I could be giving you the old banana in the tail-pipe.
