Guardar y cargar la configuración en una aplicación para UWP

En este tema se explica lo que necesita saber para comenzar a cargar y guardar configuraciones en una aplicación de la Plataforma universal de Windows (UWP). Se presentan las API principales y se proporcionan vínculos que le ayudarán a obtener más información.

Use la configuración para recordar los aspectos personalizables de su aplicación. Por ejemplo, un lector de noticias podría usar la configuración de la aplicación para guardar qué fuentes de noticias se mostrarán y qué fuente se usará para leer artículos.

Veremos el código para guardar y cargar la configuración de la aplicación.

¿Qué debes saber?

Use la configuración de la aplicación para guardar datos de configuración como las preferencias del usuario y el estado de la aplicación.

Se pueden usar los siguientes tipos de datos con la configuración: enteros, dobles, controles flotantes, caracteres, cadenas, puntos, fechas y horas, etc. También puede almacenar instancias de la clase ApplicationDataCompositeValue que es útil cuando hay varias opciones de configuración que deben tratarse como una unidad. Por ejemplo, un tamaño de fuente y un tamaño de punto para mostrar texto en el panel de lectura de su aplicación se deben guardar y restaurar como una sola unidad. Esto impide que una configuración se desincronice con la otra debido a un acceso simultáneo, como entre el programa principal y una tarea en segundo plano.

Estas son las principales API que debe conocer para guardar o cargar la configuración de la aplicación:

  • Windows.Storage.ApplicationData.Current.LocalSettings obtiene el contenedor de configuración de la aplicación del almacén de datos de la aplicación local. La configuración almacenada aquí se mantiene en el dispositivo.
  • Windows.Storage.ApplicationData.Current.RoamingSettings obtiene el contenedor de configuración de la aplicación del almacén de datos de la aplicación de itinerancia. La configuración almacenada aquí ya no se mueve (a partir de Windows 11), pero el almacén de configuración sigue estando disponible. El reemplazo recomendado para RoamingSettings 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.
  • Windows.Storage.ApplicationDataContaineres un contenedor que representa la configuración de la aplicación como pares clave/valor. Use esta clase para crear y recuperar valores de configuración.
  • Windows.Storage.ApplicationDataCompositeValue representa varias opciones de configuración de aplicación que se deben serializar como unidad. Esto es útil cuando configuración no se debe actualizar independientemente de la otra.

Guardar configuración de la aplicación

Para esta introducción, nos centraremos en dos escenarios sencillos: guardar y cargar una configuración de aplicación sencilla, y guardar y cargar una configuración de tamaño de fuente o fuente compuesta.

ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

// Save a setting locally on the device
localSettings.Values["test setting"] = "a device specific setting";

// Save a composite setting locally on the device
Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["Font"] = "Calibri";
composite["FontSize"] = 11;
localSettings.Values["FontInfo"] = composite;

Para guardar una configuración, obtenga primero un objeto ApplicationDataContainer para el almacén de datos de configuración local con Windows.Storage.ApplicationData.Current.LocalSettings. Los pares de diccionario clave/valor que asigna a esta instancia se guardan en el almacén de datos de configuración de dispositivo local.

En el fragmento de código anterior, un objeto ApplicationDataCompositeValue almacena varios pares clave/valor. Los valores compuestos son útiles cuando tiene varias opciones de configuración que no deberían dejar de sincronizarse entre sí. Cuando guarde un ApplicationDataCompositeValue, los valores se guardan y se cargan como unidad o de forma atómica. De esta manera, los valores que están relacionados no se desincronizarán.

Cargar configuración de aplicaciones

ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

// load a setting that is local to the device
String localValue = localSettings.Values["test setting"] as string;

// load a composite setting
Windows.Storage.ApplicationDataCompositeValue composite = (ApplicationDataCompositeValue)localSettings.Values["FontInfo"];
if (composite != null)
{
    String fontName = composite["Font"] as string;
    int fontSize = (int)composite["FontSize"];
}

Para cargar una configuración, obtenga primero una instancia de ApplicationDataContainer para el almacén de datos de configuración local con Windows.Storage.ApplicationData.Current.LocalSettings. A continuación, úsela para recuperar pares de clave y valor. Si los datos no están presentes, obtendrá un objeto NULL. En C#, esto significa que localValue será null si la configuración no existe.

Para cargar una configuración compuesta, siga un patrón similar. Acceda a los pares clave/valor del almacén de datos de la configuración local. Si los datos no están presentes, obtendrá un objeto applicationDataContainer nulo. Ese es el motivo por el que hay una comprobación if (composite != null) en el código de ejemplo anterior.

API y documentos útiles

Este es un resumen rápido de las API y otra documentación útil para ayudarlo a comenzar a guardar y cargar la configuración de la aplicación.

API útiles

API Descripción
ApplicationData.LocalSettings Obtiene el contenedor de configuración de la aplicación del almacén de datos de la aplicación local.
ApplicationData.RoamingSettings Obtiene el contenedor de configuración de la aplicación del almacén de datos de la aplicación de itinerancia.
ApplicationDataContainer Un contenedor para la configuración de la aplicación que soporte crear, eliminar, enumerar y el recorrido de la jerarquía de contenedores.
Windows.UI.ApplicationSettings Namespace Proporciona clases que utilizará para definir la configuración de la aplicación que aparece en el panel de configuración del shell de Windows.

Documentos útiles

Tema Descripción
Directrices para la configuración de una aplicación Describe los procedimientos recomendados para crear y mostrar la configuración de la aplicación.
Almacenar y recuperar la configuración y otros datos de aplicación Recorrido para guardar y recuperar la configuración.

Ejemplos de código útiles

Ejemplo de código Descripción
Application data sample (ejemplo de datos de aplicaciones) Los escenarios 2-4 se centran en la configuración