Código administrado y código no administrado en .NET

¿Qué es el código administrado?

Un código que está escrito para obtener los servicios de la ejecución del entorno de tiempo de ejecución administrado como CLR (Tiempo de ejecución de lenguaje común) en .NET Framework se conoce como Código administrado. Siempre lo implementó el entorno de tiempo de ejecución administrado en lugar de ejecutarlo directamente el sistema operativo. El entorno de tiempo de ejecución administrado proporciona diferentes tipos de servicios como recolección de basura, verificación de tipos, manejo de excepciones, verificación de límites, etc. para codificar automáticamente sin la interferencia del programador. También proporciona asignación de memoria, seguridad de tipos, etc. al código. La aplicación está escrita en lenguajes como Java, C#, VB.Net, etc. Siempre están dirigidas a los servicios del entorno de ejecución para administrar la ejecución y el código escrito en este tipo de lenguajes se conoce como código administrado.

En el caso de .NET Framework, el compilador siempre compila el código de gestión en el lenguaje intermedio (MSIL) y luego crea un ejecutable. Cuando el programador ejecuta el ejecutable, el compilador Just In Time de CLR compila el lenguaje intermedio en el código nativo que es específico de la arquitectura subyacente. Aquí, este proceso se lleva a cabo bajo un entorno de ejecución de tiempo de ejecución administrado, por lo que este entorno es responsable del funcionamiento del código. La ejecución del código administrado es como se muestra en la imagen a continuación, el código fuente está escrito en cualquier lenguaje de .NET Framework.

El código administrado también brinda independencia de la plataforma porque cuando el código administrado se compila en el lenguaje intermedio, el compilador JIT compila este lenguaje intermedio en la instrucción específica de la arquitectura.

¿Cuáles son las ventajas de usar Código Administrado?

  • Mejora la seguridad de la aplicación, como cuando usa el entorno de tiempo de ejecución, verifica automáticamente los búferes de memoria para protegerse contra el desbordamiento del búfer.
  • Implementa la recolección de basura automáticamente.
  • También proporciona verificación de tipos en tiempo de ejecución/verificación de tipos dinámica.
  • También proporciona verificación de referencia, lo que significa que verifica si la referencia apunta al objeto válido o no y también verifica que no estén duplicados.

¿Cuáles son las desventajas del código administrado?

La principal desventaja del lenguaje administrado es que no se le permite asignar memoria directamente o no puede obtener acceso de bajo nivel a la arquitectura de la CPU.

¿Qué es el código no administrado?

Un código que es ejecutado directamente por el sistema operativo se conoce como código no administrado . Siempre apuntó a la arquitectura del procesador y depende de la arquitectura de la computadora. Cuando se compila este código, siempre tiende a obtener una arquitectura específica y siempre se ejecuta en esa plataforma, en otras palabras, siempre que desee ejecutar el mismo código para la arquitectura diferente, debe volver a compilar ese código de acuerdo con esa arquitectura. Siempre se compila con el código nativo que es específico de la arquitectura.
En el código no administrado, el desarrollador administra la asignación de memoria, la seguridad de tipos, etc. Debido a esto, se producen varios problemas relacionados con la memoria, como el desbordamiento del búfer, la fuga de memoria, la anulación del puntero, etc. Los archivos ejecutables del código no administrado generalmente se encuentran en imágenes binarias, código x86 que se carga directamente en la memoria. Las aplicaciones escritas en VB 6.0, C, C++, etc. siempre están en código no administrado. La ejecución del código no administrado es como se muestra en la siguiente imagen:

¿Cuáles son las ventajas de usar código no administrado?

  • Proporciona el acceso de bajo nivel al programador.
  • También proporciona acceso directo al hardware.
  • Permite al programador eludir algunos parámetros y restricciones que utiliza el marco de código administrado.

¿Cuáles son las desventajas del código no administrado?

  • No proporciona seguridad a la aplicación.
  • Debido al acceso a la asignación de memoria, se producen problemas relacionados con la memoria, como el desbordamiento del búfer de memoria, etc.
  • El programador también maneja los errores y las excepciones.
  • No se centra en la recolección de basura.

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *