2009-10-02 13 views
18

Al crear una aplicación que se orientará a muchas versiones de Windows, cuál es la mejor práctica para determinar dónde deben almacenarse los datos específicos de la aplicación. Específicamente:¿Microsoft tiene un documento de mejores prácticas con respecto al almacenamiento de datos de la aplicación frente a los datos del usuario en diferentes plataformas de Windows?

  • de aplicación de datos específicos (por ejemplo, datos de aplicaciones de configuración)
  • usuario específico Datos/Ajustes

Sé que en Windows Vista, por ejemplo, existen variables de entorno, como% APPDATA%, que podrían ser utilizado, pero ¿qué pasa con Windows 7, Windows XP, Windows 98.

Mi pregunta principal es, ¿tiene Microsoft un documento de mejores prácticas para esto, que describe las ubicaciones del sistema de archivos para los diferentes tipos de datos (aplicación vs. usuario) y las implicaciones de seguridad t ¿Debe tenerse en cuenta al leer/escribir en estos lugares?

También me interesa saber cómo esto se aplica no solo a las aplicaciones .NET (donde se puede utilizar ApplicationSettingsBase) sino también a las aplicaciones C/C++ no administradas.

Gracias a Pax y Remus por las excelentes respuestas. He encontrado este artículo también (específico para XP):

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

Respuesta

8

Hay una buena descripción here de los diversos valores CSIDL y las carpetas que se refieren a (incluyendo una descripción que debe decirle con suerte lo Necesitas saber).

También contiene enlaces a las funciones que debe usar para recuperar estas rutas de carpeta especiales.

Tenga en cuenta que, a partir de Vista, el método ha cambiado un poco. Ahora usa KNOWNFOLDERID en lugar de CSIDL y las funciones también han cambiado. Ver here.

Puede seguir utilizando las funciones anteriores (por el momento) ya que creo que ahora son solo envoltorios de las nuevas. En algún momento en el futuro, eso puede cambiar.

8

Por lo general, se describen en el Windows Software Logo Program (link broken). El enlace es al documento de requisitos del logotipo de Windows 7, pero existen documentos similares para XP, Windows 2003, Vista y Windows 2008. En la sección de Requisitos técnicos, encontrará la información que está buscando:

Todos los datos de aplicación que debe ser compartida entre los usuarios en el equipo deben almacenarse dentro de ProgramData

Todos los datos de aplicación exclusiva a un usuario específico y no para ser compartidos con otros usuarios de la computadora debe almacenarse en Users\<username>\AppData

En instalaciones “por equipo”, datos de usuario deben ser escritas en la primera carrera y no durante la instalación. Esto es porque no hay una ubicación correcta para el usuario para almacenar datos en el momento de la instalación .

EDIT:

de Windows 10 usuarios, buscar la Certification requirements for Windows Desktop Apps (Section 10)

Cuestiones relacionadas