Solved

Save user settings in .Net Windows application

Posted on 2008-06-14
7
4,232 Views
Last Modified: 2013-11-07
I am writing a Windows application using C#.Net.  What is the preferred method for storing user settings/preferences without writing to the registry?
0
Comment
Question by:ktmedlin
7 Comments
 
LVL 11

Expert Comment

by:anuragal
ID: 21787608
One way to put them in memory by Creating a singleton class & store the user settings.

Another way (Recommended) is to store this into database tables.

Anurag
0
 

Author Comment

by:ktmedlin
ID: 21787634
The user's settings must be stored on the hard drive (not in memory) so that the same settings can be used when the user has closed and reopened the app.  Storing settings in a database is not an option.  Need to use a file of some type but don't know what kind.  I assume XML would be the best solution and I have heard of Settings.settings and App.config but I don't know which one to use or how to use them.
0
 
LVL 11

Accepted Solution

by:
anuragal earned 500 total points
ID: 21787669
You can use a flat file that is a text file for storing the user specific data. In this flat file you can put settings like this

[UserId=""]
Maximize=1;
Toolbar=0;
---
---

[UserId=""]


When you read this text file you can read the key from 0 to 1 less then index of =.
& fopr reading the  value 1 + index of = to 1 less then index of ;

Another way is to use a XML file.
Make a empty xml file with default values with nodes

<UserSettings UserId="">
   <Maximize>1</Maximize>
   <ToolBar>0</ToolBar>
</UserSettings>

Now read this xml file in your code through XMLDocument & get the required values.

Don't use settings.settings & App.config for this as they contain application specific settings not user specific.


Anurag
0
NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

 
LVL 7

Expert Comment

by:Dauhee
ID: 21788446

READ SETTINGS:
dsConfig = New DataSet
dsConfig.ReadXml('c:\file.xml')
msgbox dsConfig.Tables(0).Rows(0).Item('mydatafield')

WRITE SETTINGS:
dsConfig.Tables(0).Rows(0).Item('mydatafield') = 'changed value'
dsConfig.AcceptChanges()
dsConfig.WriteXml('c:\file.xml')

XML FILE:
<?xml version="1.0" standalone="yes"?>
<Settings>
  <MYTABLE>
    <mydatafield>Hello there this is a setting</mydatafield>
    <anotherfield>bla bla Bla</anotherfield>
  </MYTABLE>
</Settings>
0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 21788532
0
 
LVL 1

Expert Comment

by:cherrera2001
ID: 21808739
One possible solution is if you saved the user settings in an object, to serialize the object to an xml file. This allows for a clean and easy way to save and retrieve the data. There is also an msdn article on different ways to approach this here: http://msdn.microsoft.com/en-us/library/ms973902.aspx.
0
 

Author Closing Comment

by:ktmedlin
ID: 31467295
Im going with the XML file option.  Thanks to all the experts for the comments.
0

Featured Post

ScreenConnect 6.0 Free Trial

At ScreenConnect, partner feedback doesn't fall on deaf ears. We collected partner suggestions off of their virtual wish list and transformed them into one game-changing release: ScreenConnect 6.0. Explore all of the extras and enhancements for yourself!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

zlib is a free compression library (a DLL) on which the popular gzip utility is built.  In this article, we'll see how to use the zlib functions to compress and decompress data in memory; that is, without needing to use a temporary file.  We'll be c…
Programmer's Notepad is, one of the best free text editing tools available, simply because the developers appear to have second-guessed every weird problem or issue a programmer is likely to run into. One of these problems is selecting and deleti…
The viewer will learn how to synchronize PHP projects with a remote server in NetBeans IDE 8.0 for Windows.
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question