Introducción a la configuración de la aplicaciónApplication Settings Overview

En este tema se describe cómo crear y almacenar los datos de configuración en nombre de la aplicación y sus usuarios.This topic discusses how to create and store settings data on behalf of your application and your users.

La característica Configuración de la aplicación de Windows Forms facilita la creación, el almacenamiento y el mantenimiento de las preferencias personalizadas de usuarios y aplicaciones en el equipo cliente.The Application Settings feature of Windows Forms makes it easy to create, store, and maintain custom application and user preferences on the client computer. Con Configuración de la aplicación de Windows Forms, no solo puede almacenar datos de las aplicaciones, como cadenas de conexión a bases de datos, sino también datos específicos de los usuarios, como las preferencias de la aplicación de un usuario.With Windows Forms application settings, you can store not only application data such as database connection strings, but also user-specific data, such as user application preferences. Con Visual Studio o código administrado personalizado, puede crear una nueva configuración, leerla y escribirla en el disco, enlazarla a propiedades de los formularios y validar los datos de configuración antes de cargarlos y guardarlos.Using Visual Studio or custom managed code, you can create new settings, read them from and write them to disk, bind them to properties on your forms, and validate settings data prior to loading and saving.

Configuración de la aplicación permite a los desarrolladores guardar el estado en su aplicación con muy poco código personalizado y es un sustituto para las propiedades dinámicas en versiones anteriores de .NET Framework.Application settings enables developers to save state in their application using very little custom code, and is a replacement for dynamic properties in previous versions of the .NET Framework. Configuración de la aplicación ofrece muchas mejoras en comparación con las propiedades dinámicas, que son de solo lectura, se enlazan en tiempo de ejecución y requieren más programación personalizada.Application settings contains many improvements over dynamic properties, which are read-only, late-bound, and require more custom programming. Las clases de las propiedades dinámicas se conservan en .NET Framework 2.0.NET Framework 2.0, pero son solo clases contenedoras de las clases de Configuración de la aplicación.The dynamic property classes have been retained in .NET Framework 2.0.NET Framework 2.0, but they are just shell classes that thinly wrap the application settings classes.

¿Qué es Configuración de la aplicación?What Are Application Settings?

Las aplicaciones de Windows Forms, a menudo, requieren datos que son esenciales para ejecutar la aplicación, pero que no quiere incluir directamente en el código de la aplicación.Your Windows Forms applications will often require data that is critical to running the application, but which you do not want to include directly in the application's code. Si la aplicación utiliza un servicio Web o un servidor de bases de datos, puede que le convenga almacenar esta información en un archivo independiente, para poder cambiarla en el futuro sin tener que volver a compilarla.If your application uses a Web Service or a database server, you may want to store this information in a separate file, so that you can change it in the future without re-compiling. De manera similar, puede que las aplicaciones necesiten almacenar datos específicos del usuario actual.Similarly, your applications may require storing data that is specific to the current user. La mayoría de las aplicaciones, por ejemplo, tienen preferencias del usuario con las que se personalizan la apariencia y el comportamiento de la aplicación.Most applications, for example, have user preferences that customize the application's appearance and behavior.

La característica Configuración de la aplicación cubre estas dos necesidades proporcionando una manera sencilla de almacenar tanto la configuración del ámbito del usuario como la del ámbito de la aplicación en el equipo cliente.Application settings addresses both needs by providing an easy way to store both application-scoped and user-scoped settings on the client computer. Con Visual Studio o un editor de código, puede definir una configuración para una propiedad determinada especificando su nombre, el tipo de datos y el ámbito (aplicación o usuario).Using Visual Studio or a code editor, you define a setting for a given property by specifying its name, data type, and scope (application or user). Incluso puede colocar configuraciones relacionadas en grupos con nombres para simplificar su uso y su legibilidad.You can even place related settings into named groups for easier use and readability. Una vez definida, esta configuración se conserva y se lee en la memoria automáticamente en tiempo de ejecución.Once defined, these settings are persisted and read back into memory automatically at run time. Una arquitectura acoplable permite cambiar el mecanismo de persistencia, pero de forma predeterminada, se utiliza el sistema de archivos local.A pluggable architecture enables the persistence mechanism to be changed, but by default, the local file system is used.

Configuración de la aplicación funciona mediante la persistencia de los datos en XML para archivos de configuración (.config) diferentes, según si la configuración es del ámbito de la aplicación o del ámbito del usuario.Application settings works by persisting data as XML to different configuration (.config) files, corresponding to whether the setting is application-scoped or user-scoped. En la mayoría de los casos, la configuración del ámbito de la aplicación es de solo lectura. Dado que es información del programa, lo normal es que no tenga que sobrescribirla.In most cases, the application-scoped settings are read-only; because they are program information, you will typically not need to overwrite them. Por el contrario, la configuración del ámbito del usuario se puede leer y escribir de manera segura en tiempo de ejecución, aunque la aplicación se ejecute con confianza parcial.By contrast, user-scoped settings can be read and written safely at run time, even if your application runs under partial trust. Para más información sobre la confianza parcial, consulte Información general sobre la seguridad en Windows Forms.For more information about partial trust, see Security in Windows Forms Overview.

Las configuraciones se almacenan como fragmentos XML en archivos de configuración.Settings are stored as XML fragments in configuration files. La configuración del ámbito de la aplicación se representa con el elemento <application.Settings> y, generalmente, se coloca en aplicación.exe.config, donde aplicación es el nombre del archivo ejecutable principal.Application-scoped settings are represented by the <application.Settings> element, and generally are placed in app.exe.config, where app is the name of your main executable file. La configuración del ámbito del usuario se representa con el elemento <userSettings> y se coloca en usuario.config, donde usuario es el nombre de usuario de la persona que está ejecutando la aplicación.User-scoped settings are represented by the <userSettings> element and are placed in user.config, where user is the user name of the person currently running the application. El archivo aplicación.exe.config se debe implementar con la aplicación. La arquitectura de la configuración creará los archivos usuario.config según sean necesarios la primera vez que la aplicación guarde la configuración de cada usuario.You must deploy the app.exe.config file with your application; the settings architecture will create the user.config files on demand the first time the application saves settings for that user. También puede definir un bloque <userSettings> en aplicación.exe.config para proporcionar los valores predeterminados de la configuración del ámbito del usuario.You can also define a <userSettings> block within app.exe.config to provide default values for user-scoped settings.

Los controles personalizados también pueden guardar su propia configuración implementando la interfaz IPersistComponentSettings , que expone el método SaveSettings .Custom controls can also save their own settings by implementing the IPersistComponentSettings interface, which exposes the SaveSettings method. El control ToolStrip de Windows Forms implementa esta interfaz para guardar la posición de las barras de herramientas y los elementos de las barras de herramientas entre una sesión de la aplicación y otra.The Windows Forms ToolStrip control implements this interface to save the position of toolbars and toolbar items between application sessions. Para obtener más información acerca de los controles personalizados y la configuración de la aplicación, consulte Application Settings for Custom Controls.For more information about custom controls and application settings, see Application Settings for Custom Controls.

Limitaciones de Configuración de la aplicaciónLimitations of Application Settings

No se puede usar configuración de la aplicación en una aplicación no administrada que hospeda .NET Framework.You cannot use application settings in an unmanaged application that hosts the .NET Framework. La configuración no funciona en entornos como los complementos de Visual Studio, C++ para Microsoft Office, el hospedaje de controles en Internet Explorer o los complementos y proyectos de Microsoft Outlook.Settings will not work in such environments as Visual Studio add-ins, C++ for Microsoft Office, control hosting in Internet Explorer, or Microsoft Outlook add-ins and projects.

Actualmente, no es posible enlazar a algunas propiedades en Windows Forms.You currently cannot bind to some properties in Windows Forms. El ejemplo más notable es la propiedad ClientSize : si se enlaza a esta propiedad, puede producirse un comportamiento impredecible en tiempo de ejecución.The most notable example is the ClientSize property, as binding to this property would cause unpredictable behavior at run time. Normalmente, puede solucionar estos problemas guardando y cargando estas opciones con programación.You can usually work around these issues by saving and loading these settings programmatically.

Configuración de la aplicación no tiene ninguna funcionalidad integrada para cifrar la información de forma automática.Application settings has no built-in facility for encrypting information automatically. Nunca debe almacenar información relacionada con la seguridad, como contraseñas de bases de datos, en texto no cifrado.You should never store security-related information, such as database passwords, in clear text. Si quiere almacenar ese tipo de información confidencial, como desarrollador de la aplicación, es usted el responsable de asegurarse de que esté protegida.If you want to store such sensitive information, you as the application developer are responsible for making sure it is secure. Si quiere almacenar cadenas de conexión, le recomendamos que utilice la seguridad integrada de Windows y que no recurra a especificar las contraseñas de forma rígida en la dirección URL.If you want to store connection strings, we recommend that you use Windows Integrated Security and not resort to hard-coding passwords into the URL. Para más información, consulte Seguridad de acceso del código y ADO.NET.For more information, see Code Access Security and ADO.NET.

Introducción a Configuración de la aplicaciónGetting Started with Application Settings

Si utiliza Visual Studio, puede definir la configuración en el Diseñador de Windows Forms con la propiedad (ApplicationSettings) en la ventana Propiedades .If you use Visual Studio, you can define settings within the Windows Forms Designer using the (ApplicationSettings) property in the Properties window. Al definir la configuración de esta forma, Visual Studio crea automáticamente una clase contenedora administrada personalizada que asocia cada ajuste a una propiedad de clase.When you define settings this way, Visual Studio automatically creates a custom managed wrapper class which associates each setting with a class property. Visual Studio también se ocupa de enlazar el ajuste a una propiedad de 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 al cerrar el formulario.Visual Studio also takes care of binding the setting to a property on a form or control so that the control's settings are restored automatically when its form is displayed, and saved automatically when the form is closed.

Si quiere controlar la configuración con más precisión, puede definir su propia clase contenedora de configuración de la aplicación personalizada.If you want more detailed control over your settings, you can define your own custom applications settings wrapper class. Para hacerlo, derive una clase de ApplicationSettingsBase, agregue una propiedad que corresponda a cada ajuste y aplique atributos especiales a estas propiedades.This is accomplished by deriving a class from ApplicationSettingsBase, adding a property that corresponds to each setting, and applying special attributes to these properties. Para obtener más información acerca de cómo crear clases contenedoras, consulte Application Settings Architecture.For details about creating wrapper classes, see Application Settings Architecture.

También puede utilizar la clase Binding para enlazar la configuración con programación a las propiedades de formularios y controles.You can also use the Binding class to bind settings programmatically to properties on forms and controls.

Vea tambiénSee also