visual tutorial studio español ejemplos developer apps cross-platform

cross platform - tutorial - ¿Dónde deberían las aplicaciones multiplataforma mantener sus datos?



xamarin studio (9)

Como punto general, recomendaría resumir la implementación de su configuración en un ''Proveedor de configuración'' y proporcionar diferentes proveedores para cada plataforma. De esta forma, puede implementar el almacenamiento de la configuración de la manera que mejor se adapte a las plataformas de destino (por ejemplo, un archivo en Linux o el Registro de Windows).

No simplemente adopte el ''mínimo común denominador''. Cuando tenga contenido que debe estar explícitamente almacenado en archivos, haga que su proveedor de configuración exponga la ubicación específica de la plataforma para esos archivos.

Estoy construyendo una aplicación que se dirige a Windows, Mac y Linux pronto. Me preguntaba dónde debería guardar los datos de la aplicación, como la configuración, etc.

La carpeta de instalación de la aplicación es la opción más fácil, pero creo que podría ser un problema con el nuevo modelo de seguridad de Vista. Además, los usuarios pueden desear configuraciones diferentes.

¿Es C: / Documents and Settings / username / MyApp bueno para Vista y XP? ¿Es /home/username/.MyApp bueno para Linux y Mac?

Cualquier idea y / o enlace a las mejores prácticas muy apreciadas.

¡Gracias!

Juan


Con respecto a las mejores prácticas, Jeff publicó un artículo sobre la contaminación del espacio de usuario que podría resultarle útil: No contaminar el espacio de usuario


En Windows necesita ir a otro nivel más profundo que solo el perfil del usuario. Use la carpeta de Datos de Aplicación.


En Windows utilizo APPDATA, y en Linux uso HOME.


No soy :)

Estoy usando USERPROFILE en Windows y HOME en Mac / Linux. Pero aun así, necesito saber que esos son los lugares correctos.

¡Gracias!


Nunca, nunca almacene los datos del usuario en la carpeta de la aplicación. Es solo una mala idea.

La mayoría de los sistemas operativos tienen una variable de entorno $ HOME (o% HOME%). Ese sería el primer lugar para mirar.

Sin embargo, si quieres admitir de manera limpia múltiples sistemas operativos, vas a tener que tener un código específico del sistema operativo para cada uno que adivine exactamente a dónde deben ir las cosas. (~ / Library para Mac OS, ~ / .config para sistemas basados ​​en GNOME,% HOME% / Application Data para Windows, etc.).



Cada plataforma tiene su propia API para encontrar la carpeta de inicio del usuario, o la carpeta de documentos, o la carpeta de preferencias.

  • Windows: SHGetFolderPath () o SHGetKnownFolderPath ()
  • Sistema operativo Mac OS X e iPhone: NSSearchPathForDirectoriesInDomains ()
  • Unix: variable de entorno $ HOME

No codifique las rutas específicas o simplemente inserte un prefijo y sufijo en el nombre del usuario. Además, intente seguir las convenciones que existan para que la plataforma nombre los archivos.