Administrar la configuración de la aplicación

La configuración de la aplicación permite almacenar la información de la aplicación de forma dinámica.La configuración también le permite almacenar información en el equipo cliente que no se debe incluir en el código de la aplicación (por ejemplo, una cadena de conexión), las preferencias del usuario y otra información necesaria en tiempo de ejecución.

La configuración de la aplicación reemplaza a las propiedades dinámicas que se usaban en versiones anteriores de Visual Studio.

Cada valor de la aplicación debe tener un nombre único.El nombre puede ser cualquier combinación de caracteres de letras, números o subrayado que no comience por un número ni contenga espacios.Se puede cambiar el nombre mediante la propiedad Name.

La configuración de la aplicación se puede almacenar como cualquier tipo de datos que se pueda serializar en XML o que tenga un TypeConverter que implemente ToString/FromString.Los tipos más comunes son String, Integer y Boolean, pero también puede almacenar valores como Color, Object, o bien como una cadena de conexión.

La configuración de la aplicación también contiene un valor.El valor se establece mediante la propiedad Value y debe coincidir con el tipo de datos de la configuración.

Además, la configuración de la aplicación se puede enlazar a una propiedad de un formulario o de un control en tiempo de diseño.

Hay dos tipos de configuración de la aplicación, en función del ámbito:

  • La configuración de ámbito de aplicación se puede utilizar para obtener información como una dirección URL para un servicio Web o una cadena de conexión a bases de datos.Estos valores están asociados a la aplicación.Por consiguiente, los usuarios no pueden cambiarlos en tiempo de ejecución.

  • La configuración de ámbito de usuario se puede utilizar para obtener información, como conservar la última posición de un formulario o una preferencia de fuente.Los usuarios pueden modificar estos valores en tiempo de ejecución.

Puede cambiar el tipo de una configuración con la propiedad Scope.

El sistema del proyecto almacena la configuración de la aplicación en dos archivos XML: un archivo .app.config, que se crea en tiempo de diseño cuando se crea la primera configuración de la aplicación, y un archivo .user.config, que se crea en tiempo de ejecución cuando el usuario que ejecuta la aplicación cambia el valor de parte de la configuración de usuario.Observe que los cambios en la configuración de usuario no se escriben en el disco a menos que la aplicación llame específicamente a un método para que lo haga.

Crear la configuración de la aplicación en tiempo de diseño

En tiempo de diseño, hay dos maneras de crear la configuración de la aplicación: mediante la página Configuración del Diseñador de proyectos o desde la ventana Propiedades de un formulario o un control, lo que le permite enlazar una configuración a una propiedad.

Cuando crea una configuración con ámbito de aplicación (por ejemplo, una cadena de conexión a bases de datos o una referencia a los recursos del servidor), Visual Studio la guarda en un archivo app.config con la etiqueta <applicationSettings>.(Las cadenas de conexión se guardan en la etiqueta <connectionStrings>.)

Cuando crea una configuración con ámbito de usuario (por ejemplo, fuente predeterminada, página principal o tamaño de la ventana), Visual Studio la guarda en un archivo app.config con la etiqueta <userSettings>.

Nota de seguridadNota sobre la seguridad

Si almacena cadenas de conexión en .app.config, debe tomar precauciones para evitar revelar información confidencial en la cadena de conexión, como contraseñas o rutas de acceso al servidor.

Si toma la información de la cadena de conexión de un origen externo (un usuario que suministre un Id. de usuario y una contraseña, por ejemplo), debe asegurarse de que los valores que utilice para crear la cadena de conexión no contengan parámetros adicionales que modifiquen el comportamiento de la conexión.

Plantéese utilizar la característica de configuración protegida para cifrar información confidencial en el archivo de configuración.Consulte Proteger la información de conexión para obtener más información.

[!NOTA]

Dado que no hay ningún modelo del archivo de configuración para las bibliotecas de clases, la configuración de la aplicación no se aplica a los proyectos de la biblioteca de clases.La excepción es un proyecto de archivo DLL de Visual Studio Tools para Office, que puede tener un archivo de configuración.

Usar archivos de configuración personalizados

Puede agregar archivos de configuración personalizados a su proyecto para facilitar la administración de grupos de opciones de configuración.La configuración contenida en un mismo archivo se carga y guarda como una unidad.Por consiguiente, poder almacenar configuraciones en distintos archivos correspondientes a los grupos utilizados con frecuencia y poco utilizados puede ahorrar tiempo al cargar y guardar configuraciones.

Por ejemplo, puede agregar un archivo a su proyecto como SpecialSettings.settings.Aunque su clase SpecialSettings no se exponga en el espacio de nombres My, Ver código puede leer el archivo de configuración personalizado que contiene Partial Class SpecialSettings.

El Diseñador de configuración busca primero el archivo Settings.settings creado por el sistema del proyecto; éste es el archivo que muestra de manera predeterminada el Diseñador de configuración en la ficha Configuración.Settings.settings se encuentra en la carpeta My Project para los proyectos de Visual Basic y en la carpeta Propiedades para los proyectos de Visual C#.A continuación, el Diseñador de proyectos busca otros archivos de configuración en la carpeta raíz del proyecto.Por consiguiente, debe colocar en ella el archivo de configuración personalizado.Si agrega un archivo .settings en otra ubicación del proyecto, el Diseñador de proyectos no lo encontrará.

Obtener acceso o cambiar la configuración de la aplicación en tiempo de ejecución en Visual Basic

En los proyectos de Visual Basic, puede obtener acceso a la configuración de la aplicación en tiempo de ejecución por medio del objeto My.Settings.En la página Configuración, haga clic en el botón Ver código con el fin de ver el archivo Settings.vb.Settings.vb define la clase Settings, que le permite controlar estos eventos en la clase de configuración: SettingChanging, PropertyChanged, SettingsLoaded y SettingsSaving.Tenga en cuenta que la clase Settings de Settings.vb es una clase parcial, que muestra solamente el código que tiene el usuario, no toda la clase generada.Para obtener más información acerca de cómo acceder a la configuración de la aplicación mediante el objeto My.Settings, consulte Acceso a la configuración de las aplicaciones (Visual Basic).

Los valores de configuración de ámbito de usuario que el usuario cambia en tiempo de ejecución (por ejemplo, la posición de un formulario) se almacenan en un archivo user.config.Observe que los valores predeterminados se siguen guardando en app.config.

Si ha cambiado parte de la configuración de ámbito de usuario durante el tiempo de ejecución, por ejemplo, al probar la aplicación, y desea restablecer esta configuración a sus valores predeterminados, haga clic en el botón Sincronizar.

Recomendamos encarecidamente utilizar el objeto My.Settings y el archivo .settings predeterminado para tener acceso a las configuraciones.Esto se debe a que puede utilizar el Diseñador de configuración para asignar propiedades a los valores, y, además, la configuración del usuario se guarda automáticamente antes de cerrar la aplicación.Sin embargo, su aplicación de Visual Basic puede obtener acceso directamente a la configuración.En ese caso, necesita tener acceso a la clase MySettings y utilizar un archivo .settings personalizado en la raíz del proyecto.También debe guardar la configuración del usuario antes de finalizar la aplicación, igual que con una aplicación de C#; esto se describe en la sección siguiente.

Obtener acceso o cambiar la configuración de la aplicación en tiempo de ejecución en Visual C#

En otros lenguajes distintos de Visual Basic, como Visual C#, se debe tener acceso directamente a la clase Settings, como se muestra en el siguiente ejemplo de Visual C#.

Properties.Settings.Default.FirstUserSetting = "abc";

También debe llamar explícitamente al método Save de esta clase contenedora para conservar la configuración del usuario.Esto normalmente se realiza en el controlador de eventos Closing del formulario principal.En el ejemplo siguiente de Visual C#, se muestra una llamada al método Save.

Properties.Settings.Default.Save();

Para obtener un ejemplo concreto de cómo crear la nueva configuración de la aplicación y enlazarla a las propiedades en un formulario, consulte Cómo: Crear una configuración de aplicación mediante el diseñador.Para obtener información más general acerca de cómo obtener acceso a la configuración de la aplicación a través de la clase Settings, consulte Introducción a la configuración de la aplicación.Para obtener información acerca de la iteración a través de la configuración, consulte esta publicación en el foro.

Vea también

Conceptos

Acceso a la configuración de las aplicaciones (Visual Basic)