Para crear aplicaciones con C# es importante entender qué sucede con nuestro código desde el momento en que lo escribimos hasta que finalmente la aplicación se ejecuta. Este proceso se puede entender mediante 4 pasos principales.

1. El código C# se traduce a IL

Cuando escribimos nuestro código en C# y lo compilamos con .NET, este no se convierte directamente en código máquina. Primero se traduce a un lenguaje intermedio llamado IL (Intermediate Language).

El IL funciona como una especie de lenguaje universal dentro de .NET. Gracias a este paso intermedio, el código no queda ligado directamente a un único sistema operativo o tipo de máquina.

El flujo comienza de esta manera:

Código C# → IL (Intermediate Language)

2. El CLR administra la ejecución

El código IL es entendido y procesado dentro del entorno de .NET por el CLR (Common Language Runtime).

El CLR puede verse como el administrador o gerente de la aplicación, ya que se encarga de aspectos importantes durante su ejecución, como administrar la memoria y ayudar a que todo funcione correctamente y de forma segura.

Por lo tanto, el CLR es una pieza fundamental del motor de .NET y del proceso que permite ejecutar nuestras aplicaciones.

3. El JIT traduce el código a lenguaje nativo

Antes de que el código pueda ejecutarse directamente en la computadora, entra en juego el JIT (Just-In-Time).

Su función es tomar el código IL y traducirlo al código nativo que entiende la computadora donde se está ejecutando la aplicación.

Se llama Just-In-Time porque realiza esta conversión cuando es necesaria, permitiendo que el código pueda adaptarse al entorno donde se está ejecutando.

El proceso sería:

IL → JIT → Código nativo

4. La aplicación se ejecuta

Una vez realizada la conversión necesaria, el código está preparado para ejecutarse en el sistema operativo y la aplicación puede arrancar.

De forma simplificada, podemos visualizar todo el proceso así:

Código C# → IL → CLR/JIT → Código nativo → Ejecución