Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo crear y almacenar datos de configuración en nombre de la aplicación y los usuarios.
La característica Configuración de la aplicación de Windows Forms facilita la creación, el almacenamiento y el mantenimiento de preferencias de usuario y aplicaciones personalizadas en el equipo cliente. Con la configuración de la aplicación de Windows Forms, puede almacenar no solo datos de aplicación como cadenas de conexión de base de datos, sino también datos específicos del usuario, como preferencias de aplicación de usuario. Con Visual Studio o código administrado personalizado, puede crear nuevas opciones de configuración, leerlas y escribirlas en el disco, enlazarlas a propiedades de los formularios y validar los datos de configuración antes de cargarlos y guardarlos.
La configuración de la aplicación permite a los desarrolladores guardar el estado en su aplicación con código muy poco personalizado y es un reemplazo de las propiedades dinámicas en versiones anteriores de .NET Framework. La configuración de la aplicación incluye muchas mejoras respecto a las propiedades dinámicas, que son de solo lectura, enlazadas en tiempo de ejecución y requieren más programación a medida. Las clases de propiedades dinámicas se han conservado en .NET Framework 2.0, pero son solo clases de shell que ajustan finamente las clases de configuración de la aplicación.
¿Qué son las configuraciones de la aplicación?
Las aplicaciones de Windows Forms a menudo requerirán datos críticos para ejecutar la aplicación, pero que no desea incluir directamente en el código de la aplicación. Si la aplicación usa un servicio web o un servidor de bases de datos, es posible que desee almacenar esta información en un archivo independiente para que pueda cambiarla en el futuro sin volver a compilarla. Del mismo modo, las aplicaciones pueden requerir almacenar datos específicos del usuario actual. La mayoría de las aplicaciones, por ejemplo, tienen preferencias de usuario que personalizan la apariencia y el comportamiento de la aplicación.
La configuración de la aplicación aborda ambas necesidades proporcionando una manera sencilla de almacenar tanto la configuración con ámbito de aplicación como la de usuario en el equipo cliente. Con Visual Studio o un editor de código, se define una configuración para una propiedad determinada especificando su nombre, tipo de datos y ámbito (aplicación o usuario). Incluso puede colocar la configuración relacionada en grupos con nombre para facilitar el uso y la legibilidad. Una vez definida, esta configuración se conserva y vuelve a leer en la memoria automáticamente en tiempo de ejecución. Una arquitectura conectable permite cambiar el mecanismo de persistencia, pero, de forma predeterminada, se usa el sistema de archivos local.
La configuración de la aplicación funciona conservando los datos como XML en archivos de configuración diferentes (.config), correspondientes a si la configuración está en el ámbito de la aplicación o en el ámbito del usuario. En la mayoría de los casos, las configuraciones a nivel de aplicación son de solo lectura; ya que forman parte de la información del programa, normalmente no es necesario modificarlos. Por el contrario, las configuraciones de usuario se pueden leer y escribir de forma segura en tiempo de ejecución, incluso si su aplicación se ejecuta bajo condiciones de confianza parcial. Para obtener más información sobre la confianza parcial, vea Seguridad en Windows Forms - Información general.
La configuración se almacena como fragmentos XML en los archivos de configuración. La configuración con ámbito de aplicación se representa mediante el <applicationSettings>
elemento y, por lo general, se colocan en la aplicación.exe.config, donde la aplicación es el nombre del archivo ejecutable principal. La configuración para el usuario se representa mediante el <userSettings>
elemento y se coloca en user.config. Debe desplegar el archivo.exe.config de la aplicación junto con su aplicación; la arquitectura de configuración creará el archivo user.config según sea necesario la primera vez que la aplicación guarda la configuración de ese usuario. También puede definir un <userSettings>
bloque dentro de la aplicación.exe.config para proporcionar valores predeterminados para la configuración con ámbito de usuario.
Los controles personalizados también pueden guardar su propia configuración mediante la implementación de la IPersistComponentSettings interfaz , que expone el SaveSettings método . El control de Windows Forms ToolStrip implementa esta interfaz para guardar la posición de las barras de herramientas y los elementos de la barra de herramientas entre sesiones de aplicación. Para obtener más información sobre los controles personalizados y la configuración de la aplicación, consulte Configuración de la aplicación para controles personalizados.
Dónde se almacenan las opciones de configuración de ámbito de usuario
El proveedor predeterminado, LocalFileSettingsProvider, almacena la configuración con ámbito de usuario en la LocalApplicationData carpeta . Si esa carpeta no está disponible, se usa la ApplicationData carpeta . Se crea una subcarpeta específica de la aplicación para almacenar el archivo de configuración específica del usuario. El nombre de esta carpeta se basa en tres atributos sobre el ensamblado principal de la aplicación:
- El ensamblaje es CompanyName.
- Valor hash basado en dos fragmentos de información:
- El ensamblaje es FriendlyName. Si
FriendlyName
no está disponible, ProductName se usa . - Si el ensamblado está StrongName disponible, se usa la ruta de acceso de carpeta absoluta al ensamblado.
- El ensamblaje es FriendlyName. Si
- La AssemblyName.Version cadena.
Si alguno de los detalles del ensamblaje anterior cambia, se pierden las configuraciones de ámbito de usuario anteriores porque se genera un nuevo nombre de subcarpeta. Por ejemplo, si se publica una nueva versión de la aplicación y el valor AssemblyName.Version
es diferente de la versión anterior, el nombre de la subcarpeta que se usa para almacenar los ajustes específicos del usuario cambia. Si la configuración del usuario debe conservarse entre las versiones de la aplicación, cree un proveedor de configuración personalizado. Para obtener más información, consulte Proveedores de configuración personalizada.
Limitaciones de la configuración de la aplicación
No puede usar la configuración de la aplicación en una aplicación no administrada que hospede .NET Framework. La configuración no funcionará en entornos como complementos de Visual Studio, C++ para Microsoft Office, el control de hospedaje en Internet Explorer o los complementos y proyectos de Microsoft Outlook.
Actualmente no se puede enlazar a algunas propiedades de Windows Forms. El ejemplo más notable es la propiedad ClientSize, ya que enlazar a esta propiedad provocaría un comportamiento impredecible en tiempo de ejecución. Normalmente, puede solucionar estos problemas guardando y cargando esta configuración mediante programación.
La configuración de la aplicación no tiene ninguna instalación integrada para cifrar la información automáticamente. Nunca debe almacenar información relacionada con la seguridad, como contraseñas de base de datos, en texto no cifrado. Si desea almacenar dicha información confidencial, como desarrollador de aplicaciones es responsable de asegurarse de que es segura. Si quiere almacenar cadenas de conexión, se recomienda usar la seguridad integrada de Windows y no recurrir a contraseñas de codificación rígida en la dirección URL. Para obtener más información, consulte Seguridad de acceso de código y ADO.NET.
Introducción a la configuración de la aplicación
Si usa Visual Studio, puede definir la configuración en el Diseñador de Windows Forms mediante la propiedad (ApplicationSettings) en la ventana Propiedades . Al definir la configuración de esta manera, Visual Studio crea automáticamente una clase contenedora administrada personalizada que asocia cada configuración a una propiedad de clase. Visual Studio también se encarga de enlazar la configuración a una propiedad en un formulario o control para que la configuración del control se restaure automáticamente cuando se muestre su formulario y se guarde automáticamente cuando se cierre el formulario.
Si desea un control más detallado sobre la configuración, puede definir su propia clase contenedora de configuración de aplicaciones personalizadas. Esto se logra derivando una clase de ApplicationSettingsBase, agregando una propiedad que corresponde a cada configuración y aplicando atributos especiales a estas propiedades. Para obtener más información sobre cómo crear clases contenedoras, consulte Arquitectura de configuración de aplicaciones.
También puede usar la Binding clase para enlazar la configuración mediante programación a las propiedades de formularios y controles.
Consulte también
- ApplicationSettingsBase
- SettingsProvider
- LocalFileSettingsProvider
- IPersistComponentSettings
- Cómo: Validar la configuración de la aplicación
- Administración de la configuración de la aplicación (.NET)
- Cómo: Leer la configuración en tiempo de ejecución con C#
- Usar la configuración de la aplicación y la configuración de usuario
- Arquitectura de configuración de la aplicación
- Configuración de la aplicación para controles personalizados
.NET Desktop feedback