In pratica, la trasformazione in codice macchina  viene compiuta solo all'atto di caricamento ed esecuzione del programma.
In prima istanza il codice sorgente viene convertito dal framework in un codice intermedio detto CIL e solo all'esecuzione del programma il CLR specifico per il sistema operativo utilizzato converte il CIL in linguaggio macchina specifico per l'hardware ospite, man mano che viene eseguito.
Ciò comporta che l'esecuzione del codice può risultare più lenta alla prima esecuzione diventando poi più veloce.
Altre differenze evidenti sono le seguenti: