Cenni preliminari sulle impostazioni delle applicazioniApplication Settings Overview

Questo argomento descrive come creare e archiviare i dati delle impostazioni per conto dell'applicazione e degli utenti.This topic discusses how to create and store settings data on behalf of your application and your users.

La funzionalità Impostazioni applicazione di Windows Form semplifica le operazioni di creazione, archiviazione e gestione delle preferenze personalizzate a livello di applicazione e utente nel computer client.The Application Settings feature of Windows Forms makes it easy to create, store, and maintain custom application and user preferences on the client computer. Le impostazioni dell'applicazione Windows Form consentono non solo di archiviare dati applicativi quali stringhe di connessione a database, ma anche dati specifici dell'utente, quali preferenze per l'applicazione.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. L'uso di Visual Studio o di codice gestito personalizzato consente di creare nuove impostazioni, leggerle e scriverle su disco, associarle a proprietà di form e convalidare i dati delle impostazioni prima di caricarle e salvarle.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.

Le impostazioni dell'applicazione consentono agli sviluppatori di salvare lo stato nell'applicazione ricorrendo a una quantità molto limita di codice personalizzato sostituendo in tal modo le proprietà dinamiche delle versioni precedenti di .NET Framework.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.NET Framework. Contengono molti miglioramenti rispetto alle proprietà dinamiche, che sono di sola lettura, ad associazione tardiva e richiedono ulteriore programmazione personalizzata.Application settings contains many improvements over dynamic properties, which are read-only, late-bound, and require more custom programming. Le classi delle proprietà dinamiche sono state mantenute in .NET Framework 2.0.NET Framework 2.0, ma sono solo classi shell che eseguono il wrapping delle classi delle impostazioni dell'applicazione.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.

Informazioni sulle impostazioni dell'applicazione.What Are Application Settings?

Le applicazioni Windows Form richiedono spesso dati di importanza fondamentale per l'esecuzione che tuttavia non è opportuno includere direttamente nel codice dell'applicazione.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. Se l'applicazione usa un servizio Web o un server di database, è consigliabile archiviare le informazioni in un file separato, in modo che sia possibile modificarle in futuro senza dover ricompilare.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. Analogamente, è possibile che le applicazioni richiedano di archiviare dati specifici per l'utente corrente.Similarly, your applications may require storing data that is specific to the current user. Molte applicazioni, ad esempio, dispongono di preferenze utente che ne personalizzano l'aspetto e il comportamento.Most applications, for example, have user preferences that customize the application's appearance and behavior.

Le impostazioni dell'applicazione soddisfano entrambe le necessità in quanto costituiscono un semplice metodo per l'archiviazione di impostazioni tanto a livello di applicazione quanto a livello di utente nel computer client.Application settings addresses both needs by providing an easy way to store both application-scoped and user-scoped settings on the client computer. Usando Visual Studio o un editor di codice è possibile definire un'impostazione per una data proprietà specificandone il nome, il tipo di dati e l'ambito (applicazione o utente).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). È anche possibile inserire impostazioni correlate in gruppi denominati per semplificarne l'impiego e la leggibilità.You can even place related settings into named groups for easier use and readability. Una volta definite, le impostazioni assumono carattere permanente e vengono lette automaticamente in memoria in fase di esecuzione.Once defined, these settings are persisted and read back into memory automatically at run time. Un'architettura modulare rende possibile la modifica del meccanismo di persistenza, ma per impostazione predefinita viene usato il file system locale.A pluggable architecture enables the persistence mechanism to be changed, but by default, the local file system is used.

Impostazioni applicazione rende permanenti i dati in formato XML inserendoli in file di configurazione diversi (con estensione config) a seconda dell'ambito dell'impostazione (applicazione o utente).Application settings works by persisting data as XML to different configuration (.config) files, corresponding to whether the setting is application-scoped or user-scoped. Nella maggior parte dei casi le impostazioni relative all'applicazione sono di sola lettura perché contengono informazioni sul programma e normalmente non è necessario sovrascriverle.In most cases, the application-scoped settings are read-only; because they are program information, you will typically not need to overwrite them. Per contro, le impostazioni relative all'utente possono essere lette e scritte senza problemi in fase di esecuzione anche se l'applicazione è eseguita con attendibilità parziale.By contrast, user-scoped settings can be read and written safely at run time, even if your application runs under partial trust. Per altre informazioni sull'attendibilità parziale, vedere Security in Windows Forms Overview.For more information about partial trust, see Security in Windows Forms Overview.

Le impostazioni vengono archiviate come frammenti XML nei file di configurazione.Settings are stored as XML fragments in configuration files. Le impostazioni con ambito di applicazione sono rappresentate dall'elemento <application.Settings> e di solito sono inserite in app.exe.config, dove app è il nome del file eseguibile principale.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. Le impostazioni con ambito di utente sono rappresentate dall'elemento <userSettings> e inserite in utente.config, dove utente è il nome dell'utente che esegue l'applicazione in quel momento.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. È necessario distribuire il file app.exe.config con l'applicazione. L'architettura delle impostazioni creerà i file utente.config su richiesta la prima volta che nell'applicazione verranno salvate le impostazioni per tale utente.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. È anche possibile definire un blocco <userSettings> in app.exe.config per fornire valori predefiniti per le impostazioni con ambito di utente.You can also define a <userSettings> block within app.exe.config to provide default values for user-scoped settings.

Anche per i controlli personalizzati è possibile salvare le impostazioni implementando l'interfaccia IPersistComponentSettings , che espone il metodo SaveSettings .Custom controls can also save their own settings by implementing the IPersistComponentSettings interface, which exposes the SaveSettings method. Il controllo ToolStrip di Windows Form implementa questa interfaccia per salvare la posizione delle barre degli strumenti e dei relativi elementi tra le sessioni di un'applicazione.The Windows Forms ToolStrip control implements this interface to save the position of toolbars and toolbar items between application sessions. Per altre informazioni sui controlli personalizzati e le impostazioni dell'applicazione, vedere Application Settings for Custom Controls (Impostazioni delle applicazioni per i controlli personalizzati).For more information about custom controls and application settings, see Application Settings for Custom Controls.

Limitazioni della funzionalità Impostazioni applicazioneLimitations of Application Settings

Non è possibile usare questa funzionalità in un'applicazione non gestita basata su .NET Framework.NET Framework.You cannot use application settings in an unmanaged application that hosts the .NET Framework.NET Framework. Le impostazioni non funzioneranno correttamente in ambienti come i componenti aggiuntivi di Visual Studio, C++ per Microsoft Office, i controlli contenuti in Internet Explorer o i componenti aggiuntivi e i progetti di 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.

Al momento non è possibile eseguire l'associazione ad alcune proprietà nei Windows Form.You currently cannot bind to some properties in Windows Forms. L'esempio più evidente è la proprietà ClientSize , in quanto eseguendo l'associazione a questa proprietà si genera un comportamento non prevedibile in fase di esecuzione.The most notable example is the ClientSize property, as binding to this property would cause unpredictable behavior at run time. In genere è possibile ovviare a questi problemi salvando e caricando le impostazioni a livello di codice.You can usually work around these issues by saving and loading these settings programmatically.

Le impostazioni dell'applicazione non includono funzionalità incorporate per crittografare automaticamente le informazioni.Application settings has no built-in facility for encrypting information automatically. Non archiviare mai informazioni correlate alla sicurezza, ad esempio password di database, in testo non crittografato.You should never store security-related information, such as database passwords, in clear text. Se si vogliono archiviare informazioni riservate, lo sviluppatore dell'applicazione è responsabile di garantirne la sicurezza.If you want to store such sensitive information, you as the application developer are responsible for making sure it is secure. Se si vogliono archiviare le stringhe di connessione, è consigliabile usare la sicurezza integrata di Windows e non ricorrere a password impostate come hardcoded nell'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. Per altre informazioni, vedere Code Access Security and ADO.NET.For more information, see Code Access Security and ADO.NET.

Guida introduttiva alle impostazioni dell'applicazioneGetting Started with Application Settings

Se si usa Visual Studio, per definire le impostazioni in Progettazione Windows Form usare la proprietà (ApplicationSettings) nella finestra Proprietà .If you use Visual Studio, you can define settings within the Windows Forms Designer using the (ApplicationSettings) property in the Properties window. Quando si definiscono le impostazioni in questo modo, viene creata automaticamente una classe wrapper gestita personalizzata che stabilisce un'associazione tra ogni impostazione e una proprietà di classe.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 stabilisce inoltre l'associazione tra l'impostazione e una proprietà su un form o controllo, in modo che le impostazioni del controllo vengano ripristinate automaticamente alla visualizzazione del form e salvate automaticamente alla chiusura.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.

Se si desidera un controllo maggiore sulle impostazioni, è possibile definire una classe wrapper personalizzata per le impostazioni dell'applicazione.If you want more detailed control over your settings, you can define your own custom applications settings wrapper class. Questa operazione viene eseguita derivando una classe da ApplicationSettingsBase, aggiungendo una proprietà corrispondente a ogni impostazione e applicando attributi speciali alle proprietà.This is accomplished by deriving a class from ApplicationSettingsBase, adding a property that corresponds to each setting, and applying special attributes to these properties. Per informazioni sulla creazione di classi wrapper, vedere Application Settings Architecture (Architettura Impostazioni applicazione).For details about creating wrapper classes, see Application Settings Architecture.

È anche possibile usare la classe Binding per associare le impostazioni alle proprietà a livello di codice su form e controlli.You can also use the Binding class to bind settings programmatically to properties on forms and controls.

Vedere ancheSee Also

ApplicationSettingsBase
SettingsProvider
LocalFileSettingsProvider
IPersistComponentSettings
Procedura: Convalidare le impostazioni applicazioneHow to: Validate Application Settings
Gestione delle impostazioni di un'applicazione (.NET)Managing Application Settings (.NET)
Procedura: Leggere le impostazioni in fase di esecuzione con C#How To: Read Settings at Run Time With C#
Uso delle impostazioni applicazione e delle impostazioni utenteUsing Application Settings and User Settings
Application Settings ArchitectureApplication Settings Architecture
Application Settings for Custom Controls (Impostazioni delle applicazioni per i controlli personalizzati)Application Settings for Custom Controls