Microsoft Intermediate Language in .NET
When you create value in any terminology and gather, it will be changed to an 'Intermediate Language' (Microsoft Advanced Language - MSIL). So, your collected exe contains the IL and not really exe machine terminology. When the .NET program works, the .NET structure in the targeted pc take care of the performance. (To run a .NET program, the targeted pc should have .NET structure set up.) The .NET structure transforms the calls to .NET class your local library to the corresponding APIs of the Os.