Lección 4 - Administración de Configuración
Permite especificar qué versión del motor de ejecución de la aplicación, la base de datos a la que debe conectarse.
Obteniendo y almacenando configuraciones
El principal instrumento a través del cual se recuperan los valores de configuración es el objeto ConfigurationManager.
Usando la propiedad appSettings del objeto ConfigurationManager, se puede acceder a cualquier sección del archivo de configuración.
La última forma de obtener una sección del archivo de configuración de la aplicación es a través del método GetSection del objeto ConfigurationManager:
Lo único necesario es que dentro del archivo de configuración se debe declarar la porción ConfigSettings, dentro de este último crear un sectionGroup con su propiedad name con el nombre que deseamos y su tipo, luego se define el contenido de la sección:
Para recuperarlo es realiza de esta forma:
Aclaración: ValuesHandler es una clase que creamos para manejar Hashtables y se explica un poco mas adelante.
Devuelve un object que se debe castear a otro específico.
Para grabar los cambios de settings, solo se debe llamar al método Save o SaveAs del objeto Configuration.
Si no especificamos la propiedad del objeto ConfigurationSection, ForceSave , del SectionInformation como true, cualquier cambio que se hizo, sera ignorado al hacer Save o SaveAs.
Implementando Interfaces de Configuración
La clase System.Configuration tiene múltiples interfaces para realizar funciones específicas:
- IConfigurationSectionHandler es usada con propósitos de librería.
- ISettingsProviderService , es usado exclusivamente para soportar el building e tiempo de diseño o para mejorar los debuggers.
- IApplicationSettingsProvider provee un propósito funcional más general.
Para implementar la interfaz IConfigurationSectionHandler se debe de crear un SectionGroup con la seccion ConfigSection del archivo de configuracion. Los objetos ConfigurationSection son guardados en la propiedad ConfigurationSectionCollection del objeto Configuration:
Una forma de manejar esto es:
Después de haber creado la sección, se la debe definir:
Para usar este tipo de flexibilidad es necesario implementar la interfaz IConfigurationSectionHandler (su método Create):
Y aparte una clase que nos ayude, que almacene HashTables y brinde un mecanismo para recuperar valores de la tabla:
Hay dos métodos principales para leer valores. ConfigSettings.GetConfig (obsoleta) y ConfigurationManager.GetSection.
Ejemplo de uso de ConfigurationManager.GetSection:
Una forma simple de realizar un ConfigurationSection
Ejemplo para obtener valores con una clase de ejemplo denominada ConfigHandler que hereda de ConfigurationSection.:
Y usando esa clase:
Otra interfaz muy útil es IApplicationSettingsProvider.
métodos:
GetPreviousVersion | Devuelve el valor de la versión previa de la aplicación |
Reset | Resetea los settings de la aplicación con sus valores por default |
Upgrade | Indica al proveedor que la aplicación tuvo un upgrade. |
- Ejecución de diferentes versiones de una aplicación
- Mantener los valores de configuración de una aplicación cuando esta tiene un upgrade.
- Reseteo a sus valores por defecto.
- Cada propiedad puede ser alcanzada por nivel de aplicación o usuario.(nivel de granularidad)
- Valores que son alcanzados a nivel de usuarios son guardados de forma diferente a los alcanzados a nivel de aplicación.
- Si el atributo Application es usado, se crea un archivo de configuración adicional. Sigue el estándar de convención de nombre de configuración, solo que usa el nombre de usuario de la computadora y agrega “.config “al final. Ej mi maquina: Vicrodg , nombre del archivo de configuracion Vicrodg.config
- Esto es guardado en Windows Special Folder y puede ser accedido por la clase Application con Application.LocalUserAppDataPath
- Su acceso es facilitado a través de LocalFileSettingsProvider.
Aclaración: a pedido de algunos voy a colocar el código de cada unidad, junto con el Pdf del resumen de cada capitulo. El código no es obligatorio bajarlo, se encuentra en la Iso publicada al comienzo del blog, pero para facilitar las cosas un poco mas, lo voy a modificar en todas las publicaciones
....................................................................................................................................................
Bajar esta capítulo en formato PDF Codigo Ejemplo
....................................................................................................................................................
No hay comentarios:
Publicar un comentario