Settings - (benutzerspezifische) Konfigurationseinstellungen

Settings - (benutzerspezifische) Konfigurationseinstellungen

Von Jan Suchotzki

Schau dir auch die weiteren Folgen des C# Tutorial Deutsch an.

Es gibt einige Fälle in denen es hilfreich ist Konfigurationseinstellungen für deine Anwendung zu speichern. Typische Szenarien sind beispielsweise:

  • Der zuletzt verwendete Dateipfad (benutzerspezifisch)
  • Zuletzt verwendete Position und Größe des Fensters deiner Anwendung (benutzerspezifisch)
  • Verbindungsdaten zum Zugriff auf einen Server (anwendungs- und/oder benutzerspezifisch)

In .NET nennt Microsoft diese Funktionalität Anwendungseinstellungen oder Application Settings auf Englisch.

Da solche Szenarien in vielen Anwendung benötigt werden hat Microsoft vorgesorgt und stellt einen “Designer” und die Klasse Properties.Settings bereit. In diesem Artikel/Video zeige ich dir, wie du für eine Konsolenanwendung (bei WinForms- und WPF-Anwendungen geht es genauso) zur Entwurfszeit eine entsprechende Datei erstellst, deine Konfigurationsparameter definierst und Werte der Konfiguration zur Laufzeit lesen und ändern kannst.

ACHTUNG: Die so angelegte Datei mit den Konfigurationseinstellungen liegt unverschlüsselt auf der Festplatte deines Anwenders. Wenn du also sicherheitsrelevante Daten wie Passwörter in der Datei speichern möchtest, solltest du unbedingt die Datei verschlüsseln!

Alles weitere erfährst du hier im Video:

FRAGEN? Du hast noch Fragen zum Thema Konfigurationseinstellungen? Dann stelle sie mir direkt unter diesem Video in den Kommentaren oder schicke sie mir per Mail. Ich würde mich freuen, wenn ich diesen Artikel noch für dich erweitern kann.

Konfiguration per Databinding in WPF

Wenn du schon etwas weiter bist und deine ersten WPF-Anwendungen schreibst, dann kannst du die Werte aus Properties.Settings.Default auch direkt an Oberflächenelemente via Databinding binden. Möchtest du beispielsweise den Konfigurationsparameter ApiKey an eine TextBox binden, dann könntest du die Text-Eigenschaft wie folgt binden: Text="{Binding Source={x:Static properties:Settings.Default}, Path=ApiKey, Mode=TwoWay}".

Wenn du dieses Binding ausprobierst, solltest du den Namensraum properties beachten. In XAML kannst du diesen so einbinden: xmlns:properties="clr-namespace:MyYouTubeTestClient.Properties". Dabei ist MyYouTubeTestClient der Name deines Visual Studio Projekts.

Ein weiterer wichtiger Punkt ist, dass du Properties.Settings.Default spätestens vor dem Verlassen der Anwendung noch speichern musst. Das könntest du beispielsweise in einem EventHandler am Window.Closing Event machen.

  • Den Quellcode zum “Simple YouTube Client” (inkl. Verwendung von Settings) findest du hier auf GitHub
  • Die allgemeine Einführung in das Thema findest in diesem MSDN Artikel.
  • Antworten auf die häufigst gestellten Fragen zu diesem Thema (nur in Englisch) gibt es in diesem Artikel
  • In dieser Folge des Tutorials habe ich einen einfachen YouTube Client entwickelt. Die Dokumentation der YouTube Data API Client Library for .NET hilft dir (ein wenig) bei den ersten Schritten.
  • Die YouTube Data API als NuGet-Paket.

Viel Erfolg beim Konfigurieren deiner Anwendung

Jan