Noodles
Das neue Konfigurationsmodell im .NET Framework 2.0
Im .NET Framwork 1.1 können Konfigurationsdaten in der app.config gespeichert, aber nicht zur Laufzet geschrieben werden. Die Daten können über die Klasse ConfigurationSettings und deren Eigenschaft AppSettings abgerufen werden. Dies geschah über einen Indexer, was unter anderem den Nachteil hat, dass Laufzeitfehler durch Rechtschreibfehler entstehen konnten.
Weiterhin konnte man Daten nur lesen und nicht speichern.
Damit ist jetzt Schluß!
Im .NET Framework 2.0 können nun Anwendungsdaten und Benutzerdaten in einer Konfigurationsdatei gespeichert und Benutzerdaten auch geschrieben werden. Man sieht dies in dem folgenden Beispiel, einer Windows Forms Anwendung ( der Code befindet sich am Ende des Artikels ). Als erstes werden in den Projekteigenschaften, auf der Seite Settings, die Konfigurationsdaten angelegt.

Volle Bildgröße
In diesem Beispiel ist es ein Connectionstring mit dem Scope Application und eine Color Eigenschaft mit dem Scope User. Die Scopes kennzeichnen Anwendungs- und Benutzerdaten.
In der app.config sieht man nun unter applicationSettings bzw. userSettings die Daten.
Da in die app.config nicht geschrieben werden kann gibt es eine weitere Konfigurationsdatei, die user.config. Diese Datei findet man unter ( der Pfad ist für dieses Beispiel, daher kann es ab Anwendungsdaten abweichen )
C:\Dokumente und Einstellungen\UserName\Lokale Einstellungen\Anwendungsdaten\MyCsharpConfigurationSam\MyCsharpConfiguratio
nSamp_Url_heky24hmkwdp50ge24kv42daxdajmqcc\1.0.0.0
In dieser Datei werden nun die Daten gespeichert, die veränderbar sind, sich also im Scope User befinden.
Die Datei wird erst geschrieben, sobald die erste Eigenschaft gespeichert wird, werden die Daten nur gelesen, wird auch keine user.config geschrieben.
Das Visual Studio generiert nun die Klasse Settings ( ProjectNameSpace.Properties ), in dieser Klasse findet man die typisierten Eigenschaften.
Jetzt erstellen wir das Beispiel und sehen die, in den Settings angegeben Farbe als Hintergrundfarbe der Form und den Connectionstring als Titel ( ist etwas realitiätsfremd, aber es soll ja auch nur als Beispiel dienen. ).
In dem Click Ereignis des Buttons öffnet sich ein Colordialog.

Wird dieser mit Ok bestätigt, wird die ausgewählte Farbe in der user.config. gespeichtert.
Anschließend laden wir Daten erneut ( Funktion: LoadConfigSettings() ), damit wir die Änderung sofort sehen.

Wenn man jetzt in der AssemblyInfo.cs die Versionsnummer der Assemblies verändert und das Beispiel erneut ausführt, sieht man, dass für die neue Version eine neue user.config Datei angelegt wird.
Der Code:
Im .NET Framwork 1.1 können Konfigurationsdaten in der app.config gespeichert, aber nicht zur Laufzet geschrieben werden. Die Daten können über die Klasse ConfigurationSettings und deren Eigenschaft AppSettings abgerufen werden. Dies geschah über einen Indexer, was unter anderem den Nachteil hat, dass Laufzeitfehler durch Rechtschreibfehler entstehen konnten.
Weiterhin konnte man Daten nur lesen und nicht speichern.
Damit ist jetzt Schluß!
Im .NET Framework 2.0 können nun Anwendungsdaten und Benutzerdaten in einer Konfigurationsdatei gespeichert und Benutzerdaten auch geschrieben werden. Man sieht dies in dem folgenden Beispiel, einer Windows Forms Anwendung ( der Code befindet sich am Ende des Artikels ). Als erstes werden in den Projekteigenschaften, auf der Seite Settings, die Konfigurationsdaten angelegt.

Volle BildgrößeIn diesem Beispiel ist es ein Connectionstring mit dem Scope Application und eine Color Eigenschaft mit dem Scope User. Die Scopes kennzeichnen Anwendungs- und Benutzerdaten.
In der app.config sieht man nun unter applicationSettings bzw. userSettings die Daten.
XML-Code: |
<?xml version="1.0" encoding="utf-8" ?>
|
Da in die app.config nicht geschrieben werden kann gibt es eine weitere Konfigurationsdatei, die user.config. Diese Datei findet man unter ( der Pfad ist für dieses Beispiel, daher kann es ab Anwendungsdaten abweichen )
C:\Dokumente und Einstellungen\UserName\Lokale Einstellungen\Anwendungsdaten\MyCsharpConfigurationSam\MyCsharpConfiguratio
nSamp_Url_heky24hmkwdp50ge24kv42daxdajmqcc\1.0.0.0
In dieser Datei werden nun die Daten gespeichert, die veränderbar sind, sich also im Scope User befinden.
Die Datei wird erst geschrieben, sobald die erste Eigenschaft gespeichert wird, werden die Daten nur gelesen, wird auch keine user.config geschrieben.
Das Visual Studio generiert nun die Klasse Settings ( ProjectNameSpace.Properties ), in dieser Klasse findet man die typisierten Eigenschaften.
Jetzt erstellen wir das Beispiel und sehen die, in den Settings angegeben Farbe als Hintergrundfarbe der Form und den Connectionstring als Titel ( ist etwas realitiätsfremd, aber es soll ja auch nur als Beispiel dienen. ).
In dem Click Ereignis des Buttons öffnet sich ein Colordialog.

Wird dieser mit Ok bestätigt, wird die ausgewählte Farbe in der user.config. gespeichtert.
XML-Code: |
<?xml version="1.0" encoding="utf-8"?>
|
Anschließend laden wir Daten erneut ( Funktion: LoadConfigSettings() ), damit wir die Änderung sofort sehen.

Wenn man jetzt in der AssemblyInfo.cs die Versionsnummer der Assemblies verändert und das Beispiel erneut ausführt, sieht man, dass für die neue Version eine neue user.config Datei angelegt wird.
Der Code:
C#-Code: |
namespace MyCsharpConfigurationSample
|

, habe wahrscheinlich bei der Suche das falsche Datum eingegeben, das hat man nun davon wenn man länger als 12 h am PC sitzt. Besitze insgesamt aber auch noch 8 andere Laufwerke, da kann man schon mal durcheinander kommen. Die Datei findet sich bei mir im Verzeichnis: