QUOTE
The .NET uses the .net framework? or what? Is it like C and C++...?
No.
C/C++ Compilers convert C/C++ code into the target processor's machine language. The resultant executable file would hence work only on that processor architecture (or similar ones). To port the program for another OS or processor, you would have to compile the same source code with the appropriate compiler that converts C/C++ code into the native processor machine code.
.NET (and even Java) Compilers convert the source code into byte-code (AKA pseudo-code) format which by itself cannot be understood by any processor.
But another layer is written for each OS/machine which is capable of translating the byte-code into native processor instructions. Hence, theoretically, code written in .NET can work on any platform.
The Mono Project is currently working on creating such an intermediate layer on Linux based systems.