What happens when a .net application is started?
I have been developing apps using .net for quite sometime now. But, I am still not sure how does the CLR know that a .net app has started. Is there like one instance of CLR per app? I don't think this can be the case as there is just one GC which manages all the memory for all .net apps. Does the CLR kind of run in background? I am quite confused. Hmm, let me take a shot at this too. Somebody builds a .NET application in C#, or .NET 'Intermediate Language', or another managed language. The compiler for that language csc.exe (C#), or ilasm.exe (bytecode assembler), or whichever, produces a PE