Ich entwickle eine Desktop-Anwendung, für deren Ausführung einige Informationen erforderlich sind. Diese Informationen werden jedoch nicht geändert (die Daten müssen bei jeder Ausführung der App geladen werden, die Daten werden jedoch niemals geladen) geändert). Die Daten müssen auf demselben Computer gespeichert sein, auf dem die App ausgeführt wird (clientseitiger Speicher?).
Es ist auch besser, wenn der Benutzer diese Informationen nicht einfach ändern kann (vorausgesetzt, er verfügt nicht über ausreichende IT-Kenntnisse).
Wie soll ich solche Informationen speichern? Eine lokale Datenbank? XML, das mit der Anwendung gesendet wird?
Ich benutze WPF.
Antworten:
Eine Binärdatei ist die naheliegende Antwort, hängt jedoch davon ab, wie Sie sie laden. Sie können sich das Leben auch leicht machen, wenn Sie können.
XML ist möglicherweise eine gute Wahl, da in C # integrierte Methoden zum Lesen vorhanden sind. Sie können eine Prüfsumme hinzufügen Ihren Daten , sodass die Prüfsumme nicht mehr übereinstimmt, wenn der Benutzer sie ändert (Sie müssen eine Prüfung hinzufügen, um sicherzustellen, dass die Prüfsumme gültig ist).
Eine lokale Datenbank kann weitere Probleme verursachen, da Sie andere Abhängigkeiten haben, die Sie benötigen, um darauf zugreifen zu können
quelle
Wenn sich die Daten nie ändern und schreibgeschützt sind , fügen Sie sie einfach als Liste von Konstanten in eine Codedatei ein.
Wenn diese Daten je nach Bereitstellung unterschiedlich sind, ist eine externe Datei in Ordnung.
.Net wird mit eingebauten .config-Dateien geliefert (App.Config). Man sollte diese verwenden, da es Standardmethoden gibt (die in das Framework integriert sind), um die Informationen daraus zu lesen.
Verwenden Sie die Konfigurationsdateien für den Fall, dass eine Einstellung geändert werden muss (sagen Sie niemals nie), da es sich nur um Textdateien (XML) handelt. Wenn vertrauliche Informationen vorhanden sind, kann bei Bedarf eine Einstellung verschlüsselt werden.
quelle
Sie können Ihrem Projekt jederzeit eine Datei hinzufügen und ihren Build-Typ
Embedded Resource
so festlegen, dass sie direkt in die Anwendung selbst eingebettet wird.Alternativ eine Datei, die verschlüsselt und an einem zugänglichen Ort abgelegt wird.
quelle
Wenn der Benutzer nicht einmal einen Blick auf die Daten werfen soll, sollten Sie sie in eine binäre Datendatei serialisieren.
Nur die App würde die Länge der zu lesenden Chunks kennen.
Ich kenne C # nicht, aber in Java würden Sie die Datei folgendermaßen erstellen:
... und sie lesen es so:
quelle