18

Estoy tratando de encontrar una API dentro de WinRT que me permita crear una base de datos local que se pueda usar para almacenar datos para una aplicación ocasionalmente conectada. Estoy buscando algo como SQL Compact Edition.Almacenamiento de base de datos local para aplicaciones WinRT/Metro

he visto varios mensajes en diversas tarjetas que indican que allí tampoco

  • (a) no será bases de datos locales en absoluto
  • (b) no hay bases de datos "servidor" locales (es decir, las instancias de tipo SQL Express)
  • (c) Un código de base de datos local llamado "Jet Blue".

¿Alguien tiene una respuesta definitiva a esto? No quiero comenzar por este camino si está bloqueado.

+0

No hay disponible ninguna solución de dbase local. Un poco tonto para adivinar si ese camino está bloqueado, ni siquiera está en beta todavía. –

+0

Hans; ese es un comentario justo. Me doy cuenta de que ni siquiera hemos llegado a la versión beta, solo esperaba que alguien pudiera haber encontrado más documentación que me había perdido. Gracias. –

+1

Existe una solución de base de datos local perfectamente válida llamada azul de chorro ... – fabspro

Respuesta

0

Existen soluciones de terceros que están apareciendo o ya han salido. CodePlex tiene uno: http://sqlwinrt.codeplex.com/

La otra opción, que requiere cierto trabajo de su parte, es realizar un proxy de acceso a su base de datos a través de un servicio web.

+0

Gracias por esto. Sabía que tendría que proporcionar servicios web para la base de datos principal, pero como la aplicación se usará en áreas donde no hay conectividad disponible (como bajo tierra) no puedo confiar en esto para todo uso. –

+0

No hay problema. Entiendo el problema relacionado con el servicio web y estoy conectado o no. Además, es trabajo de tu parte. Hay clases de conectividad disponibles que le brindan información sobre la red (ConnectionProfile.Connected) ubicada en el espacio de nombres Windows.Networking.Connectivity. Como otro usuario mencionado anteriormente, puede confiar en INDEXDB también (http://msdn.microsoft.com/library/hh673548.aspx). –

3

No hay SQL CE disponibles para Metro.

a) no será en absoluto bases de datos locales

esto no es cierto. SQLite debería poder ejecutarse en WinRT. Puede descargar el código here e incluir los dos archivos principales en su proyecto WinRT. Para compilar y aprobar la certificación, deberá asegurarse de estar utilizando las llamadas de reemplazo de WinRT correctas para las llamadas de Win32 que no son compatibles. La solución de terceros que Bob mencionó es un contenedor WinRT que no incluye cambios en SQLite para pasar la certificación.

(b) no hay bases de datos locales "servidor" (es decir, las instancias de tipo SQL Express)

parece poco probable que habrá SQL Express para el metro.

(c) Un código de base de datos local llamado "Jet Blue".

Si se refiere al motor de base de datos Microsoft Jet, sí que parece ser compatible, pero prefiero usar SQLite.

También recuerde si está utilizando HTML/JS tiene la opción de utilizar IndexedDB

0

lo que realmente necesita un "almacenar datos para una aplicación conectada ocasionalmente"? Esto me parece un poco exagerado. ¿Por qué no serializar los datos (varias opciones) para almacenarlos usted mismo?

+0

Jasper: si toma (por ejemplo) el escenario del vendedor ambulante que está tratando de tomar pedidos en lugares donde no hay conectividad disponible, entonces sí, creo que una base de datos es una mejor opción, especialmente cuando la lista de productos son grandes y desea poder proporcionar búsquedas, etc. Dicho esto, acepto (hasta cierto punto) que podría tener todo almacenado en objetos y serializarlos cuando la aplicación salga. –

4

Es posible que desee echar un vistazo a SQLite3-WinRT, un contenedor para SQLite que escribimos para utilizarlo en una aplicación de estilo Metro. Contiene una versión de SQLite que usa solo API compatible con WinRT y un componente WinRT para usarlo en aplicaciones C# y JavaScript.

Cuestiones relacionadas