Cenni preliminari sulle impostazioni delle applicazioni

Aggiornamento: novembre 2007

In questo argomento viene descritto come creare e archiviare i dati di impostazione per conto dell'applicazione e degli utenti.

La funzione 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. 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 utente per l'applicazione. L'utilizzo 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.

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. Contengono molti miglioramenti rispetto alle proprietà dinamiche, che sono di sola lettura, ad associazione tardiva e richiedono ulteriore programmazione personalizzata. Le classi delle proprietà dinamiche sono state mantenute in .NET Framework versione 2.0 ma sono solo classi shell che eseguono il wrapping delle classi delle impostazioni dell'applicazione.

Informazioni sulle impostazioni dell'applicazione

Le applicazioni Windows Form richiedono spesso dati di importanza fondamentale per l'esecuzione che tuttavia non è opportuno includere direttamente nel codice dell'applicazione. Se nell'applicazione viene utilizzato un servizio Web o un server di database, è consigliabile archiviare tali informazioni in un file separato, affinché sia possibile modificarle in futuro senza dover ricompilare. Analogamente è possibile che le applicazioni richiedano di archiviare dati specifici per l'utente corrente. Molte applicazioni, ad esempio, dispongono di preferenze utente che personalizzano l'aspetto e il comportamento dell'applicazione.

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 utente nel computer client. Utilizzando Visual Studio o un editor di codice è possibile definire un'impostazione per una data proprietà specificandone il nome, il tipo dei dati e l'ambito (applicazione o utente). È anche possibile inserire impostazioni correlate in gruppi denominati per semplificarne l'impiego e la leggibilità. Una volta definite, le impostazioni assumono carattere permanente e vengono lette automaticamente in memoria in fase di esecuzione. Un'architettura a collegabilità immediata rende possibile la modifica del meccanismo di persistenza ma per impostazione predefinita viene utilizzato il file system locale.

La funzione Impostazioni applicazione rende permanenti i dati in formato XML inserendoli in diversi file di configurazione (con estensione config) a seconda dell'ambito dell'impostazione (applicazione o utente). Nella maggior parte dei casi le impostazioni relative all'applicazione sono di sola lettura perché contengono informazioni sul programma e normalmente non è necessario sovrascriverle. 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. Per ulteriori informazioni sull'attendibilità parziale, vedere Cenni preliminari sulla protezione in Windows Form.

Le impostazioni sono archiviate come frammenti XML nei file di configurazione. 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. 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. È necessario distribuire il file app.exe.config con l'applicazione. L'architettura delle impostazioni creerà i file utente.config a richiesta la prima volta che nell'applicazione verranno salvate le impostazioni per tale utente. È inoltre possibile definire un blocco <userSettings> in app.exe.config per fornire valori predefiniti per le impostazioni con ambito di utente.

Anche per i controlli personalizzati è possibile salvare le relative impostazioni se si implementa l'interfaccia IPersistComponentSettings, la quale espone il metodo SaveSettings. Il controllo ToolStrip di Windows Form implementa tale interfaccia per salvare la posizione delle barre degli strumenti e dei relativi elementi tra sessioni di un'applicazione. Per ulteriori informazioni sui controlli personalizzati e le impostazioni dell'applicazione, vedere Impostazioni delle applicazioni per i controlli personalizzati.

Limitazioni della funzione Impostazioni applicazione

Non è possibile utilizzare questa funzione in un'applicazione non gestita basata su .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.

Al momento non è possibile eseguire l'associazione ad alcune proprietà nei Windows Form. 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. È in genere possibile ovviare a questi problemi salvando e caricando le impostazioni a livello di codice.

Le impostazioni dell'applicazione non includono funzionalità incorporate per crittografare automaticamente le informazioni. Non archiviare mai informazioni correlate alla sicurezza, ad esempio password di database, in testo non crittografato. Se si desidera archiviare tali informazioni riservate, lo sviluppatore dell'applicazione è responsabile di garantire che siano sicure. Se si desidera archiviare le stringhe di connessione, si consiglia di utilizzare la sicurezza integrata di Windows e di non ricorrere a password impostate come hardcoded nell'URL. Per ulteriori informazioni, vedere Sicurezza dall'accesso di codice e ADO.NET.

Guida introduttiva alle impostazioni dell'applicazione

Se si utilizza Visual Studio, per definire le impostazioni in Progettazione Windows Form utilizzare la proprietà (ApplicationSettings) nella finestra Proprietà. Quando si definiscono le impostazioni in tal modo, viene creata automaticamente una classe wrapper gestita personalizzata che stabilisce un'associazione tra ogni impostazione e una proprietà di classe. In Visual Studio viene inoltre stabilita l'associazione tra l'impostazione e una proprietà su un form o controllo affinché le impostazioni del controllo vengano ripristinate automaticamente alla visualizzazione del form e salvate automaticamente alla chiusura. Per informazioni, vedere Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione.

Se si desidera esercitare un controllo maggiore sulle impostazioni, è possibile definire una classe wrapper personalizzata per le impostazioni dell'applicazione. Questa operazione viene eseguita derivando una classe da ApplicationSettingsBase, aggiungendo una proprietà corrispondente a ogni impostazione e applicando attributi speciali alle proprietà. Per informazioni sulla creazione di classi wrapper, vedere Architettura Impostazioni applicazione.

È anche possibile utilizzare la classe Binding per associare le impostazioni alle proprietà a livello di codice su form e controlli. Per ulteriori informazioni sulla creazione di classi wrapper, vedere Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione.

Vedere anche

Attività

Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione

Procedura: convalidare le impostazioni applicazione

Concetti

Architettura Impostazioni applicazione

Impostazioni delle applicazioni per i controlli personalizzati

Riferimenti

ApplicationSettingsBase

SettingsProvider

LocalFileSettingsProvider

IPersistComponentSettings