Capítulo 9 – Instalando y configurando aplicaciones–Parte 3

 
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.
image
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:
image
Para recuperarlo es realiza de esta forma:
image
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.
Cuando se necesita un mayor grado de granularidad con nuestras clases, se puede utilizar la interfaz System.Configuration.IConfigurationSectionHandler, esta es depreciada en el framework 2.0 , es mejor utilizar ConfigurationSection.
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:
image
Una forma de manejar esto es:
image
Después de haber creado la sección, se la debe definir:image
Para usar este tipo de flexibilidad es necesario implementar la interfaz IConfigurationSectionHandler (su método Create):
image
Y aparte una clase que nos ayude, que almacene HashTables y brinde un mecanismo para recuperar valores de la tabla:
image
 
Hay dos métodos principales para leer valores. ConfigSettings.GetConfig (obsoleta) y ConfigurationManager.GetSection.
Ejemplo de uso de ConfigurationManager.GetSection:
image

 
Una forma simple de realizar un ConfigurationSection
image
Ejemplo para obtener valores con una clase de ejemplo denominada ConfigHandler que hereda de ConfigurationSection.:
image
Y usando esa clase:
image
 
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.
Esta interfaz provee los beneficios siguientes beneficios:
  • 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.
Factores que la benefician a diferencia de una clase que implementa IConfigurationSectionHandler:
  • 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 Sonrisa. Saludos!


....................................................................................................................................................
Bajar esta capítulo en formato PDF                                                                Codigo Ejemplo
.................................................................................................................................................... 

No hay comentarios:

Publicar un comentario