Ich entwerfe ein kleines Tool, für das eine Konfigurationsdatei erforderlich wäre. Die Konfigurationsdatei ist in meinem Fall eigentlich eher eine Datenbank, muss jedoch leichtgewichtig sein, und der Endbenutzer sollte sie bei Bedarf leicht bearbeitbar finden. Es wird jedoch auch viele Dinge enthalten. (Abhängig von bestimmten Faktoren können 1 MB oder mehr sein.)
Ich habe beschlossen, lieber einfachen alten Text zu verwenden, als SQLite oder ähnliches zu verwenden. Bei der Verwendung von Text muss ich mich jedoch auch mit der Vielfalt der Formate auseinandersetzen. Bisher sind meine Optionen
- XML
- JSON
- Benutzerdefiniertes Format
Die Daten in meiner Datei sind recht einfach und bestehen größtenteils aus Dingen vom Typ Schlüsselwert. Ein benutzerdefiniertes Format wäre also nicht so schwierig ... aber ich muss mich lieber nicht darum kümmern, die Unterstützung dafür zu schreiben. Ich habe noch nie gesehen, dass JSON für Konfigurationsdateien verwendet wird. Und XML würde die Dateigröße meiner Meinung nach erheblich aufblähen. (Ich habe auch nur eine Abneigung gegen XML im Allgemeinen).
Was soll ich in diesem Fall tun?
Zu berücksichtigende Faktoren:
- Diese Konfigurationsdatei kann auf einen Webdienst hochgeladen werden (Größe ist also wichtig).
- Benutzer müssen in der Lage sein, es bei Bedarf von Hand zu bearbeiten (einfache Bearbeitung und Lesen).
- Muss in der Lage sein, automatisch zu generieren und zu verarbeiten (Geschwindigkeit spielt keine große Rolle, ist aber nicht übermäßig langsam)
- Die "Schlüssel" und "Werte" sind einfache Zeichenfolgen, müssen jedoch maskiert werden, da sie alles enthalten können. (Unicode und Escape muss einfach funktionieren)
- Mehrere Konfigurationsdateien. Grundsätzlich ist jede Konfigurationsdatei an ein "Projekt" gebunden
and if needed the end-user should find it easily editable. However, it also will contain a lot of things in it. (depending on certain factors, could be 1Mb or more)
. Sie können Ihren Kuchen nicht haben und ihn essen. 1 MB-Dateien können per Definition nicht einfach bearbeitet werden. Entweder ist es eine Datenbank (auch wenn sie klein ist), und dann ist SQL-Lite eine gute Option, oder es ist eine Konfigurationsdatei (Sie sollten nicht über 1 MB Konfiguration verfügen).