In ASP.NET, application settings can be specified in the web.config file such as:

<appSettings>
    <add key="PostsPerPage" value="6" />
    <add key="CookieName" value="Foo" />
</appSettings>

The beauty of this is that you don’t need to edit code to make changes to the application, and a single pre-compiled application can be used across multiple environments with different settings.

However, there are times when an application can have 100’s of configuration settings, which will bloat the size of the web.config file.

Therefore in these instances it’s best to abstract the application settings away from the main web.config file.

To do this a configSource attribute can be applied to the appSettings node of the web.config with a path to a seperate config file:

<appSettings configSource="Config\AppSettings.config" />

Then the Config\AppSettings.config can contain the appSettings node which would usually be in the web.config:

<appSettings>
    <add key="PostsPerPage" value="6" />
    <add key="CookieName" value="Foo" />
</appSettings>