A Microsoft tem um documento de práticas recomendadas em relação ao armazenamento de dados de aplicativos versus dados de usuários em diferentes plataformas Windows?

StackOverflow https://stackoverflow.com/questions/1507923

  •  19-09-2019
  •  | 
  •  

Pergunta

Ao criar um aplicativo que será direcionado a muitas versões do Windows, qual é a prática recomendada para determinar onde os dados específicos do aplicativo devem ser armazenados.Especificamente:

  • Dados específicos do aplicativo (por exemplo,dados de configuração do aplicativo)
  • Dados/configurações específicas do usuário

Eu sei que no Windows Vista, por exemplo, existem variáveis ​​de ambiente, como% APPDATA%, que podem ser usadas, mas e o Windows 7, Windows XP, Windows 98.

Minha principal pergunta é: a Microsoft tem um documento de práticas recomendadas para isso, descrevendo os locais do sistema de arquivos para os diferentes tipos de dados (aplicativo vs.usuário) e as implicações de segurança que precisam ser lembradas ao ler/gravar nesses locais?

Também estou interessado em saber como isso se aplica não apenas a aplicativos .NET (onde ApplicationSettingsBase pode ser utilizado), mas também a aplicativos C/C++ não gerenciados.

Obrigado a Pax e Remus pelas ótimas respostas.Também encontrei este item (específico para XP):

Como escrever um aplicativo do Windows XP que armazene dados de usuários e aplicativos no local correto usando Visual C++

Foi útil?

Solução

Há uma boa descrição aqui dos vários valores CSIDL e das pastas às quais eles se referem (incluindo uma descrição que deverá lhe dizer o que você precisa saber).

Ele também contém links para as funções que você deve usar para recuperar esses caminhos de pastas especiais.

Observe que, a partir do Vista, o método mudou um pouco.Agora usa KNOWNFOLDERID em vez de CSIDL e as funções também mudaram.Ver aqui.

Você ainda pode usar as funções mais antigas (no momento), pois acredito que agora elas são apenas invólucros das novas.Em algum momento no futuro isso pode mudar.

Outras dicas

Geralmente são descritos no Programa de logotipo de software do Windows (link quebrado).O link é para o documento de requisitos do logotipo do Windows 7, mas existem documentos semelhantes para XP, Windows 2003, Vista e Windows 2008.Na seção Requisitos Técnicos você encontrará algumas das informações que procura:

Todos os dados do aplicativo que devem ser compartilhados entre os usuários no computador devem ser armazenados dentro ProgramData

Todos os dados do aplicativo exclusivos para um usuário específico e não devem ser compartilhados com outros usuários do computador devem ser armazenados em Users\<username>\AppData

Nas instalações "por máquinas", os dados do usuário devem ser gravados na primeira execução e não durante a instalação.Isso ocorre porque não há localização correta do usuário para armazenar dados no momento da instalação.

EDITAR:

Usuários do Windows 10, procurem o Requisitos de certificação para aplicativos de desktop do Windows (Seção 10)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top