.NET framework-based applications that are written in supportive languages like C#, F#, or Visual basic are compiled to Common Intermediate LANGUAGE (CIL).
Compiled code is stored in the form of an assembly file that has a .dll or .exe file extension.
When the .NET application runs, Common Language Runtime (CLR) takes the assembly file and CONVERTS the CIL into machine code with the help of the Just In Time(JIT) compiler.
Now, this machine code can EXECUTE on the specific ARCHITECTURE of the computer it is running on.