Ficheros de configuración
Ficheros de configuración
Cuando el CLR necesita hacer uso de un ensamblado, toma su número de versión del manifiesto, realiza una búsqueda del ensamblado y lo ejecuta en caso de encontrarlo. Este es el comportamiento por defecto de entorno de ejecución.
Sin embargo, puede haber ocasiones en las que se haga necesario el uso de una versión diferente del ensamblado, para lo cual, debemos redirigir al CLR hacia dicha versión específica que deseamos ejecutar, en lugar de la versión por defecto.
Esto lo conseguimos a través de los ficheros de configuración, que son unos ficheros con extensión .CFG, basados en etiquetas XML, en los que a través de un conjunto de etiquetas clave ordenamos al entorno la ejecución de una determinada versión del ensamblado. En el ejemplo del Código fuente 8 indicamos mediante un fichero de configuración el uso de una versión específica de un ensamblado.
<configuration> <runtime> <assemblyBinding ns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="GestVentas"
publickeytoken="32ab4ba45e0a69a1" culture="sp" />
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
<codeBase version="2.0.0.0" href="http://www.AcmeFac.com/GestVentas.dll"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
Código fuente 8. Contenido de un fichero de configuración de ensamblado.
Localización de ensamblados por parte del CLR
Una vez que un ensamblado compartido ha sido debidamente creado con su correspondiente número
de versión, claves, e instalado en la caché global de ensamblados, el entorno de ejecución, para utilizar dicho ensamblado, debe realizar una serie de operaciones que le permitan localizar con éxito el ensamblado, de modo que sea la versión exacta que necesita ejecutar. A continuación, se realiza una breve descripción de cada uno de esos pasos que lleva a cabo el entorno
• Verificación de versión. En primer lugar, el CLR comprueba si la versión del ensamblado es correcta, examinando la existencia de posibles ficheros de configuración.
Los ficheros de configuración permiten el establecimiento o cambio de valores de configuración del ensamblado en tres niveles: aplicación, políticas de autor, máquina. Los posibles ficheros de configuración son buscados también en este orden.
• Ensamblados previamente utilizados. A continuación, se verifica si el ensamblado ya ha sido cargado por una llamada anterior. En caso afirmativo, se utiliza dicho ensamblado,
evitando tener que cargarlo de nuevo. • Comprobación de la caché global de ensamblados. Si no se emplea un ensamblado ya
cargado, se busca seguidamente en la caché global.
© Grupo EIDOS 3. .NET Framework, nuevos cimientos para la nueva generación de aplicaciones
• Localización mediante codebases o sondeo. Una vez averiguada la versión del ensamblado, se intenta localizar el ensamblado a través de sus ficheros de configuración, en primer lugar mediante un codebase, que consiste en una de las etiquetas que pueden incluirse en este tipo
de ficheros y que proporcionan información sobre la versión. Si no existe un codebase, se aplica una técnica denominada sondeo (probing), que consiste en
realizar una búsqueda por aproximación utilizando los siguientes elementos: • Ruta en la que se está ejecutando la aplicación. • Datos culturales del ensamblado. • Nombre del ensamblado. • Lista de subdirectorios situados en la ruta de ejecución de la aplicación.
Parts
» Visual branding biro perjalanan alam (1)
» El manifiesto del ensamblado
» Instalación de Visual Studio .NET
» Grabando texto en un fichero
» Principales elementos en nuestro entorno de trabajo
» Manejo de ventanas adicionales del IDE
» Conceptos mínimos sobre depuración
» Comparación de cadenas en base a un patrón. El operador Like
» Uso de paréntesis para mejorar la legibilidad de expresiones
» Sintaxis de un procedimiento Function
» Sobrecarga de procedimientos
» Abordando un problema mediante programación procedural
» Creación de propiedades para la clase
» Encapsulación a través de propiedades
» Creación de métodos para la clase
» Sobrecarga de métodos o polimorfismo, en una misma clase
» Espacios de nombres (namespaces)
» Acceso a espacios de nombre de otros ensamblados
» Herencia y sobre-escritura de métodos
» Diferencias entre sobrecarga y sobre-escritura en base al tipo de enlace
» Ocultamiento de miembros de una clase
» Comportamiento de las palabras clave Me, MyClass y MyBase ante la sobre-escritura de métodos
» Herencia y métodos constructores
» Clases abstractas o no instanciables
» Comprobación del tipo de un objeto y moldeado (casting)
» Destrucción de objetos y recolección de basura
» Creación y manipulación de estructuras
» Estructuras o clases, ¿cuál debemos utilizar?
» Manipulación de cadenas con la clase String
» Optimizando la manipulación de cadenas con la clase StringBuilder
» Extender las funcionalidades de una clase a través de delegados
» La clase EventArgs, o cómo obtener información del objeto emisor del evento
» Obtención de subarrays a partir de un objeto ArrayList
» Manejo básico de colecciones Hashtable
» Operaciones varias con colecciones Hashtable
» Manipulación de valores en una colección Queue
» Implementando un interfaz para crear una nueva colección
» Manipulación estructurada de errores
» La influencia del orden de los manipuladores de excepciones
» Creación de excepciones personalizadas
» Manipulación de archivos mediante File y FileInfo
» Manipulación de archivos mediante Directory y DirectoryInfo
» Monitorización del sistema de archivos con FileSystemWatcher
» Creación de un formulario básico
» Iniciar el formulario desde Main( )
» Codificación de los eventos de controles
» Selección de texto en un TextBox
» Compartiendo código entre controles
» Crear una clase derivada de un control
» Agregar un proyecto con un formulario derivado
» Crear un formulario heredado desde un proyecto independiente
» Creación de menús desde código
» Detectando el estado de finalización
» Crear un proceso de monitorización
» Comportamiento Modal de formularios
» Formularios dependientes y fijos en primer plano
» Dibujo con las clases Graphics y Pen
» Manipulación de los eventos de pintado en la clase Form
» Manipulando el grado de opacidad del formulario
» Integrando elementos. Un visualizador de gráficos
» Comparativa de ADO /ADO .NET
» Arquitectura de datos desconectados
» Una visión general de ADO .NET
» Espacios de nombres y clases en ADO .NET
» Empleo de Data Binding simple para navegar y editar datos
» Configurar por código las propiedades del DataGrid
Show more