Salvando no Registro vs. CustomFile [fechado]

5

Estou usando o método usual My.Settings... quando se trata de salvar as configurações do meu programa, mas fiquei pensando: se eu quisesse salvar as configurações do programa no Registro e carregar essas configurações, há algum benefício ao comparar com salvar configurações em um arquivo gravado personalizado e carregar essas configurações do arquivo.

Qual você prefere e por quê?

    
por Zer0 09.07.2015 / 12:48
fonte

3 respostas

4

Um bom ponto de partida é o artigo de Jeff Atwood: O registro do Windows foi uma boa ideia

Dá muitas boas razões para não usar o registro. Entre eles:

  • The registry is a single point of failure. That's why every single registry editing tip you'll ever find starts with a big fat screaming disclaimer about how you can break your computer with regedit.
  • The registry is opaque and binary. As much as I dislike the angle bracket tax, at least XML config files are reasonably human-readable, and they allow as many comments as you see fit.
  • The registry has to be in sync with the filesystem. Delete an application without "uninstalling" it and you're left with stale registry cruft. Or if an app has a poorly written uninstaller. The filesystem is no longer the statement of record-- it has to be kept in sync with the registry somehow. It's a total violation of the DRY principle.
  • The registry is monolithic. Let's say you wanted to move an application to a different path on your machine, or even to a different machine altogether. Good luck extracting the relevant settings for that one particular application from the giant registry tarball. A given application typically has dozens of settings strewn all over the registry.

Provavelmente, os únicos aplicativos que podem exigir o registro são:

  • aplicativos COM. Sem um repositório central, seria muito mais difícil obter o ID da classe ( CLSID )
  • aplicativos de grande escala que precisam administrar a configuração em toda a rede (armazenar os dados no registro permite que você use Modelos de administração em Política de grupo ).
por 09.07.2015 / 14:41
fonte
2

Eu gostaria de sugerir que o Windows Registry seja melhor deixado para o próprio Windows para jogar.

  • Partes dele são inacessíveis para usuários comuns.
  • Partes dele são inacessíveis a determinados tipos de aplicativos (processos de 32 bits executados em versões de 64 bits do Windows).
  • É um mecanismo de armazenamento completamente proprietário, que pode alterar, sem aviso, qualquer atualização ou patch de segurança.
  • Não é fácil fazer backup ou restaurar partes do Registro; é realmente tudo ou nada.
  • Os valores mantidos nele não são portáteis; eles estão fixados em uma máquina específica.

Compare isso com um arquivo de texto simples mantido no diretório do perfil de Roaming do usuário:

Eles são acessíveis ao usuário (sem segurança ou complicações do UAC), o formato e o conteúdo desse arquivo estão completamente sob o seu controle, eles são capturados por um backup regular do sistema de arquivos, eles podem ser carregados, sem problemas, em todas as máquinas em que o usuário faz logon e é menos provável que se percam se você precisar reinstalar o sistema operacional.

    
por 09.07.2015 / 14:00
fonte
1

No passado distante, eu teria sugerido o uso do registro (em oposição a um arquivo INI). Nos dias de hoje, eu me inclinaria para o armazenamento de configurações e configurações baseadas em arquivos. As partes alteráveis pelo usuário das configurações devem ser mantidas usando o armazenamento isolado API.

    
por 09.07.2015 / 20:50
fonte