Forget about the fancy names, i will describe stuff for you informally here, and i can add more information when you need it.
you probably already know what an interpreted language and a compiled language is right, the .NET platform is an interpreter for MSIL, when you compile your software you do not end up with machine code but rather IL (Intermediate Language Code), the .NET platform is a fancy name for the IL interpreter.
You may hear the following terms along the way, here is what they really means.
CLR – The actual IL interpreter
JIT – Just in Time compiler – The part of the interpreter that makes the binary that will execute on the machine, it is envoked when your software is running, the name is missleading a bit, but for now let us say it is like this.
Pre-Jitting – There is a nice tool that allows you to turn your software into Machine Code at installation time (NOT AT FACTORY), But don’t get too excited, it is not exactly like this, you still need .NET to run the software and posses pleanty of limitations.
CTS – Common Type System – All the types / Data types .NET supports
CLS – Common language Specification – A subset of CTS that is simply a set of all Types supported by any .NET language (Has to do with code in multiple higher languages)
Base class libraries – Libararies that ship with .NET.
As usual will come back to refine later, for now this is all you need to know.