2009-08-11 5 views
1

Dies scheint eine einfache Frage zu sein, aber die Intergoogles waren nicht freundlich.So stellen Sie eine .Net-Desktopanwendung mit benutzerdefinierten Einstellungen pro Benutzer bereit

Ich habe eine C# Desktop-Anwendung. Es gibt bestimmte Eigenschaften, die pro Kunde angepasst werden müssen, z. B. den Namen jeder Kundenorganisation, die ansonsten unabhängig von der tatsächlichen Funktionalität der Anwendung sind und daher nicht in diese kompiliert werden müssen.

Was ist die beste/bevorzugte Methode, um diese Daten aus der Anwendung zu ziehen, in VS (2008) zu verwalten und auf den Desktops der Kunden zu implementieren?

Zum Beispiel sagen, ich habe zwei separate Benutzer in zwei separaten Organisationen, so dass sie jeweils einen separaten Satz von Einstellungen benötigen. Erstelle ich einfach eine neue app.config-Datei für jeden von ihnen? Müsste ich das Setup-Projekt für jeden Benutzer neu erstellen, um diese neue app.config-Datei aufzunehmen?

danke

Antwort

2

Sie diese Art von Informationen in der Datei App.Config speichern könnte, in einer INI-Datei oder in der Registrierung auf dem Zielsystem.

über die Methode auf Sie entscheiden, Je, es gibt viele Beispielcode zur Verfügung:

C# App.Config files

C# INI files

C# Registry access

+0

Vielen Dank für Ihre Antworten. Also, ich benutze app.config - Was ist der Mechanismus für die Verteilung von verschiedenen app.config Dateien an verschiedene Benutzer? –

+0

Wenn die von Ihnen gesuchten Daten nicht vorhanden sind, fordern Sie den Benutzer dazu auf, und speichern Sie sie zum nächsten Mal. – BoltBait

2

Die Anwendungseinstellungen Subsystem ermöglicht es Ihnen, stark typisierte zu erstellen Einstellungen, für jeden Benutzer oder pro Anwendung. Klicken Sie mit der rechten Maustaste auf das Projekt, wählen Sie Eigenschaften und klicken Sie auf die Registerkarte Einstellungen.


Von Application Settings Overview:

Anwendungseinstellungen richtet sich sowohl an Bedürfnisse durch eine einfache Möglichkeit, Speicher sowohl anwendungs ​​scoped und Benutzer-scoped Einstellungen auf dem Client Computer. Mit Visual Studio oder einen Code-Editor definieren Sie eine Einstellung für eine bestimmte Eigenschaft von seinem Namen angeben, den Datentyp und Anwendungsbereich (Anwendung oder Benutzer). Sie können auch zugehörige Einstellungen in benannte Gruppen für einfachere Verwendung und Lesbarkeit platzieren. Einmal definiert, werden diese Einstellungen dauerhaft gespeichert und zur Laufzeit automatisch in den Speicher zurückgelesen. Eine steckbare Architektur ermöglicht die Persistenz Mechanismus geändert werden, aber durch Standard wird das lokale Dateisystem verwendet.

Anwendungseinstellungen funktioniert durch persistierenden Daten als XML in verschiedene Konfiguration (CONFIG) Dateien, entsprechend, ob die Einstellung anwendungs ​​scoped oder benutzer scoped. In den meisten Fällen sind die anwendungsspezifischen Einstellungen schreibgeschützt; weil sie Programminformationen sind, werden Sie in der Regel nicht überschreiben müssen. Im Gegensatz dazu können benutzerspezifische Einstellungen sicher gelesen und geschrieben werden, um Zeit ausgeführt werden, auch wenn Ihre Anwendung unter teilweise Vertrauen ausgeführt wird. Weitere Informationen zur Teilvertrauensstellung finden Sie unter Sicherheit in der Windows Forms-Übersicht.

Wenn Sie eine Einstellung hinzufügen, erstellt Visual Studio eine stark typisierte Eigenschaft in der Einstellungsklasse. Es erstellt auch einen Eintrag in der Anwendungskonfigurationsdatei. Bei einer Anwendungseinstellung ist dies der tatsächliche Wert der Einstellung. Sie können es bei der Installation ändern, wenn Sie möchten. Für eine Benutzereinstellung ist dies der Standardwert der Einstellung. Der Benutzer kann den Wert zur Laufzeit ändern. Sie können dann die Save-Methode aufrufen, um den geänderten Wert zu speichern. Der aktuelle Wert der Benutzereinstellungen wird in einer Datei user.config gespeichert, die im richtigen Benutzerordner gespeichert ist, je nachdem, ob der Benutzer servergespeichert oder lokal ist.

Es ist wirklich sehr nett, wenn es mit Windows Forms verwendet wird Verschiedene Eigenschaften von Formularen und Steuerelementen können zur Entwurfszeit an die Anwendungseinstellungen gebunden werden. Dies bedeutet, dass diese Eigenschaften beim Start der Anwendung ihre Anfangswerte aus den Einstellungen übernehmen. Wenn sich die Werte zur Laufzeit ändern, ändern sich die Einstellungen. Sie können die geänderten Einstellungen dann speichern, bevor die Anwendung beendet wird. Sie werden dann automatisch verwendet, wenn die Anwendung erneut gestartet wird. Dies erfordert sehr wenig Code.

Obwohl diese für Windows Forms in .NET 2.0 erstellt wurden, habe ich sie mit anderen Projekttypen verwendet, insbesondere Unit Test-Projekte. In dieser Situation haben Sie natürlich keine benutzerspezifischen Einstellungen.

+1

Vielen Dank für Ihre Antwort. Ich habe die Frage mit einem Beispiel bearbeitet. Ich bin mit dem Subsystem Anwendungseinstellungen etwas vertraut. Angenommen, ich verwende app.config - Was ist der Mechanismus zum Verteilen verschiedener app.config-Dateien an verschiedene Benutzer bei der Installation der Anwendung? –