Übersicht über Anwendungseinstellungen

In diesem Thema wird beschrieben, wie Sie Einstellungsdaten für die Anwendung und die Benutzer erstellen und speichern können.

Das Feature Anwendungseinstellungen von Windows Forms erleichtert das Erstellen, Speichern und Verwalten von benutzerdefinierten Einstellungen für Anwendungen und Benutzer auf dem Clientcomputer. Die Windows Forms-Anwendungseinstellungen ermöglichen nicht nur das Speichern von Anwendungsdaten wie Datenbankverbindungszeichenfolgen, sondern auch das Speichern benutzerspezifischer Daten, z. B. Anwendungseinstellungen einzelner Benutzer. Mit Visual Studio oder benutzerdefiniertem verwalteten Code können Sie neue Einstellungen erstellen, diese von der Festplatte lesen oder darauf schreiben, sie an Eigenschaften auf Formularen binden und Einstellungsdaten vor dem Laden und Speichern überprüfen.

Anwendungseinstellungen ermöglichen Entwicklern, den Anwendungszustand mit einer äußerst geringen Menge an benutzerdefiniertem Code zu speichern und ersetzen die dynamischen Eigenschaften in früheren Versionen von .NET Framework. Anwendungseinstellungen weisen viele Verbesserungen gegenüber dynamischen Eigenschaften auf, die schreibgeschützt und spät gebunden sind und eine umfangreichere benutzerdefinierte Programmierung erfordern. Die dynamischen Eigenschaftenklassen wurden in .NET Framework, Version 2.0 beibehalten. Hierbei handelt es sich jedoch lediglich um Shell-Klassen, die die Anwendungseinstellungsklassen locker umschließen.

Was sind Anwendungseinstellungen?

Die Windows Forms-Anwendungen setzen häufig Daten voraus, die zur Ausführung einer Anwendung unbedingt benötigt werden, die Sie aber nicht direkt in den Anwendungscode integrieren möchten. Wenn die Anwendung einen Webdienst oder einen Datenbankserver verwendet, können Sie diese Daten in einer separaten Datei speichern, sodass Sie sie später ändern können, ohne sie erneut kompilieren zu müssen. Ebenso können die Anwendungen es erforderlich machen, dass Daten gespeichert werden, die für den aktuellen Benutzer spezifisch sind. Die meisten Anwendungen verfügen beispielsweise über Benutzereinstellungen, die die Darstellung und das Verhalten der Anwendung anpassen.

Die Anwendungseinstellungen werden beiden Anforderungen gerecht, indem sie eine einfache Möglichkeit zum Speichern von sowohl anwendungsspezifischen als auch benutzerspezifischen Einstellungen auf dem Clientcomputer bieten. Mithilfe von Visual Studio oder eines Code-Editors definieren Sie eine Einstellung für eine bestimmte Eigenschaft, indem Sie deren Namen, Datentyp und Bereich (Anwendung oder Benutzer) festlegen. Zur einfacheren Verwendung und Lesbarkeit können Sie sogar zusammengehörige Einstellungen in benannten Gruppen zusammenfassen. Nachdem diese Einstellungen definiert wurden, bleiben sie erhalten und werden zur Laufzeit automatisch zurück in den Arbeitsspeicher gelesen. Eine austauschbare Architektur macht es zwar möglich, den Beibehaltungsmechanismus zu ändern, standardmäßig wird jedoch das lokale Dateisystem verwendet.

Je nachdem, ob die Einstellungen anwendungsspezifisch oder benutzerspezifisch sind, bleiben Anwendungseinstellungen als XML-Daten in verschiedenen Konfigurationsdateien (CONFIG) erhalten. In den meisten Fällen sind die anwendungsspezifischen Einstellungen schreibgeschützt. Da es sich um Programminformationen handelt, müssen Sie sie in der Regel nicht überschreiben. Benutzerspezifische Einstellungen können hingegen problemlos zur Laufzeit gelesen und geschrieben werden, auch wenn die Anwendung nur teilweise vertrauenswürdig ist. Weitere Informationen über teilweise vertrauenswürdige Anwendungen finden Sie unter Übersicht über die Sicherheit in Windows Forms.

Einstellungen werden als XML-Fragmente in Konfigurationsdateien gespeichert. Anwendungsspezifische Einstellungen werden durch das <application.Settings>-Element dargestellt und normalerweise unter Anwendung.exe.config gespeichert, wobei Anwendung für den Namen der Hauptausführungsdatei steht. Benutzerspezifische Einstellungen werden durch das <userSettings>-Element dargestellt und in Benutzer.config gespeichert, wobei Benutzer für den Namen des Benutzers steht, der derzeit die Anwendung ausführt. Sie müssen die Datei Anwendung.exe.config mit der Anwendung bereitstellen. Sobald die Anwendung erstmalig Einstellungen für diesen Benutzer speichert, erstellt die Einstellungsarchitektur die Benutzer.config-Dateien. Sie können in Anwendung.exe.config auch einen <userSettings>-Block definieren, um Standardwerte für benutzerspezifische Einstellungen bereitzustellen.

Benutzerdefinierte Steuerelemente können ebenfalls ihre eigenen Einstellungen speichern, indem sie die IPersistComponentSettings-Schnittstelle implementieren, die die SaveSettings-Methode verfügbar macht. Das ToolStrip-Steuerelement in Windows Forms implementiert diese Schnittstelle, um die Position von Symbolleisten und Symbolleistenelementen zwischen Anwendungssitzungen zu speichern. Weitere Informationen über benutzerdefinierte Steuerelemente und Anwendungseinstellungen finden Sie unter Anwendungseinstellungen für benutzerdefinierte Steuerelemente.

Einschränkungen für Anwendungseinstellungen

In einer nicht verwalteten Anwendung, die .NET Framework hostet, können keine Anwendungseinstellungen verwendet werden. In folgenden Umgebungen funktionieren Einstellungen nicht ordnungsgemäß: Visual Studio-Add-Ins, C++ für Microsoft Office, gehostete Steuerelemente in Internet Explorer, Microsoft Outlook-Add-Ins und -Projekte usw.

Derzeit können Sie Einstellungen an einige Eigenschaften in Windows Forms nicht binden. Das wichtigste Beispiel ist die ClientSize-Eigenschaft; Einstellungen, die an diese Eigenschaft gebunden werden, verursachen ein unvorhersehbares Verhalten zur Laufzeit. Dieses Problem können Sie in der Regel umgehen, indem Sie diese Einstellungen programmgesteuert speichern und laden.

In den Anwendungseinstellungen gibt es keine integrierte Möglichkeit zum automatischen Verschlüsseln von Informationen. Speichern Sie unter keinen Umständen sicherheitsrelevante Informationen wie Datenbankkennwörter in Klartext. Wenn Sie Sicherheitsinformationen speichern möchten, ist es Ihre Aufgabe als Anwendungsentwickler, diese Informationen vor nicht autorisierten Zugriffen zu schützen. Es wird empfohlen, Verbindungszeichenfolgen mithilfe von Windows Integrated Security zu speichern, statt Kennwörter hart in der URL zu codieren. Weitere Informationen finden Sie unter Codezugriffssicherheit und ADO.NET.

Erste Schritte mit Anwendungseinstellungen

Wenn Sie Visual Studio verwenden, können Sie Einstellungen im Windows Forms-Designer mithilfe der (ApplicationSettings)-Eigenschaft im Eigenschaftenfenster definieren. Werden Einstellungen auf diese Weise definiert, erstellt Visual Studio automatisch eine benutzerdefinierte verwaltete Wrapperklasse, die jede Einstellung einer Klasseneigenschaft zuordnet. Visual Studio bindet die Einstellung zudem an eine Eigenschaft auf einem Formular oder Steuerelement, sodass die Einstellungen des Steuerelements automatisch wiederhergestellt werden, wenn das Formular angezeigt wird, und automatisch gespeichert werden, wenn das Formular geschlossen wird. Ausführliche Informationen finden Sie unter Gewusst wie: Erstellen von Anwendungseinstellungen mithilfe des Designers.

Wenn Sie die Einstellungen ausführlicher steuern möchten, können Sie eine eigene Wrapperklasse für benutzerdefinierte Anwendungseinstellungen definieren. Hierzu müssen Sie eine Klasse von ApplicationSettingsBase ableiten, eine Eigenschaft für die jeweiligen Einstellungen hinzufügen und auf diese Eigenschaften bestimmte Attribute anwenden. Ausführliche Informationen zum Erstellen von Wrapperklassen finden Sie unter Architektur der Anwendungseinstellungen.

Sie können auch die Binding-Klasse verwenden, um Einstellungen programmgesteuert an Eigenschaften in Formularen und Steuerelementen zu binden. Weitere Informationen über das Erstellen von Wrapperklassen finden Sie unter Gewusst wie: Erstellen von Anwendungseinstellungen mithilfe des Designers.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von Anwendungseinstellungen mithilfe des Designers

Gewusst wie: Überprüfen von Anwendungseinstellungen

Referenz

ApplicationSettingsBase

SettingsProvider

LocalFileSettingsProvider

IPersistComponentSettings

Konzepte

Architektur der Anwendungseinstellungen

Anwendungseinstellungen für benutzerdefinierte Steuerelemente