52 votes

Registre vs. fichier INI pour stocker les paramètres d'application configurables par l'utilisateur

Je suis un nouveau programmeur Windows et je ne sais pas où je devrais stocker les paramètres d'application configurables par l'utilisateur. Je comprends la nécessité de fournir à l’utilisateur un moyen convivial de modifier les paramètres de l’application, comme un outil Éditer | Formulaire de configuration ou similaire. Mais où devrais-je stocker les valeurs après que l'utilisateur a cliqué sur le bouton Appliquer de ce formulaire?

Quels sont les avantages et les inconvénients du stockage des paramètres dans le registre Windows par rapport au stockage dans un fichier INI local ou un fichier de configuration ou similaire?

42voto

Daniel F. Hanson Points 3028

Les Pros de fichier de config:

  1. Facile à faire. N'avez pas besoin de connaître toutes les appels d'API de Windows. Vous avez juste besoin de savoir le fichier I/O interface de votre langage de programmation.
  2. Portable. Si vous le port de votre application vers un autre système d'exploitation, vous n'avez pas besoin de modifier vos paramètres de format.
  3. Modifiable par l'utilisateur. L'utilisateur peut modifier le fichier de configuration à l'extérieur du programme en cours d'exécution.

Les Pros de registre:

  1. Sécurisé. L'utilisateur ne peut pas supprimer accidentellement le fichier de configuration ou d'endommager les données, à moins qu'il/elle sait à propos de regedit. Et puis, l'utilisateur est tout d'avoir des ennuis.
  2. Je ne suis pas expert Windows programmeur, mais je suis sûr que l'utilisation du registre de fait, il est plus facile de faire d'autres spécifiques à Windows de choses (paramètres spécifiques à l'utilisateur, administration du réseau des trucs comme stratégie de groupe, ou tout autre chose).

Si vous avez juste besoin d'un moyen simple de stocker les informations de configuration, je vous recommande un fichier de configuration, à l'aide de INI ou XML comme le format. Je suggère d'utiliser le registre que si il y a quelque chose de spécifique que vous voulez obtenir de l'aide de la base de registre.

26voto

Lipis Points 9135

Jeff Atwood a écrit un excellent article sur le registre de Windows et explique pourquoi il est préférable d'utiliser les fichiers .INI à la place. Je pense donc que cet article vous aidera beaucoup à prendre une décision.

4voto

Greg Points 1756

Il y a une question similaire ici qui couvre quelques-uns des avantages et des inconvénients.

Je suggère de ne pas utiliser le registre à moins que votre application absolument besoin. De ma compréhension, Microsoft est en train d'essayer de décourager l'utilisation de la base de registre en raison de la flexibilité de fichiers de paramètres. Aussi, je ne vous recommande pas de l'utiliser .les fichiers ini, mais au lieu d'utiliser certaines des fonctionnalités intégrées pour .Net pour l'enregistrement de l'utilisateur/paramètres de l'application.

4voto

EvilTeach Points 12235

L'utilisation d'un fichier ini, dans le même répertoire que l'application, permet de le sauvegarder avec l'application. Ainsi, après avoir rechargé votre système d'exploitation, vous restaurez simplement le répertoire de l'application et votre configuration est telle que vous le souhaitez.

4voto

Chris Jester-Young Points 102876

Selon la documentation de GetPrivateProfileString, vous devez utiliser le registre pour stocker de l'initialisation de l'information.

Cependant, en disant cela, si vous voulez continuer à l'utiliser .les fichiers ini, et d'utiliser le profil standard Api (GetPrivateProfileString, WritePrivateProfileString, et autres) pour y accéder, ils intègrent des moyens de fournir automatiquement des "virtuel .les fichiers ini", soutenue par le registre. Gagnant-gagnant!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X