Las respuestas existentes cubren mucho terreno, pero pensé que mencionaría otro punto.
Utilizo el registro para almacenar la configuración de todo el sistema. Es decir, cuando 2 o más programas necesitan exactamente la misma configuración. En otras palabras, una configuración compartida por varios programas.
En todos los demás casos, utilizo un archivo de configuración local que se encuentra en la misma ruta que el ejecutable o un nivel hacia abajo (en un directorio de configuración). Las razones ya están cubiertas en otras respuestas (portátiles, pueden editarse con un editor de texto, etc.).
¿Por qué poner la configuración de todo el sistema en el registro? Bueno, descubrí que si se comparte una configuración pero se usan archivos de configuración local, se termina duplicando la configuración. Esto puede significar que termines necesitando cambiar una configuración en múltiples lugares.
Por ejemplo, digamos que el Programa A y el Programa B apuntan a la misma base de datos. Puede tener una configuración de registro "en todo el sistema" para la cadena de conexión. Si desea apuntar a una base de datos diferente, puede cambiar la cadena de conexión en un lugar, y ambos programas se ejecutarán ahora contra la otra base de datos.
Nota: no tiene sentido utilizar el registro de esta manera si dos o más programas no necesitan utilizar los mismos valores. Por ejemplo, el Programa A y el Programa B, que necesitan una cadena de conexión de base de datos que pueden, pueden ser iguales, pero no siempre. Por ejemplo, quiero que el Programa B use ahora una base de datos de prueba, pero el Programa A debe continuar usando una base de datos de producción.
Con el ejemplo anterior, puede hacer que algunas configuraciones locales anulen la configuración de todo el sistema, pero puede empezar a complicarse demasiado para tareas simples.
JSON es otro formato ampliamente utilizado para archivos de datos simples hoy en día. – jpmc26
puntos faltantes: reinstalar ventanas nuevas no matar archivos ini. Es necesario omitir una base de datos centralizada y no estamos hablando de calidad de Oracle con transacciones retrotraíbles multinivel aquí. A las herramientas más limpias/antivirus les encanta meterse con el registro de las personas, no tanto por los archivos ini dispersos. el registro es solo un sistema de archivos en un sistema de archivos, este es un antipattern http: //en.wikipedia.org/wiki/Inner-platform_effect ... –
Los archivos INI son un mejor sistema. La aplicación en un arranque exitoso puede simplemente guardar una copia de seguridad del INI para proteger contra la corrupción. – Mario