Can someone please explain to me the difference between the AppSettings and ApplicationSettings sections in the App.Config file. Why are there two different sections that apparently do the same thing??
3 Answers
I believe that the <appsettings/>
collection in your app.config/web.config allows you to store settings in key-value pairs, and is accessed through the System.Configuration API, as follows:
string setting = System.Configuration.ConfigurationManager.AppSettings["settingName"];
Settings can only be stored and retrieved as string values.
They can also be accessed through System.Configuration.ConfigurationSettings, but this way has been deprecated.
The <ApplicationSettings/>
collection in your config file stores your settings in a strongly typed manner, and also allows you to access these settings in a strongly typed way. VS automatically generates wrapper classes for you, in the settings.settings file in the Properties folder of your project. To add a settings file to your project, right click on your project, and click Properties, then open the Settings tab. Then click the link to add a new settings file. VS will automatically generate one for you. It's that easy.
You usually access your settings as follows:
MyProjectName.Properties.Settings.Default.SettingName
Notice the difference in how the two collections are accessed.
The second (non-deprecated) way of storing settings is the better way to do it, and provides lots of flexibility and power. It takes some learning though - but it is worth the effort.

- 90,659
- 85
- 207
- 305

- 8,029
- 11
- 48
- 56
-
11"The above way of doing things has been deprecated." - System.Configuration.ConfigurationSettings.AppSettings has been deprecated, but it's replaced by System.Configuration.ConfigurationManager.AppSettings. The use of the
configuration section has not been deprecated. – Joe Jun 29 '09 at 17:31 -
Almost missed @Joe's addendum. Added it to the original post for people who don't read all the comments. – Boris Callens Mar 09 '12 at 15:39
http://kevinskorner.net/blog/post/2008/03/27/applicationSettings-vs-appSettings.aspx
Application settings give us more control and most important, intelliscence.

- 27,253
- 7
- 76
- 97
-
1That link is dead, but it's available on Archive.org: http://web.archive.org/web/20100721004740/http://kevinskorner.net/blog/post/2008/03/27/applicationSettings-vs-appSettings.aspx – Nick Mar 06 '15 at 20:13
It's to do with backwards compatibility, which we all love. ApplicationSettings is the newer construct.
User the newer ConfigurationManager and WebConfigurationManager classes to get at your settings now and to do this you need a reference so System.configuration and not System.Configuration :).
At one point it started to get a bit silly didn't it.

- 1,835
- 4
- 25
- 30