The code produced by Visual C# is Common Intermediate Language, bytecode that is executed by .NET virtual machine (CLR), which is a part of .NET Micro Framework. Unlike its 'bigger brother' (desktop version of .NET Framework), .NET Micro Framework does not have Just-in-Time compiler, the CIL instructions are interpreted, so there is no microcontroller-specific code emitted in runtime; you just need the CLR compiled for a particular microcontroller/architecture. The .NET Micro Framework source contains code to support several microcontroller variants, such as Atmel AT91SAM7X, ST Microelectronics STM32F, NXP LPC, Freescale iMXS, Renesas SH7x series and also x86 (the emulator), board vendors use cross-compilers to produce "the firmware" (TinyCLR).