Introducción a la configuración de la aplicación

Este tema describe cómo crear y almacenar los datos de la configuración de almacé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 usuarios y aplicaciones personalizadas en el cliente. Con la configuración de la aplicación de Windows Forms, no sólo puede almacenar los datos de la aplicación como cadenas de conexión a bases de datos, sino también los datos específicos del usuario, como preferencias de la aplicación de usuario. Con Visual Studio o el código administrado personalizado, se pueden crear nuevos valores de configuración, leerlos y escribirlos en el disco, enlazarlos a propiedades de los formularios y validar los datos de la configuración antes de cargarlos y guardarlos.

La configuración de la aplicación permite a los desarrolladores guardar el estado en la aplicación utilizando muy poco código personalizado, lo que supone reemplazar las propiedades dinámicas de versiones anteriores de .NET Framework. La configuración de la aplicación cuenta con muchas mejoras en las propiedades dinámicas, son de sólo lectura, están enlazadas en tiempo de ejecución y requieren una programación más personalizada. Las clases de propiedad dinámicas se han conservado en .NET Framework versión 2.0, pero son sólo clases contenedoras que incluyen las clases de configuración de la aplicación.

Configuración de la aplicación

Las aplicaciones de Windows Forms a menudo requieren datos necesarios para ejecutar la aplicación, pero que no desea incluir directamente en el código de la aplicación. Si la aplicación utiliza un servicio Web o un servidor de bases de datos, puede que desee almacenar esta información en un archivo independiente, para poder modificarlo en el futuro sin necesidad de recompilarlo. De forma similar, las aplicaciones podrían necesitar almacenar datos específicos para el usuario actual. La mayoría de las aplicaciones tienen preferencias del usuario que personalizan el aspecto de la aplicación y el comportamiento.

La Configuración de la aplicación aborda ambas necesidades proporcionando una manera sencilla de almacenar la configuración de ámbito de aplicación y ámbito de usuario en el equipo cliente. Con Visual Studio o un editor de código, puede definir la configuración para una propiedad determinada especificando su nombre, tipo de datos y ámbito (aplicación o usuario). Incluso puede colocar valores de configuración relacionados en los grupos con nombre por legibilidad y para un uso más sencillo. Una vez definida, esta configuración se mantiene y se vuelve a leer automáticamente de la memoria en tiempo de ejecución. Una arquitectura conectable permite cambiar el mecanismo de persistencia, pero de manera predeterminada, se utiliza el sistema de archivos local.

La Configuración de la aplicación funciona mediante datos almacenados como XML para archivos de configuración diferentes (.config), dependiendo de si la configuración es de ámbito de aplicación o de usuario. En la mayoría de los casos, los valores de configuración de ámbito de aplicación son de sólo lectura; dado que es información del programa, normalmente es necesario sobrescribirla. Por el contrario, se puede leer y escribir la configuración de ámbito de usuario de forma segura en tiempo de ejecución, incluso si ejecuta la aplicación con confianza parcial. Para obtener más información acerca de la confianza parcial, vea Información general sobre la seguridad en formularios Windows Forms.

Los valores de configuración se almacenan como fragmentos de XML en archivos de configuración. El elemento <application.Settings> representa los valores de configuración del ámbito de aplicación y generalmente se coloca en app.exe.config, donde app es el nombre del archivo ejecutable principal. El elemento <userSettings> representa los valores de configuración del ámbito de usuario y se coloca en user.config, donde user es el nombre de usuario de la persona que está ejecutando la aplicación. Se debe implementar el archivo app.exe.config con su aplicación; la arquitectura de la configuración creará los archivos user.config solicitados la primera vez que la aplicación guarde los valores de configuración para ese usuario. También se puede definir un bloque <userSettings> dentro de app.exe.config para proporcionar los valores predeterminados de la configuración de ámbito de usuario.

Los controles personalizados también guardan su propia configuración implementando la interfaz IPersistComponentSettings que expone el método SaveSettings. El control ToolStrip de formularios Windows Forms implementa esta interfaz para guardar la posición de barras de herramientas y de elementos de 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, vea Configuración de la aplicación para controles personalizados.

Limitaciones de la configuración de la aplicación

No se puede utilizar la configuración de la aplicación en una aplicación no administrada que hospede .NET Framework. La configuración no funcionará en entornos tales como complementos de Visual Studio, C++ para Microsoft Office, el hospedaje de controles en Internet Explorer o complementos y proyectos de Outlook.

Por el momento no podrá enlazar a algunas propiedades de formularios Windows Forms. El ejemplo más notable es la propiedad ClientSize, ya que el enlace a esta propiedad en tiempo de ejecución produciría un comportamiento imprevisible. Normalmente puede solucionar estos problemas guardando y cargando estas opciones de configuración mediante programación.

La configuración de la aplicación no tiene medios integrados para cifrar automáticamente la información. No almacene información de seguridad (por ejemplo, contraseñas de la base de datos) en formato de texto no cifrado. Si desea almacenar tal información confidencial, como programador de aplicaciones usted es la persona responsable de usar un método seguro. Si desea almacenar las cadenas de conexión, se recomienda usar la seguridad integrada de Windows y no recurrir a codificar contraseñas en la dirección URL. Para obtener más información, vea Seguridad de acceso del código y ADO.NET.

Información general sobre la configuración de la aplicación

Si utiliza Visual Studio, puede definir la configuración dentro del Diseñador de Windows Forms utilizando la propiedad (ApplicationSettings) de la ventana Propiedades. Cuando define la configuración de este modo, Visual Studio automáticamente crea una clase contenedora administrada personalizada que asocia cada configuración a una propiedad de clase. Visual Studio también se ocupa de enlazar la configuración a una propiedad de un formulario o control para que automáticamente se restaure la configuración de control cuando se muestra su formulario, y se guarde automáticamente cuando se cierre el formulario. Para obtener información detallada, vea Cómo: Crear una configuración de aplicación mediante el diseñador.

Si desea obtener un control más detallado sobre la configuración, puede definir su propia clase contenedora de configuración de aplicación personalizada. Esto se consigue heredando de una clase de ApplicationSettingsBase, agregando una propiedad correspondiente a cada configuración y aplicando atributos especiales a estas propiedades. Para obtener información detallada acerca de cómo crear clases contenedoras, vea Arquitectura de configuración de la aplicación.

También puede utilizar la clase Binding para enlazar, mediante programación, la configuración a las propiedades de los formularios y de los controles. Para obtener más información sobre cómo crear clases contenedoras, vea Cómo: Crear una configuración de aplicación mediante el diseñador.

Vea también

Tareas

Cómo: Crear una configuración de aplicación mediante el diseñador

Cómo: Validar la configuración de la aplicación

Referencia

ApplicationSettingsBase

SettingsProvider

LocalFileSettingsProvider

IPersistComponentSettings

Conceptos

Arquitectura de configuración de la aplicación

Configuración de la aplicación para controles personalizados