Datos de usuario y de la aplicación

Hay varios lugares donde las aplicaciones de Windows en tiempo de ejecución pueden almacenar datos de la aplicación y del usuario. El lugar adecuado para almacenar los datos depende del escenario y del lenguaje que elijas para crear tu aplicación. Haremos un resumen de toda la gama de medios de almacenamiento y resaltaremos los escenarios donde mejor funcione cada medio.

Tipos de datos de aplicación

Hay dos clases de datos que suelen administrar las aplicaciones o con las que estas suelen interactuar:

  • Datos de aplicación

    Datos que crea y administra la propia aplicación. Son datos mutables específicos de las funciones internas o de la configuración de una aplicación particular. Incluyen el estado en tiempo de ejecución, preferencias del usuario, contenido de referencia (como definiciones de diccionario en una aplicación de diccionario) y otros valores de configuración. Los datos de aplicación están vinculados a la existencia de la aplicación y solo tienen sentido para esa aplicación.

  • Datos de usuario

    Los datos que crea y administra el usuario cuando usa una aplicación. Incluye archivos multimedia o documentos, correos electrónicos o transcripciones de comunicaciones, o registros de bases de datos que contiene contenido creado por el usuario. Ten en cuenta que las preferencias seleccionadas por el usuario o las opciones de configuración se consideran datos de aplicación, no datos de usuario. Los datos de usuario pueden ser útiles o significativos a más de una aplicación. Con frecuencia, se trata de datos que el usuario quiere manipular o transmitir como entidad independiente de la propia aplicación (como, por ejemplo, un documento).

Almacena los datos de aplicación de tus aplicaciones de Windows en tiempo de ejecución en almacenes de datos que el sistema proporcione a tal efecto y, asimismo, que sean específicos de la aplicación y el usuario. Así, el sistema podrá administrar estos almacenes de datos y mantenerlos aislados de otras aplicaciones y otros usuarios. El sistema mantiene estos almacenes de datos cuando el usuario instala una actualización de la aplicación. El sistema también quita el contenido de estos almacenes de datos completa y limpiamente cuando el usuario desinstala la aplicación. No almacenes datos de la aplicación en ubicaciones de almacenes previstos para datos de usuarios para sortear estas características.

Como la duración de los almacenes de datos de la aplicación están vinculados a la duración de la aplicación, no almacenes datos de usuario como documentos o elementos multimedia almacenes de datos previstos para los datos de la aplicación. Usa las bibliotecas del usuario y Microsoft OneDrive para almacenar este tipo de información.

En esta tabla se resumen las distintas ubicaciones de datos disponibles para la aplicación, sus limitaciones y sus usos recomendados. El acceso a algunas ubicaciones de datos está limitado en las aplicaciones de Windows en tiempo de ejecución con JavaScript, en función del contexto del documento. Todas las limitaciones de tamaño de almacenamiento también están restringidas por el tamaño general del medio de almacenamiento.

Datos de usuario

Ubicación de datosDisponible paraCaracterísticas y limitacionesUso recomendado

Bibliotecas a las que acceden StorageFile y file pickers de Windows en tiempo de ejecución

  • Aplicaciones de Windows en tiempo de ejecución creadas con JavaScript (contexto local)
  • Aplicaciones de la Tienda Windows con C++, C# o Visual Basic
  • Aplicaciones de la Tienda Windows creadas con C++
  • Cargar y guardar archivos en las bibliotecas del usuario
  • API asincrónica
  • Sin limitación de tamaño
  • Selectores de archivos y carpetas:
    • Usa selectores de archivos y carpetas para que el usuario pueda controlar la selección o la creación del archivo.
  • Acceso mediante programación:
    • Requiere una funcionalidad en el manifiesto del paquete para cada biblioteca, con la excepción de descargas cuando la aplicación tiene permiso para escribir o leer lo que escribió.
    • Requiere una extensión del tipo de archivo deseado en el manifiesto del paquete para archivos que se pueden abrir para Documentos o ubicaciones del almacenamiento extraíble.

Datos de usuario previstos para que se mantengan después de la duración de la aplicación o que el usuario administre independientemente.

OneDrive

  • Aplicaciones de Windows en tiempo de ejecución con JavaScript
  • Aplicaciones de la Tienda Windows con C++, C# o Visual Basic
  • Aplicaciones de la Tienda Windows creadas con DirectX
  • Admite almacenamiento de datos de usuario en la nube y está disponible en varias plataformas de dispositivos
  • API basada en REST y en JSON (notación de objetos JavaScript)
  • Restringido a una lista definida de formatos de archivo admitidos
  • Permite el acceso a contenido compartido por otros usuarios
  • La cuota de tamaño se basa en la cuenta de usuario

Datos de usuario a los que el usuario desea acceder desde varios dispositivos, plataformas o aplicaciones.

API de archivo HTML5

  • Aplicaciones de Windows en tiempo de ejecución con JavaScript (contexto web y contexto local)
  • Aplicaciones de la Tienda Windows con C++, C# o Visual Basic
  • Aplicaciones de la Tienda Windows creadas con DirectX
  • Estándar web

Se prefiere en escenarios en los que se carguen y se descarguen archivos. Para las transferencias que continúan mientras la aplicación no está activa, usa BackgroundTransfer de Windows en tiempo de ejecución desde el contexto local.

 

Además de las opciones de almacenamiento descritas en esta tabla, también puedes usar soluciones de almacenamiento en nube y de base de datos de terceros.

Datos de aplicación

Ubicación de datosDisponible paraCaracterísticas y limitacionesUso recomendado

API de datos de aplicaciones para Windows en tiempo de ejecución

  • Aplicación de Windows en tiempo de ejecución creadas con JavaScript (contexto local)
  • Aplicación de la Tienda Windows con C++, C# o Visual Basic
  • Aplicación de la Tienda Windows con DirectX
  • Proporciona una almacén de datos local y un almacén de datos de roaming
  • También proporciona un almacén de datos temporales sujetos al Liberador de espacio en disco del sistema
  • Admite contenido altamente estructurado (configuración)
  • Admite tipos compuestos (un conjunto de valores de configuración administrados como una unidad atómica)
  • Admite datos sin estructurar (archivos)
  • La configuración usa un API sincrónico
  • Los archivos usan un API asincrónico
  • La configuración está limitada a 8K por valor o 64K por valor compuesto; no hay límite en cuanto al número de valores, pero recomendamos que se almacenen menos de 1MB de datos
  • Los archivos no tienen límite de tamaño
  • Los archivos y la configuración de roaming están limitados por paquete en el tamaño general, tal como se define en la ApplicationData.RoamingStorageQuota, o no se producirá el roaming
  • El sistema decide cuándo se produce el roaming, para conservar ancho de banda y duración de la batería. La configuración de alta prioridad utiliza un perfil móvil de frecuencia más alta que otras configuraciones.
  • No hay un límite de tamaño en los datos temporales

Para configuraciones y archivos de datos sin estructurar.

IndexedDB

  • Aplicación de Windows en tiempo de ejecución con JavaScript (contexto web y contexto local)
  • Tecnología de almacenamiento ISAM
  • Navegación de cursor indizado o secuencial
  • El almacenamiento se limita a 250 MB por aplicación
  • Para las unidades de menos de 30 GB, el almacenamiento está limitado a 375 MB entre todas las aplicaciones instaladas
  • Para las unidades de 30 GB o más, el almacenamiento está limitado al 4% del tamaño de la unidad o a 20 GB, lo que sea menor, entre todas las aplicaciones instaladas
  • Las páginas de contexto web basadas en web solo pueden usar IndexedDB si la dirección URL de la página está en la porción ApplicationContentUriRules del manifiesto del paquete de la aplicación, a menos que se establezca la etiqueta meta ms-enable-external-database-usage en la página de inicio de la aplicación

Para el almacenamiento de datos estructurados e indizados usados solo por JavaScript. Está previsto principalmente para escenarios de almacenamiento en caché.

Motor de almacenamiento extensible (ESE)

  • Cualquier aplicación, pero el desarrollador debe ajustar las llamadas en un objeto de Windows en tiempo de ejecución antes de que lo puedan llamar autores de llamadas que no sean C/C++
  • Tecnología de almacenamiento ISAM
  • Navegación de cursor indizado o secuencial
  • Datos transaccionales
  • Sólida coherencia de datos, incluso en casos de bloqueos del sistema
  • Datos almacenados en memoria caché para su rápida recuperación
  • Escalable a tamaños grandes, normalmente de más de 50 GB
  • Almacenado en un archivo binario plano, colocado en disco mediante otros medios, como las API ApplicationData de Windows en tiempo de ejecución
  • Solo se proporcionan API de C/C++

Para almacenamiento de datos estructurados e indizados para el uso de C/C++ o ajustados en un objeto de Windows en tiempo de ejecución creado por el desarrollador.

Almacenamiento web HTML5

  • Aplicación de Windows en tiempo de ejecución con JavaScript (contexto web y contexto local)
  • Aplicación de la Tienda Windows con C++, C# o Visual Basic (con el control WebView)
  • Usa pares de valores clave de la cadena
  • Estándar web
  • Aislado de la memoria caché del explorador a nivel de usuario y de aplicación
  • API sincrónica
  • Tiene un límite de tamaño de 10 MB

Usa localStorage cuando necesites almacenamiento ligero en un contexto web en el que Windows en tiempo de ejecución no esté disponible. No uses sessionStorage porque solo existe en la memoria y no se mantendrá al finalizar la aplicación. Úsalo solo para el almacenamiento momentáneo en el que haya poca probabilidad de que se interrumpa si el usuario sale de la aplicación.

WinJS.Application.sessionState

  • Aplicación de Windows en tiempo de ejecución creadas con JavaScript (contexto local)
  • Objeto de JavaScript con propiedades definidas por la aplicación
  • La Biblioteca de Windows para JavaScript lo guarda automáticamente en suspensión en los ApplicationData locales
  • Sin limitaciones de tamaño.

Se prefiere solo como lugar para almacenar el estado transitorio de la aplicación cuando esta entra en suspensión y finaliza, para reanudarse en el mismo estado.

Almacenamiento de estado de WinJS.Application.local

  • Aplicación de Windows en tiempo de ejecución con JavaScript (contexto web y contexto local)
  • Contenedor de ApplicationData
  • Retrocede a una implementación en la memoria cuando está en un contexto web

Para JavaScript que debe ejecutarse tanto en un contexto web como en un contexto local.

Almacenamiento de estado de WinJS.Application.roaming

  • Aplicación de Windows en tiempo de ejecución con JavaScript (contexto web y contexto local)
  • Contenedor de ApplicationData
  • Retrocede a una implementación en la memoria cuando está en un contexto web

Para JavaScript que debe ejecutarse tanto en un contexto web como en un contexto local.

 

Además de las opciones de almacenamiento descritas en esta tabla, también puedes usar soluciones de almacenamiento en nube y de base de datos de terceros.

Servidor

Cuando la aplicación interactúa con sitios web y servicios web, puede usar otras ubicaciones de almacenamiento de datos:

Ubicación de datosDisponible paraCaracterísticas y limitacionesUso recomendado

Caché de aplicación HTML5

  • Aplicación de Windows en tiempo de ejecución con JavaScript (contexto web y contexto local)
  • Aplicación de Windows en tiempo de ejecución con JavaScript (mediante un manifiesto de caché de aplicación basado en web)
  • Estándar web
  • Permite la captura previa de marcado, scripts, hojas de estilo y recursos de aplicaciones basadas en web para facilitar el uso desconectado
  • Las páginas de contexto local solo pueden usar una memoria caché de aplicación basada en web para capturar recursos que no contienen código. Por ejemplo, puedes usarlo para capturar imágenes, audio, vídeo o xml para uso desconectado.
  • No se puede escribir mediante scripts
  • Para que una página en el contexto web acceda a la memoria caché de aplicación, su dirección URL se debe agregar a la parte ApplicationContentUriRules del manifiesto del paquete de la aplicación. Las páginas en el contexto local no presentan este requisito.

Se usa cuando el contenido es de solo lectura, se envía desde un servidor web y necesita ser accesible cuando el dispositivo está desconectado. Aunque la memoria caché de aplicación HTML5 se puede usar para enviar contenido individualizado, su principal uso previsto es como estrategia de almacenamiento en caché para poder acceder a datos mientras se está desconectado.

Cookies

  • Aplicación de Windows en tiempo de ejecución con JavaScript (contexto web y contexto local)
  • Aplicación de la Tienda Windows con C++, C# o Visual Basic (con WebView)
  • Aplicaciones con IXMLHTTPRequest2
  • Estándar web
  • Aislado de la memoria caché del explorador a nivel de usuario y de aplicación
  • Límite de tamaño de 4K por cookie; el número de cookies es ilimitado
  • Las cookies a una página y desde una página en el contexto local a Internet mediante XHR están sujetas a las reglas web normales de uso compartido de cookies entre dominios

Para datos que se deben compartir con cada solicitud a un servidor web.

Servicios de nube, servicios OpenData y base de datos en la nube

  • Cualquier aplicación
  • Permite soluciones completas de base de datos en la nube
  • Habilita el procesamiento desencadenado o periódico del servidor
  • Las características dependen de que se adopte el servicio de nube

Se prefiere cuando se trabaja con contenido voluminoso, generado por un origen de terceros, o también se muestra en un sitio web y en la aplicación.

 

 

 

Mostrar:
© 2015 Microsoft