Almacenar y recuperar la configuración y otros datos de aplicación

Los datos de la aplicación son datos mutables que crea y administra una aplicación específica. Incluyen el estado en tiempo de ejecución, la configuración de la aplicación, las preferencias del usuario, el contenido de referencia (como definiciones de diccionario en una aplicación de diccionario) y otros valores de configuración. Los datos de la aplicación son diferentes de los datos de usuario, los datos que el usuario crea y administra al usar una aplicación. Los datos de usuario incluyen archivos multimedia o documentos, transcripciones de correo electrónico o comunicación, o registros de base de datos que contienen contenido creado por el usuario. Los datos de usuario pueden ser útiles o significativos para más de una aplicación. A menudo, estos son los datos que el usuario quiere manipular o transmitir como una entidad independiente de la propia aplicación, como un documento.

Nota importante sobre los datos de la aplicación: la duración de los datos de la aplicación está vinculada a la duración de la aplicación. Si se quita la aplicación, todos los datos de la aplicación se perderán como consecuencia. No use los datos de la aplicación para almacenar datos de usuario ni nada que los usuarios puedan percibir como valiosos e irreemplazables. Se recomienda usar las bibliotecas del usuario y Microsoft OneDrive para almacenar este tipo de información. Los datos de la aplicación son ideales para almacenar preferencias, configuraciones y favoritos específicos de la aplicación.

Tipos de datos de la aplicación

Hay dos tipos de datos de aplicación: configuración y archivos.

Configuración

Use la configuración para almacenar las preferencias del usuario y la información de estado de la aplicación. La API de datos de la aplicación le permite crear y recuperar fácilmente la configuración (le mostraremos algunos ejemplos más adelante en este artículo).

Estos son los tipos de datos que puede usar para la configuración de la aplicación:

  • UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double
  • Boolean
  • Char16, String
  • DateTime, TimeSpan
  • GUID, Point, Size, Rect
  • ApplicationDataCompositeValue: es un conjunto de opciones de configuración de aplicaciones relacionadas que se debe serializar y deserializar de forma atómica. Use la configuración compuesta para controlar fácilmente las actualizaciones atómicas de la configuración interdependiente. El sistema garantiza la integridad de la configuración compuesta durante el acceso simultáneo y la itinerancia. La configuración compuesta está optimizada para pequeñas cantidades de datos y el rendimiento puede ser deficiente si los usa para grandes conjuntos de datos.

Archivos

Use archivos para almacenar datos binarios o para habilitar sus propios tipos serializados personalizados.

Almacenamiento de datos de la aplicación en los almacenes de datos de la aplicación

Cuando se instala una aplicación, el sistema le proporciona sus propios almacenes de datos por usuario para la configuración y los archivos. No es necesario saber dónde o cómo existen estos datos, ya que el sistema es responsable de administrar el almacenamiento físico, lo que garantiza que los datos se mantienen aislados de otras aplicaciones y otros usuarios. El sistema también conserva el contenido de estos almacenes de datos cuando el usuario instala una actualización en la aplicación y quita el contenido de estos almacenes de datos completamente y limpio cuando se desinstala la aplicación.

Dentro de su almacén de datos de aplicaciones, cada aplicación tiene directorios raíz definidos por el sistema: uno para archivos locales, uno para archivos móviles y otro para archivos temporales. La aplicación puede agregar nuevos archivos y nuevos contenedores a cada uno de estos directorios raíz.

Datos de la aplicación local

Los datos de la aplicación local deben usarse para cualquier información que deba conservarse entre sesiones de aplicación y no es adecuada para los datos móviles de la aplicación. Los datos que no son aplicables en otros dispositivos también deben almacenarse aquí. No hay ninguna restricción de tamaño general en los datos locales almacenados. Use el almacén de datos de la aplicación local para los datos que no tiene sentido itinerar y para grandes conjuntos de datos.

Recuperación del almacén de datos de la aplicación local

Para poder leer o escribir datos de la aplicación local, debe recuperar el almacén de datos de la aplicación local. Para recuperar el almacén de datos de la aplicación local, use la propiedad ApplicationData.Local Configuración para obtener la configuración local de la aplicación como un objeto ApplicationDataContainer. Use la propiedad ApplicationData.LocalFolder para obtener los archivos en un objeto StorageFolder. Use la propiedad ApplicationData.LocalCacheFolder para obtener la carpeta en el almacén de datos de la aplicación local, donde puede guardar los archivos que no se incluyen en la copia de seguridad y restauración.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

Crear y recuperar una configuración local sencilla

Para crear o escribir una configuración, use la propiedad ApplicationDataContainer.Values para acceder a la configuración del contenedor localSettings que obtuvimos en el paso anterior. Este ejemplo crea una configuración llamada exampleSetting.

// Simple setting

localSettings.Values["exampleSetting"] = "Hello Windows";

Para recuperar la configuración, use la misma propiedad ApplicationDataContainer.Values que usó para crear la configuración. En este ejemplo se muestra cómo recuperar la configuración que acabamos de crear.

// Simple setting
Object value = localSettings.Values["exampleSetting"];

Creación y recuperación de un valor compuesto local

Para crear o escribir un valor compuesto, cree un objeto ApplicationDataCompositeValue. En este ejemplo se crea una configuración compuesta denominada exampleCompositeSetting y se agrega al contenedor localSettings.

// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
    new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";

localSettings.Values["exampleCompositeSetting"] = composite;

En este ejemplo se muestra cómo recuperar el valor compuesto que acabamos de crear.

// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
   (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];

if (composite == null)
{
   // No data
}
else
{
   // Access data in composite["intVal"] and composite["strVal"]
}

Crear y leer un archivo local

Para crear y actualizar un archivo en el almacén de datos de la aplicación local, use las API de archivo, como Windows.Storage.StorageFolder.CreateFileAsync y Windows.Storage.FileIO.WriteTextAsync. En este ejemplo se crea un archivo denominado dataFile.txt en el contenedor localFolder y se escribe la fecha y hora actuales en el archivo. El valor ReplaceExisting de la enumeración CreationCollisionOption indica que debe reemplazar el archivo si ya existe.

async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");

   StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt", 
       CreationCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.Now));
}

Para abrir y leer un archivo en el almacén de datos de la aplicación local, use las API de archivo, como Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync y Windows.Storage.FileIO.ReadTextAsync. En este ejemplo se abre el archivo dataFile.txt creado en el paso anterior y se lee la fecha del archivo. Para obtener más información sobre cómo cargar recursos de archivos desde varias ubicaciones, consulte Carga de recursos de archivos.

async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);
      // Data is contained in timestamp
   }
   catch (Exception)
   {
      // Timestamp not found
   }
}

Datos móviles

Advertencia

Los datos móviles y la configuración ya no se admiten a partir de Windows 11. El reemplazo recomendado es Azure App Service. Azure App Service es ampliamente compatible, está bien documentado, es confiable y admite escenarios multiplataforma o entre ecosistemas, como iOS, Android y web.

La siguiente documentación se aplica a las versiones 1909 y posteriores de Windows 10.

Si usa datos móviles en la aplicación, los usuarios pueden mantener fácilmente sincronizados los datos de la aplicación en varios dispositivos. Si un usuario instala la aplicación en varios dispositivos, el sistema operativo mantiene sincronizados los datos de la aplicación, lo que reduce la cantidad de trabajo de configuración que el usuario debe realizar para la aplicación en su segundo dispositivo. La itinerancia también permite a los usuarios continuar una tarea, como redactar una lista, justo donde se dejaron incluso en un dispositivo diferente. El sistema operativo replica los datos móviles en la nube cuando se actualiza y sincroniza los datos con los demás dispositivos en los que está instalada la aplicación.

El sistema operativo limita el tamaño de los datos de la aplicación que cada aplicación puede mover. Consulte ApplicationData.RoamingStorageQuota. Si la aplicación alcanza este límite, ninguno de los datos de la aplicación se replicará en la nube hasta que el total de datos de la aplicación móvil sea inferior al límite de nuevo. Por este motivo, es recomendable usar datos móviles solo para preferencias de usuario, vínculos y archivos de datos pequeños.

Los datos móviles de una aplicación están disponibles en la nube siempre que el usuario acceda a ellos desde algún dispositivo dentro del intervalo de tiempo necesario. Si el usuario no ejecuta una aplicación durante más tiempo que este intervalo de tiempo, sus datos móviles se quitan de la nube. Si un usuario desinstala una aplicación, sus datos móviles no se quitan automáticamente de la nube, se conservan. Si el usuario vuelve a instalar la aplicación en el intervalo de tiempo, los datos móviles se sincronizan desde la nube.

Los datos móviles sí y no

Consulte la nota importante sobre los datos de itinerancia.

  • Use la itinerancia para las preferencias del usuario y las personalizaciones, vínculos y archivos de datos pequeños. Por ejemplo, use la itinerancia para conservar la preferencia de color de fondo de un usuario en todos los dispositivos.
  • Use itinerancia para permitir que los usuarios continúen una tarea entre dispositivos. Por ejemplo, datos móviles de la aplicación, como el contenido de un correo electrónico borrador o la página más reciente vista en una aplicación de lector.
  • Controle el evento DataChanged actualizando los datos de la aplicación. Este evento se produce cuando los datos de la aplicación acaban de finalizar la sincronización desde la nube.
  • Referencias móviles al contenido en lugar de datos sin procesar. Por ejemplo, mueva una dirección URL en lugar del contenido de un artículo en línea.
  • Para una configuración importante y crítica, use la configuración HighPriority asociada a RoamingSettings.
  • No mueva los datos de la aplicación específicos de un dispositivo. Alguna información solo es pertinente a nivel local, como el nombre de la ruta a un recurso de archivo local. Si decide trasladar información local, asegúrese de que la aplicación puede recuperarse si la información no es válida en el dispositivo secundario.
  • No mueva grandes conjuntos de datos de la aplicación. Hay un límite para la cantidad de datos de la aplicación que una aplicación puede iterar; Use la propiedad RoamingStorageQuota para obtener este máximo. Si una aplicación alcanza este límite, ningún dato puede desplazarse hasta que el tamaño del almacén de datos de la aplicación ya no supere el límite. Al diseñar la aplicación, considere cómo colocar un límite en datos más grandes para no superar el límite. Por ejemplo, si guardar un estado de juego requiere 10 KB cada uno, la aplicación solo puede permitir que el usuario almacene hasta 10 juegos.
  • No use itinerancia para los datos que se basan en la sincronización instantánea. Windows no garantiza una sincronización instantánea; la itinerancia podría retrasarse significativamente si un usuario está sin conexión o en una red de alta latencia. Asegúrese de que la interfaz de usuario no depende de la sincronización instantánea.
  • No uses la itinerancia para los datos que cambian frecuentemente. Por ejemplo, si la aplicación realiza un seguimiento de la información que cambia con frecuencia, como la posición de una canción por segundo, no almacene esto como datos móviles de la aplicación. En su lugar, elija una representación menos frecuente que todavía proporciona una buena experiencia de usuario, como la canción que se está reproduciendo actualmente.

Requisitos previos de itinerancia

Consulte la nota importante sobre los datos de itinerancia.

Cualquier usuario puede beneficiarse de los datos de la aplicación móvil si usan una cuenta Microsoft para iniciar sesión en su dispositivo. Sin embargo, los usuarios y los administradores de directivas de grupo pueden desactivar los datos de la aplicación móvil en un dispositivo en cualquier momento. Si un usuario decide no usar una cuenta Microsoft o deshabilita las funcionalidades de los datos de itinerancia, seguirá pudiendo usar la aplicación, pero los datos de la aplicación serán locales para cada dispositivo.

La transición de los datos almacenados en PasswordVault solo se realizará si un usuario ha establecido un dispositivo como "de confianza". Si un dispositivo no es de confianza, los datos protegidos en este almacén no se moverán.

Resolución de conflictos

Consulte la nota importante sobre los datos de itinerancia.

Los datos de la aplicación móvil no están diseñados para su uso simultáneo en más de un dispositivo a la vez. Si surge un conflicto durante la sincronización porque se cambió una unidad de datos determinada en dos dispositivos, el sistema siempre favorecerá el valor que se escribió por última vez. Esto garantiza que la aplicación utilice la información más actualizada. Si la unidad de datos es una configuración compuesta, la resolución de conflictos se seguirá produciendo en el nivel de la unidad de configuración, lo que significa que la composición con el cambio más reciente se sincronizará.

Cuándo escribir datos

Consulte la nota importante sobre los datos de itinerancia.

En función de la duración esperada de la configuración, los datos se deben escribir en momentos diferentes. Los datos de la aplicación que cambian con poca frecuencia o lentamente deben escribirse inmediatamente. Sin embargo, los datos de la aplicación que cambian con frecuencia solo se deben escribir periódicamente a intervalos regulares (por ejemplo, una vez cada 5 minutos), así como cuando la aplicación se suspende. Por ejemplo, una aplicación de música podría escribir la opción de configuración "canción actual" siempre que se empiece a reproducir una canción nueva; sin embargo, la posición real de la canción solo debe escribirse durante el estado de suspensión.

Protección de uso excesiva

Consulte la nota importante sobre los datos de itinerancia.

El sistema tiene varios mecanismos de protección para evitar el uso inadecuado de los recursos. Si los datos de la aplicación no realizan la transición como se esperaba, es probable que el dispositivo se haya restringido temporalmente. Esperar algún tiempo normalmente resolverá esta situación automáticamente y no se requiere ninguna acción.

Control de versiones

Consulte la nota importante sobre los datos de itinerancia.

Los datos de la aplicación pueden usar el control de versiones para actualizar de una estructura de datos a otra. El número de versión es diferente de la versión de la aplicación y se puede establecer en will. Aunque no se aplica, se recomienda encarecidamente usar números de versión crecientes, ya que las complicaciones no deseadas (incluida la pérdida de datos) pueden producirse si intenta realizar la transición a un número de versión de datos inferior que represente datos más recientes.

Los datos de la aplicación solo se mueven entre las aplicaciones instaladas con el mismo número de versión. Por ejemplo, los dispositivos de la versión 2 pasarán los datos entre sí y los dispositivos de la versión 3 harán lo mismo, pero no se producirá ninguna itinerancia entre un dispositivo que ejecute la versión 2 y un dispositivo que ejecute la versión 3. Si instala una nueva aplicación que utilizó varios números de versión en otros dispositivos, la aplicación recién instalada sincronizará los datos de la aplicación asociados con el número de versión más alto.

Pruebas y herramientas

Consulte la nota importante sobre los datos de itinerancia.

Los desarrolladores pueden bloquear su dispositivo para desencadenar una sincronización de los datos de la aplicación móvil. Si parece que los datos de la aplicación no pasan dentro de un período de tiempo determinado, compruebe los siguientes elementos y asegúrese de que:

  • Los datos móviles no superan el tamaño máximo (consulte RoamingStorageQuota para obtener más información).
  • Los archivos se cierran y liberan correctamente.
  • Hay al menos dos dispositivos que ejecutan la misma versión de la aplicación.

Registro para recibir notificaciones cuando cambien los datos móviles

Consulte la nota importante sobre los datos de itinerancia.

Para usar los datos de la aplicación móvil, debe registrarse para realizar cambios en los datos móviles y recuperar los contenedores de datos móviles para que pueda leer y escribir la configuración.

  1. Regístrese para recibir notificaciones cuando cambien los datos móviles.

    El evento DataChanged le notifica cuándo cambian los datos móviles. En este ejemplo se establece DataChangeHandler como controlador para los cambios de datos móviles.

void InitHandlers()
    {
       Windows.Storage.ApplicationData.Current.DataChanged += 
          new TypedEventHandler<ApplicationData, object>(DataChangeHandler);
    }

    void DataChangeHandler(Windows.Storage.ApplicationData appData, object o)
    {
       // TODO: Refresh your data
    }
  1. Obtenga los contenedores para la configuración y los archivos de la aplicación.

    Utilice la propiedad ApplicationData.RoamingSettings para obtener la configuración y la propiedad ApplicationData.RoamingFolder para obtener los archivos.

Windows.Storage.ApplicationDataContainer roamingSettings = 
        Windows.Storage.ApplicationData.Current.RoamingSettings;
    Windows.Storage.StorageFolder roamingFolder = 
        Windows.Storage.ApplicationData.Current.RoamingFolder;

Creación y recuperación de la configuración de itinerancia

Consulte la nota importante sobre los datos de itinerancia.

Use la propiedad ApplicationDataContainer.Values para acceder a la configuración del contenedor roamingSettings que obtuvimos en la sección anterior. En este ejemplo se crea una configuración sencilla denominada exampleSetting y un valor compuesto denominado composite.

// Simple setting

roamingSettings.Values["exampleSetting"] = "Hello World";
// High Priority setting, for example, last page position in book reader app
roamingSettings.values["HighPriority"] = "65";

// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
    new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";

roamingSettings.Values["exampleCompositeSetting"] = composite;

En este ejemplo se recupera la configuración que acabamos de crear.

// Simple setting

Object value = roamingSettings.Values["exampleSetting"];

// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
   (Windows.Storage.ApplicationDataCompositeValue)roamingSettings.Values["exampleCompositeSetting"];

if (composite == null)
{
   // No data
}
else
{
   // Access data in composite["intVal"] and composite["strVal"]
}

Creación y recuperación de archivos móviles

Consulte la nota importante sobre los datos de itinerancia.

Para crear y actualizar un archivo en el almacén de datos de la aplicación móvil, use las API de archivo, como Windows.Storage.StorageFolder.CreateFileAsync y Windows.Storage.FileIO.WriteTextAsync. En este ejemplo se crea un archivo denominado dataFile.txt en el contenedor roamingFolder y se escribe la fecha y hora actuales en el archivo. El valor ReplaceExisting de la enumeración CreationCollisionOption indica que debe reemplazar el archivo si ya existe.

async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");

   StorageFile sampleFile = await roamingFolder.CreateFileAsync("dataFile.txt", 
       CreationCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.Now));
}

Para abrir y leer un archivo en el almacén de datos de la aplicación móvil, use las API de archivo, como Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync y Windows.Storage.FileIO.ReadTextAsync. En este ejemplo se abre el archivo dataFile.txt creado en la sección anterior y se lee la fecha del archivo. Para obtener más información sobre cómo cargar recursos de archivos desde varias ubicaciones, consulte Carga de recursos de archivos.

async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await roamingFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);
      // Data is contained in timestamp
   }
   catch (Exception)
   {
      // Timestamp not found
   }
}

Datos temporales de la aplicación

El almacén de datos de la aplicación temporal funciona como una memoria caché. Sus archivos no se mueven y se pueden quitar en cualquier momento. La tarea Mantenimiento del sistema puede eliminar automáticamente los datos almacenados en esta ubicación en cualquier momento. El usuario también puede borrar los archivos del almacén de datos temporal mediante la limpieza de disco. Los datos temporales de la aplicación se pueden usar para almacenar información temporal durante una sesión de aplicación. No hay ninguna garantía de que estos datos persistan más allá del final de la sesión de la aplicación, ya que el sistema podría reclamar el espacio usado si es necesario. La ubicación está disponible a través de la propiedad temporaryFolder.

Recuperación del contenedor de datos temporal

Utilice la propiedad ApplicationData.TemporaryFolder para obtener los archivos. Los pasos siguientes usan la variable temporaryFolder de este paso.

Windows.Storage.StorageFolder temporaryFolder = ApplicationData.Current.TemporaryFolder;

Creación y lectura de archivos temporales

Para crear y actualizar un archivo en el almacén de datos de aplicaciones temporales, use las API de archivo, como Windows.Storage.StorageFolder.CreateFileAsync y Windows.Storage.FileIO.WriteTextAsync. En este ejemplo se crea un archivo denominado dataFile.txt en el contenedor temporaryFolder y se escribe la fecha y hora actuales en el archivo. El valor ReplaceExisting de la enumeración CreationCollisionOption indica que debe reemplazar el archivo si ya existe.

async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");

   StorageFile sampleFile = await temporaryFolder.CreateFileAsync("dataFile.txt", 
       CreateCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.Now));
}

Para abrir y leer un archivo en el almacén de datos de la aplicación temporal, use las API de archivo, como Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync y Windows.Storage.FileIO.ReadTextAsync. En este ejemplo se abre el archivo dataFile.txt creado en el paso anterior y se lee la fecha del archivo. Para obtener más información sobre cómo cargar recursos de archivos desde varias ubicaciones, consulte Carga de recursos de archivos.

async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await temporaryFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);
      // Data is contained in timestamp
   }
   catch (Exception)
   {
      // Timestamp not found
   }
}

Organización de los datos de la aplicación con contenedores

Para ayudarle a organizar la configuración y los archivos de datos de la aplicación, cree contenedores (representados por objetos ApplicationDataContainer) en lugar de trabajar directamente con directorios. Puede agregar contenedores a los almacenes de datos de aplicaciones locales, móviles y temporales. Los contenedores se pueden anidar hasta 32 niveles de profundidad.

Para crear un contenedor de configuración, llame al método ApplicationDataContainer.CreateContainer. En este ejemplo se crea un contenedor de configuración local denominado exampleContainer y se agrega una configuración denominada exampleSetting. El valor Always de la enumeración ApplicationDataCreateDisposition indica que el contenedor se crea si aún no existe.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

// Setting in a container
Windows.Storage.ApplicationDataContainer container = 
   localSettings.CreateContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.Always);

if (localSettings.Containers.ContainsKey("exampleContainer"))
{
   localSettings.Containers["exampleContainer"].Values["exampleSetting"] = "Hello Windows";
}

Eliminación de la configuración y los contenedores de la aplicación

Para eliminar una configuración sencilla que la aplicación ya no necesite, use el método ApplicationDataContainerSettings.Remove. En este ejemplo se elimina la configuración local exampleSetting que creamos anteriormente.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

// Delete simple setting

localSettings.Values.Remove("exampleSetting");

Para eliminar una configuración compuesta, use el método ApplicationDataCompositeValue.Remove. En este ejemplo se elimina la configuración compuesta local exampleCompositeSetting que creamos en un ejemplo anterior.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

// Delete composite setting

localSettings.Values.Remove("exampleCompositeSetting");

Para eliminar un contenedor, llame al método ApplicationDataContainer.DeleteContainer. En este ejemplo se elimina el contenedor de configuración local exampleContainer que creamos anteriormente.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

// Delete container

localSettings.DeleteContainer("exampleContainer");

Versionar los datos de su aplicación

Opcionalmente, puede crear una versión de los datos de la aplicación para la aplicación. Esto te permitiría crear una versión futura de la aplicación que cambia el formato de los datos de la aplicación sin causar problemas de compatibilidad con la versión anterior de la aplicación. La aplicación comprueba la versión de los datos de la aplicación en el almacén de datos y, si la versión es menor que la que espera la aplicación, la aplicación debe actualizar los datos de la aplicación al nuevo formato y actualizar la versión. Para obtener más información, consulte la propiedad Application.Version y el método ApplicationData.SetVersionAsync.