itemprop="text">
When developing a .NET Windows Forms
Application we have the choice between those App.config
tags to
store our configuration values. Which one is
better?
key="RequestTimeoutInMilliseconds" value="10000"/>
type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c5612342342" >
name="Project1.Properties.Settings" type="System.Configuration.ClientSettingsSection,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5612342342"
requirePermission="false" />
serializeAs="String">
TABLEA
The basic
is easier to deal with - just slap in a
entry and you're
done.
The downside is: there's no type-checking,
e.g. you cannot safely assume your number that you wanted to configure there really is a
number - someone could put a string into that setting..... you just access it as
ConfigurationManager["(key)"]
and then it's up to you to know
what you're dealing with.
Also, over time, the
can get rather convoluted and messy, if
lots of parts of your app start putting stuff in there (remember the old windows.ini
file? :-)).
If you can, I would prefer and
recommend using your own configuration sections - with .NET 2.0, it's really become
quite easy, That way, you can:
- a) Define your
configuration settings in code and have them type-safe
and checked
- b) You can cleanly separate YOUR
settings from everyone
else's. And you can reuse your config code,
too!
There's a series of
really good articles on you to demystify the .NET 2.0 configuration system on
CodeProject:
href="http://www.codeproject.com/KB/dotnet/mysteriesofconfiguration.aspx"
rel="noreferrer">Unraveling the mysteries of .NET 2.0 configuration
href="http://www.codeproject.com/KB/dotnet/mysteriesofconfiguration2.aspx"
rel="noreferrer">Decoding the mysteries of .NET 2.0
configuration
href="http://www.codeproject.com/KB/dotnet/mysteriesofconfiguration3.aspx"
rel="noreferrer">Cracking the mysteries of .NET 2.0
configuration
Highly
recommended! Jon Rista did a great job explaining the configuration system in .NET
2.0.
No comments:
Post a Comment