Tengo una aplicación C++ bastante grande (en Windows, no hay otras plataformas planificadas), que actualmente almacena todas las configuraciones (incluso algunas clases de direcciones) en el registro de Windows.Mejores prácticas para almacenar configuraciones
A veces esto es un inconveniente, porque los usuarios tienen dificultades para cambiar las entradas en el registro. Me gustaría tener las versiones versionadas, por lo que la configuración siempre coincide con el código actual. Por el momento, versionamos reg-files, pero nunca está seguro si todos los reg-files se agregaron en las máquinas de destino. Con C# puede definir valores predeterminados en app.config, pero no sobrescribe la configuración existente. No sé si existe ese mecanismo o biblioteca para C++.
me gustaría tener las siguientes "características":
- Los ajustes se pueden versionar
- actualización simple en equipos de destino (puede ser realizado por el usuario)
- Asegúrese de que en la actualización sólo los nuevos ajustes se añaden y no hay ajustes existentes se sobrescriben con los valores por defecto
- cambio simple de configuración para el usuario
- mismo flujo de trabajo en Win XP y Win 7
Por lo que veo, hay 3 posibilidades para almacenar la configuración en Windows:
- registro de archivos
- Ini
- archivo XML Sólo
una aplicación de nuestra suite usa Qt en este momento, pero Boost estaría disponible.
Para las direcciones, las pondremos en una especie de libreta de direcciones XML, pero para las otras configuraciones no estamos seguros, cuál es la mejor práctica.
Yo sugeriría otras alternativas: YAML/JSON para los humanos formato legible, SQLite para simple incrustado. En cuanto a los archivos 'ini', puede que le interese [Cómo analizar el archivo ini con Boost] (http://stackoverflow.com/questions/6175502/how-to-parse-ini-file-with-boost). –
+1 para archivos Boost/ini, si puede KI ese SS. – DevSolar
Si necesita varias capas de inclusiones, me gustaría buscar archivos XML/JSON. De lo contrario, INI podría ser la solución más simple. – Morwenn