Spesso, scrivendo un software, si ha la necessità di memorizzare le preferenze dell’utente riguardo l’utilizzo che fa del programma, ad esempio layout, colori, dimensione della finestra e tanto altro a seconda del tipo di software. Ho dovuto implementare queste funzionalità nella realizzazione di SEOMax, avevo bisogno di memorizzare il template grafico, il linguaggio preferito e le ultime keywords utilizzate. Il Framework .Net offre questa funzionalità attraverso il NameScape “My” in tutte le applicazioni. Dalla finestra PROJECT nel TAB SETTINGS è possibile creare le proprietà con i valori di default ed il tipo. Queste proprietà a Run Time saranno disponibili in una collection che si chiama My.Settings 

potete definire oggetti di qualsiasi tipo. Nel TAB Settings potete memorizzare i valori di DEFAULT per ogni proprietà.
Nella colonna SCOPE potete decidere se la proprietà deve essere memorizzata a livello di UTENTE o di APPLICAZIONE. Nel mio caso ho utilizzato USER perchè avevo bisogno di differenziare le proprietà in base all’utente che utilizza il software.

Leggere le application settings
Utilizzare le application settings è veramente molto semplice. Se ad esempio avessimo bisogno di accedere alla proprietà SelectedLanguage dovremo semplicemente utilizzare My.Settings.SelectedLanguage

Come potete vedere è estremamente banale.

Memorizzare i valori della application settings
Se una delle preferenze utente cambia, bisogna memorizzare il nuovo valore.
Tutto quello che bisogna fare è My.Settings.SelectedLanguage=newlanguage e salvare con My.Settings.Save().

Se per qualche motivo avete bisogno di ricaricare le impostazioni basta chiamare My.Settings.Reload().

Potrebbe essere necessario ripristinare o leggere i valori di default delle preferenze. Questo può essere fatto accedendo alla collection My.Settings.Default
Se per esempio si ha la necessità di ripristinare il linguaggio di default, basta una riga di codice,  My.Settings.SelectedLanguage=My.Settings.Default.SelectedLanguage ed ovviamente chiamare la My.Settings.Save().

Utilizzare queste funzionalità è estremamente semplice ma l’utilità è veramente enorme in certi casi.