2009-10-02 30 views
18

Quando si crea un'applicazione destinata a molte versioni di Windows, è la procedura migliore per determinare dove devono essere archiviati i dati specifici dell'applicazione. In particolare:Microsoft dispone di un documento sulle migliori pratiche in merito all'archiviazione dei dati delle applicazioni rispetto ai dati utente su diverse piattaforme Windows?

  • Dati applicazioni specifiche (ad esempio, dati di app config)
  • utente specifico i dati/impostazioni

So su Windows Vista per esempio ci sono variabili d'ambiente, come% appdata%, che potrebbe essere utilizzato, ma per quanto riguarda Windows 7, Windows XP, Windows 98.

La mia domanda principale è, Microsoft ha un documento di buone pratiche per questo, delineando le posizioni del file system per i diversi tipi di dati (app vs utente) e le implicazioni per la sicurezza t cappello deve essere tenuto a mente durante la lettura/scrittura di questi luoghi?

Sono anche interessato a come questo riguarda non solo le applicazioni .NET (dove ApplicationSettingsBase può essere utilizzato) ma anche in applicazioni C/C++ non gestite.

Grazie a Pax e Remus per entrambe le grandi risposte. Ho trovato questo oggetto così (specifico per XP):

How to write a Windows XP Application that stores user and application data in the correct location by using Visual C++

risposta

8

C'è una buona descrizione here dei diversi valori CSIDL e le cartelle a cui si riferiscono (compresa la descrizione che dovrebbe auspicabilmente dirvi cosa devi sapere).

Contiene inoltre collegamenti alle funzioni che è necessario utilizzare per recuperare questi percorsi di cartella speciali.

Si noti che, a partire da Vista, il metodo è leggermente cambiato. Ora utilizza KNOWNFOLDERID anziché CSIDL e anche le funzioni sono cambiate. Vedi here.

È ancora possibile utilizzare le funzioni precedenti (al momento) poiché credo che ora siano solo involucri attorno a quelli nuovi. Ad un certo punto nel futuro, questo potrebbe cambiare.

8

Questi sono solitamente descritti nello Windows Software Logo Program (link broken). Il collegamento è per il documento dei requisiti del logo di Windows 7, ma documenti simili esistono per XP, Windows 2003, Vista e Windows 2008. Nella sezione Requisiti tecnici troverai alcune delle informazioni che stai cercando:

Tutti i dati delle applicazioni che devono essere condivise tra gli utenti del computer devono essere conservati all'interno ProgramData

Tutti i dati delle applicazioni esclusive per un utente specifico e non da condividere con gli altri utenti del computer deve essere immagazzinate nella Users\<username>\AppData

Nelle installazioni "per macchina", i dati utente devono essere scritti alla prima esecuzione e non durante l'installazione. Questo è perché non esiste un utente corretto posizione per memorizzare i dati al momento dell'installazione di .

EDIT:

di Windows 10 utenti, cercare l'Certification requirements for Windows Desktop Apps (Section 10)