Share via


Administración de la configuración de la aplicación (.NET)

La configuración de la aplicación permite almacenar la información de la aplicación de forma dinámica. Con la configuración de la aplicación, puede usar un equipo cliente para almacenar información que no se debe incluir en el código de la aplicación en tiempo de ejecución. La configuración de la aplicación puede incluir cadenas de conexión, preferencias del usuario y mucho más.

Nota:

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 letras, números o un carácter de subrayado. Pero el nombre no puede empezar con un número y tampoco puede tener espacios. Se puede cambiar 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 elemento TypeConverter que implemente ToString/FromString. Los tipos más comunes son String, Integer y Boolean. También puede almacenar valores como Color, Object o 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 a fin de obtener información, por ejemplo, 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

  • Un archivo user.config, que se crea en tiempo de ejecución cuando el usuario que ejecuta la aplicación, cambia el valor de cualquier 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.

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

En tiempo de diseño, puede crear la configuración de la aplicación de dos maneras:

  • Use la página Configuración del Diseñador de proyectos.

  • Use la ventana Propiedades de un formulario o control, que permite enlazar una configuración a una propiedad.

Cuando se crea una configuración con ámbito de aplicación (por ejemplo, una cadena de conexión de base de datos o una referencia a 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 se crea una configuración con ámbito de usuario (por ejemplo, fuente predeterminada, página principal o tamaño de ventana), Visual Studio la guarda en un archivo app.config con la etiqueta <userSettings>.

Importante

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 como un usuario que suministre un Id. de usuario y una contraseña, 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. Para obtener más información, vea Proteger la información de conexió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 del Runtime de Visual Studio Tools para Office, que puede tener un archivo de configuración.

Uso de 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. El almacenamiento de configuraciones en distintos archivos correspondientes a los grupos usados con frecuencia y poco usados puede ahorrar tiempo al cargar y guardar configuraciones.

Por ejemplo, puede agregar un archivo SpecialSettings.settings al proyecto. Aunque la 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 que crea el sistema del proyecto. Este Settings.settings es el archivo predeterminado que el Diseñador de proyectos muestra en la pestaña Configuración. El archivo Settings.settings se encuentra en la carpeta Mi proyecto para proyectos de Visual Basic y en la carpeta Propiedades de los proyectos de Visual C#. Luego 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á.

Acceso a la configuración de la aplicación o modificación de esta 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, seleccione el botón Ver código para ver el archivo Settings.vb. Settings.vb define la clase Settings, que 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 sobre cómo acceder a la configuración de la aplicación mediante el objeto My.Settings, vea Acceso a la configuración de la aplicación (.NET Framework).

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 runtime, por ejemplo, al probar la aplicación, y quiere restablecer esta configuración a sus valores predeterminados, seleccione el botón Sincronizar.

Se recomienda usar el objeto My.Settings y el archivo predeterminado .settings para acceder a la configuración. Esto se debe a que puede usar el Diseñador de configuración para asignar propiedades a la configuración y, además, la configuración del usuario se guarda automáticamente antes de cerrar la aplicación. Pero la aplicación de Visual Basic puede obtener acceso directamente a la configuración. En ese caso, necesita acceso a la clase MySettings y usar un archivo .settings personalizado en la raíz del proyecto. Debe guardar la configuración del usuario antes de finalizar la aplicación, igual que con una aplicación de C#; tal como se explica en la sección siguiente.

Acceso a la configuración de la aplicación o modificación de esta en tiempo de ejecución en C#

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

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

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 C#, se muestra una llamada al método Save.

Properties.Settings.Default.Save();

Para obtener información general sobre cómo acceder a la configuración de la aplicación mediante la clase Settings, vea Introducción a la configuración de la aplicación (.NET Framework). Para obtener información sobre cómo recorrer en iteración la configuración, vea este artículo del foro.