Fundamentos
En muchas ocasiones, los desarrolladores de software que hacemos uso de VB.NET o de Visual C#, hemos encontrado que algunos códigos, incluían la clásula Using. También, muchos desarrolladores, no tienen bien claro ¿qué es el uso del código Administrado y No Administrado? Vamos en breve a develar este misterio.
Los lenguajes que hacen uso del Framework .NET, mediante el CLR (Common Runtime Language). Este nos permite escribir el código con varias ventajas que proporciona el entorno de ejecución. El proceso de tiempo de ejecución, se lo conoce como “Administrado”. Gracias a este efecto, permiten la integración entre los lenguajes, el manejo de las excepciones, optimiza la seguridad, permite compatibilizar los versionados y las implementaciones, simplificación de integración y servicios generador de perfiles y, por supuesto y lo más importante de todo ello, la depuración.
Cuando hacemos uso del código No Administrado, suprimimos en parte, algunas de estas funcionalidades. Por otro lado, no todo lo que sucede en el entorno puede ser administrado. Si estamos operando un archivo externo, este proceso de abrirlo, leer o escribir en él y luego cerrarlo, se hace en forma No Administrada. Así mismo sucede lo mismo cuando accedemos a una base de datos. Es por ello que siempre se recomienda cerrar la base de datos e incluso, los archivos, de modo de garantizar su correcta manipulación. En consecuencia, el uso del código No Administrado puede ser ejecutado ya sea por decisión del programador propia o por la naturalidad de la tecnología que se está manipulando; el ejemplo de la base de datos y los archivos.
Te estarás preguntado, ¿dónde utilizar código No Administrado? Bueno, la respuesta es muy amplia. Solo te puedo decir que es útil para casos donde deseamos que nuestro código sea más ágil. Eso si, esto tendrá una desventaja. Esta será que durante el proceso de ejecución No Administrada, parte de los procesos del IL (Intermedial Language) no serán operados, sacrificando de esta forma, herramientas de depuración y algunos procesos en las excepciones. Las excepciones tan solo funcionaran con las cargas de excepción más críticas y el resto, las omitirá. Además, habrán otras funcionalidades más que dejarán de operar. Esto ofrece velocidad de procesos aunque, condiciona el proceso en general. En breve, su uso es muy exclusivo y en caso de pensarlo, se debiera hacer un planteo muy severo al respecto antes de utilizarlo.
¿Cómo se hace esto desde el lenguaje? Esto se hace mediante el uso de la clásula Using. Al hacer uso de esta cláusula, todo aquel código que se contengan dentro del contexto de dicha cláusula, será gestionado de forma No Administrado. Aquí te dejo un ejemplo de cómo se utiliza la cláusula Using en VB.NET. En Visual C#, es prácticamente lo mismo. Tan solo cambia la semática del código.
Ejemplo en VB .NET
Using resource As New ResourceType()
‘ Inserta el código para que trabaje con el recurso
‘ (Modo No Administrado)
End Using
‘ Inserta el código para que trabaje con el recurso
‘ (Modo No Administrado)
End Using
Ejemplo en Visual C#
using (resource = new ResourceType())
{
// Inserta el códigopara que trabaje
// (Modo No Administrado)
}
{
// Inserta el códigopara que trabaje
// (Modo No Administrado)
}
Importante: Tenemos que señalar que para Visual C#, la palabra reservada using, también puede ser utilizada para hacer referencia a las librerías del Framework. Estas son declaradas generalmente sobre la sección de cabecera de las clases. En este caso, hemos utilizado a using solo para gestionar el Modo No Administrado.
En otros artículos, voy ampliar un poco más acerca de este tema. Espero que te sirva y hasta el próximo encuentro. Saludos.
No hay comentarios:
Publicar un comentario