Is the .NET Framework a collection of DLLs only?
The first step is to setup an instance of the CLR (similar to what happens in java) this is overhead that was not previously present. Another large reason is the fact that it has to convert (compile) code from IL to a native format generally the initial startup requires a good amount of this. You can use ngen to precompile assemblies … this will help make your apps load quite a bit quicker (depending what they are doing). It also has to load up dlls when you first start your application (including checking privileges etc for being able to run those dlls given your current context).