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. 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.
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, asegúrese 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 podrá 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:
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. Los valores predeterminados se siguen guardando en app.config.
Si ha cambiado parte de la configuración de ámbito de usuario en tiempo de ejecución, por ejemplo, al probar la aplicación, y quiere restablecer esta configuración a los valores predeterminados, seleccione el botón Sincronizar.
Se recomienda encarecidamente usar el objeto My.Settings
y el archivo .settings predeterminado para acceder a la configuración. Puede usar el Diseñador de configuración para asignar propiedades a la configuración y, además, la configuración de 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 de usuario antes de finalizar la aplicación, igual que lo haría 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).
Migración de aplicaciones de .NET Framework a .NET
.NET Framework usa el archivo app.config para cargar la configuración de la aplicación, como las cadenas de conexión y la configuración de los proveedores de registro. El .NET moderno ahora usa el archivo appsettings.json para la configuración de la aplicación. Para obtener más información sobre la conversión de archivos app.config a appsettings.json, consulte Modernización después de actualizar a .NET desde .NET Framework.