Ho un piccolo strumento che sto progettando e che richiederebbe un file di configurazione di qualche tipo. Il file di configurazione nel mio caso è davvero più di un database, ma deve essere leggero e, se necessario, l'utente finale dovrebbe trovarlo facilmente modificabile. Tuttavia, conterrà anche molte cose in esso. (a seconda di determinati fattori, potrebbe essere 1Mb o più)
Ho deciso che preferirei usare solo testo normale, piuttosto che provare a usare SQLite o altro. Tuttavia, con l'utilizzo del testo, devo anche occuparmi della varietà di formati. Finora, le mie opzioni sono
- XML
- JSON
- Formato personalizzato
I dati nel mio file sono abbastanza semplici e consistono per la maggior parte delle cose di tipo chiave-valore. Quindi, un formato personalizzato non sarebbe così difficile ... ma preferirei non dovermi preoccupare di scrivere il supporto per questo. Non ho mai visto JSON utilizzato per i file di configurazione. E XML avrebbe gonfiato le dimensioni del file sostanzialmente, credo. (Ho anche solo una antipatia per XML in generale).
Cosa dovrei fare in questo caso?
Fattori da considerare:
- Questo file di configurazione può essere caricato su un servizio web (quindi le dimensioni contano)
- Gli utenti devono essere in grado di modificarlo manualmente, se necessario (facilità di modifica e lettura di argomenti)
- Deve essere in grado di generare ed elaborare automaticamente (la velocità non conta molto, ma non eccessivamente lenta)
- Le "chiavi" e "valori" sono semplici stringhe, ma devono essere sottoposte a escape perché possono contenere qualsiasi cosa. (unicode ed escaping devono funzionare facilmente)
- Più file di configurazione. Fondamentalmente, ogni file di configurazione è legato a un "progetto"