Wo können Benutzeroberflächenoptionen gespeichert werden?

8

Was ist die allgemein akzeptierte Möglichkeit, Schnittstellenoptionen zu speichern, z. B. "Diese Meldung nicht mehr anzeigen" und alle anderen schnittstellenspezifischen Optionen des Benutzers? Registrierung? Einstellungsdateien? Ich kann sie auch in einer Datenbank speichern, da mein Programm bereits Zugriff auf eine hat.

EDITS Mein aktuelles Programm ist lokal, aber in Zukunft möchte ich es webbasiert machen.

    
sbenderli 23.07.2010, 13:56
quelle

8 Antworten

7

Ein nicht webbasiertes Programm:

Ich würde keine Datenbank verwenden. Was passiert, wenn Sie sich entscheiden, die Datenbank zu wechseln? Jetzt müssen Sie die Benutzerdaten migrieren. Was passiert, wenn sie deinstallieren?

In Windows sind Einstellungsdateien im AppData-Ordner des Benutzers geeignet. Es ist auch akzeptabel, diese bei der Deinstallation nicht zu löschen, damit die Einstellungen weiterhin bestehen bleiben. Ich würde vor der Registrierung für Benutzereinstellungen zurückschrecken. Dieser Bereich ist besser für Systemeinstellungen geeignet.

Es gibt einen ähnlichen Bereich in * nix-Systemen, aber ich bin mir nicht ganz sicher. Es ist zu lang.

Ein webbasiertes Programm mit lokalen Einstellungen:

Cookies sind so ziemlich die einzige computerspezifische Option für ein webbasiertes Programm. IP-basierte Filter sind eine schlechte Idee, da die meisten Verbraucher-Internet-Optionen IPs einmal täglich bis einmal pro Woche rotieren. Sie könnten MAC-Filter, aber das würde beinhalten rohe Sockets, um die MAC-Adresse zu erhalten. Und selbst dann wirst du wahrscheinlich mit der Adresse eines Routers enden, nicht mit einem Computer. Das heißt, zwei Personen auf einem einzelnen Router würden die gleichen Einstellungen erhalten.

Ein webbasiertes Programm mit globalen Einstellungen:

Ihr Programm sollte dazu einen Webservice abfragen. Der Dienst ist dann frei, ihn auf die jeweils beste Art und Weise zu implementieren. Eine Datenbank passt in dieses Szenario, da es wahrscheinlich ist, dass Ihre Benutzerdaten bereits vorhanden sind und darin eingegeben werden, was eine einfache Möglichkeit bietet, Daten bestimmten Benutzern zuzuordnen.

    
jdmichal 23.07.2010, 14:00
quelle
2

wenn es sich um eine webbezogene Umgebung handelt: hängt davon ab, wie lange Sie wollen, dass sie bleiben. Wenn es eine Mitgliederregistrierung in einer Datenbank gibt, wäre es absolut sinnvoll, sie in der Datenbank zu speichern. Andernfalls könnten Sie es einfach als Cookie oder IP / Einstellung in einer Datenbank speichern.

    
Thomas Strobl 23.07.2010 14:00
quelle
2

Wenn Sie von einer Windows-Anwendung ausgehen, verwendet die Funktion Anwendungseinstellungen das Dateisystem Standardmäßig (obwohl Sie die Registrierung oder irgendetwas anderes verwenden können, wie es Pluggable ist).

    
user23743 23.07.2010 14:00
quelle
2

Sie können sie speichern, wo immer es am bequemsten ist.

In der Datenbank - Wenn die Datenbank remote ist, benötigen Sie keinen Zugriff auf den lokalen Dateispeicher, aber wenn die Verbindung nicht vorhanden ist, können Sie nicht auf die Einstellungen zugreifen.

In der Registrierung müssen Sie sicherstellen, dass Sie den CURRENT_USER-Bereich verwenden, damit der Benutzer tatsächlich darauf schreiben kann. Windows-spezifisch.

In einer Datei - Wenn Sie lokal speichern, bedeutet dies, dass Sie nicht auf die Verbindung zur Datenbank angewiesen sind, aber Sie müssen wiederum sicherstellen, dass der Benutzer Rechte an dem Ordner besitzt, in dem Sie die Datei speichern möchten Datei an. C # /. NET bietet Klassen zum Lesen und Schreiben von Benutzereinstellungen Dateien, so dass dies wahrscheinlich die beste Wahl ist.

    
ChrisF 23.07.2010 14:00
quelle
1

Dies wird normalerweise von Windows über API gehandhabt. MSDN-Artikel auf Wie: Programmieren Sie Ausnahmemeldungsfeld , wie es mit .NET gemacht wird. Laut Artikel wird die Ausnahme in der Registrierung gespeichert, wenn Sie die Entscheidung dauerhaft auf diese Weise speichern möchten.

Sie können die Entscheidung auch in einer benutzerdefinierten XML-Konfigurationsdatei speichern, in Ihrer Anwendungsdatei speichern oder in einer Datenbank speichern. Es liegt an Ihnen bei der einfachsten Implementierung und am wenigsten Kopfschmerzen.

Der neue empfohlene Weg besteht darin, es unter dem Anwendungsdatenverzeichnis des Benutzers zu speichern. Weitere Informationen finden Sie unter Daten- und Einstellungsverwaltung bei Technet .

    
user195488 23.07.2010 14:00
quelle
1

Unter Windows besteht der "neue" Weg darin, die Konfigurationen im Ordner "App-Data" (CSIDL_APPDATA) des Benutzers zu speichern.

    
Max 23.07.2010 14:01
quelle
1

Meine Empfehlung wäre eine Datei (INI, Einstellungen usw.), die in der Anwendungsinstallation oder in App_Data gespeichert ist. Speichern Sie es in der Registry ist definitiv ein beliebter Weg, es zu tun, aber es zu bereinigen, wenn es nicht mehr relevant ist, scheint nicht so populär zu sein. Also, wenn Sie sich entscheiden, die Registrierung zu verwenden, versuchen Sie, sich nach Bedarf selbst zu bereinigen (Deinstallation, Änderung der Registrierungseintragsstruktur usw.).

    
user164226 23.07.2010 14:04
quelle
1
___ answer3318814 ___

Ein nicht webbasiertes Programm:

Ich würde keine Datenbank verwenden. Was passiert, wenn Sie sich entscheiden, die Datenbank zu wechseln? Jetzt müssen Sie die Benutzerdaten migrieren. Was passiert, wenn sie deinstallieren?

In Windows sind Einstellungsdateien im AppData-Ordner des Benutzers geeignet. Es ist auch akzeptabel, diese bei der Deinstallation nicht zu löschen, damit die Einstellungen weiterhin bestehen bleiben. Ich würde vor der Registrierung für Benutzereinstellungen zurückschrecken. Dieser Bereich ist besser für Systemeinstellungen geeignet.

Es gibt einen ähnlichen Bereich in * nix-Systemen, aber ich bin mir nicht ganz sicher. Es ist zu lang.

Ein webbasiertes Programm mit lokalen Einstellungen:

Cookies sind so ziemlich die einzige computerspezifische Option für ein webbasiertes Programm. IP-basierte Filter sind eine schlechte Idee, da die meisten Verbraucher-Internet-Optionen IPs einmal täglich bis einmal pro Woche rotieren. Sie könnten MAC-Filter, aber das würde beinhalten rohe Sockets, um die MAC-Adresse zu erhalten. Und selbst dann wirst du wahrscheinlich mit der Adresse eines Routers enden, nicht mit einem Computer. Das heißt, zwei Personen auf einem einzelnen Router würden die gleichen Einstellungen erhalten.

Ein webbasiertes Programm mit globalen Einstellungen:

Ihr Programm sollte dazu einen Webservice abfragen. Der Dienst ist dann frei, ihn auf die jeweils beste Art und Weise zu implementieren. Eine Datenbank passt in dieses Szenario, da es wahrscheinlich ist, dass Ihre Benutzerdaten bereits vorhanden sind und darin eingegeben werden, was eine einfache Möglichkeit bietet, Daten bestimmten Benutzern zuzuordnen.

    
___ qstnhdr ___ Wo können Benutzeroberflächenoptionen gespeichert werden? ___ answer3318812 ___

wenn es sich um eine webbezogene Umgebung handelt: hängt davon ab, wie lange Sie wollen, dass sie bleiben. Wenn es eine Mitgliederregistrierung in einer Datenbank gibt, wäre es absolut sinnvoll, sie in der Datenbank zu speichern. Andernfalls könnten Sie es einfach als Cookie oder IP / Einstellung in einer Datenbank speichern.

    
___ answer3318815 ___

Wenn Sie von einer Windows-Anwendung ausgehen, verwendet die Funktion Anwendungseinstellungen das Dateisystem Standardmäßig (obwohl Sie die Registrierung oder irgendetwas anderes verwenden können, wie es Pluggable ist).

    
___ qstntxt ___

Was ist die allgemein akzeptierte Möglichkeit, Schnittstellenoptionen zu speichern, z. B. "Diese Meldung nicht mehr anzeigen" und alle anderen schnittstellenspezifischen Optionen des Benutzers? Registrierung? Einstellungsdateien? Ich kann sie auch in einer Datenbank speichern, da mein Programm bereits Zugriff auf eine hat.

EDITS Mein aktuelles Programm ist lokal, aber in Zukunft möchte ich es webbasiert machen.

    
___ answer3318818 ___

Sie können sie speichern, wo immer es am bequemsten ist.

In der Datenbank - Wenn die Datenbank remote ist, benötigen Sie keinen Zugriff auf den lokalen Dateispeicher, aber wenn die Verbindung nicht vorhanden ist, können Sie nicht auf die Einstellungen zugreifen.

In der Registrierung müssen Sie sicherstellen, dass Sie den CURRENT_USER-Bereich verwenden, damit der Benutzer tatsächlich darauf schreiben kann. Windows-spezifisch.

In einer Datei - Wenn Sie lokal speichern, bedeutet dies, dass Sie nicht auf die Verbindung zur Datenbank angewiesen sind, aber Sie müssen wiederum sicherstellen, dass der Benutzer Rechte an dem Ordner besitzt, in dem Sie die Datei speichern möchten Datei an. C # /. NET bietet Klassen zum Lesen und Schreiben von Benutzereinstellungen Dateien, so dass dies wahrscheinlich die beste Wahl ist.

    
___ tag123userinterface ___ Das System, über das Menschen mit einem Computer interagieren, wird "UI" genannt, was für "Benutzeroberfläche" steht. Dieses Tag kann für UI-bezogene Programmierfragen verwendet werden. Beachten Sie, dass es eine separate Stack Exchange-Site für Benutzeroberflächen, Interaktionen mit dem Computer und Benutzererlebnis gibt: http://ux.stackexchange.com. ___ answer3318823 ___

Unter Windows besteht der "neue" Weg darin, die Konfigurationen im Ordner "App-Data" (CSIDL_APPDATA) des Benutzers zu speichern.

    
___ answer319026 ___

Ich habe einzelne Benutzereinstellungen in der Datenbank für eine WinfForms-Anwendung gespeichert, die eine standortspezifische Datenbank verwendet. Dies funktionierte gut, da sich die Benutzer bei der Anmeldung auf verschiedenen Client-Computern mit ihren Anzeigeeinstellungen bewegten.

    
___ answer3318817 ___

Dies wird normalerweise von Windows über API gehandhabt. MSDN-Artikel auf Wie: Programmieren Sie Ausnahmemeldungsfeld , wie es mit .NET gemacht wird. Laut Artikel wird die Ausnahme in der Registrierung gespeichert, wenn Sie die Entscheidung dauerhaft auf diese Weise speichern möchten.

Sie können die Entscheidung auch in einer benutzerdefinierten XML-Konfigurationsdatei speichern, in Ihrer Anwendungsdatei speichern oder in einer Datenbank speichern. Es liegt an Ihnen bei der einfachsten Implementierung und am wenigsten Kopfschmerzen.

Der neue empfohlene Weg besteht darin, es unter dem Anwendungsdatenverzeichnis des Benutzers zu speichern. Weitere Informationen finden Sie unter Daten- und Einstellungsverwaltung bei Technet .

    
___ tag123userinteraction ___ Benutzerinteraktivität ist der Dialog zwischen einem Menschen und einem Computerprogramm. ___ answer3318860 ___

Meine Empfehlung wäre eine Datei (INI, Einstellungen usw.), die in der Anwendungsinstallation oder in App_Data gespeichert ist. Speichern Sie es in der Registry ist definitiv ein beliebter Weg, es zu tun, aber es zu bereinigen, wenn es nicht mehr relevant ist, scheint nicht so populär zu sein. Also, wenn Sie sich entscheiden, die Registrierung zu verwenden, versuchen Sie, sich nach Bedarf selbst zu bereinigen (Deinstallation, Änderung der Registrierungseintragsstruktur usw.).

    
___
dretzlaff17 23.07.2010 14:20
quelle