I don't understand how the framework could have grown to 20mb and running .Net apps to 9mb, those are insanely high numbers! I am not sure where to place the blame. I mean, is it not modular enough? What?!
The .Net framework instead of relying on simple sets of instructions that are used over and over at compile time, they have just make functions to do everything under the sun meaning you have the same thing over and over and over and over and.... in the modules.
I would love to see how much of the 9mb, of .Net * that is loaded into memory is actually used. But I would guess 25% ish.