18

Sto cercando di trovare un'API in WinRT che consenta di creare un database locale che possa essere utilizzato per archiviare dati per un'applicazione connessa occasionalmente. Sto cercando qualcosa come SQL Compact Edition.Archiviazione di database locale per applicazioni WinRT/Metro

ho visto diversi messaggi su varie schede che indicano che non vi sia

  • (a) vi sarà alcun database locali di sorta
  • (b) non locali "server" basi di dati (tipo le istanze SQL Express)
  • (c) Un codice di database locale denominato "Jet Blue".

Qualcuno ha una risposta definitiva a questo? Non voglio iniziare questa strada se è bloccata.

+0

Nessuna soluzione di dbase locale è attualmente disponibile. Sarebbe sciocco indovinare se quella strada è bloccata, non è ancora nemmeno nella beta. –

+0

Hans; questo è un commento equo Mi rendo conto che non abbiamo nemmeno raggiunto la beta, speravo solo che qualcuno avrebbe potuto trovare qualche altra documentazione che mi era sfuggita. Grazie. –

+1

Esiste una soluzione di database locale perfettamente valida denominata Jet Blue ... – fabspro

risposta

0

Ci sono soluzioni di terze parti che escono o sono già fuori. CodePlex ha uno - http://sqlwinrt.codeplex.com/

L'altra opzione, che richiede un po 'di lavoro da parte dell'utente, è quella di effettuare il proxy dell'accesso al database tramite un servizio web.

+0

Grazie per questo. Sapevo che avrei dovuto fornire servizi Web per il database principale, ma poiché l'applicazione verrà utilizzata in aree in cui non è disponibile la connettività (ad esempio sottoterra) non posso fare affidamento su questo per tutti gli usi. –

+0

Nessun problema. Comprendo il problema relativo al servizio web e alla connessione o meno. Inoltre è un lavoro da parte tua. Sono disponibili classi di connettività che forniscono informazioni sulla rete (ConnectionProfile.Connected) che si trova sotto lo spazio dei nomi Windows.Networking.Connectivity. Come un altro utente menzionato sopra, puoi fare affidamento anche su INDEXDB (http://msdn.microsoft.com/library/hh673548.aspx). –

3

Non c'è CE SQL disponibile per Metro.

a) vi sarà alcun database locali di sorta

questo non è vero. SQLite dovrebbe essere in grado di funzionare su WinRT. È possibile scaricare il codice here e includere i due file principali nel progetto WinRT. Per compilare e superare la certificazione, è necessario assicurarsi di utilizzare le chiamate sostitutive WinRT corrette per le chiamate Win32 non supportate. La soluzione di terze parti menzionata da Bob è un wrapper WinRT che non include le modifiche a SQLite per superare la certificazione.

(b) non "server" database locali (tipo istanze cioè SQL Express)

sembra improbabile ci sarà SQL Express per la metropolitana.

(c) Un codice di database locale denominato "Jet Blue".

Se si intende il motore di database Microsoft Jet, sì sembra essere supportato ma preferirei utilizzare SQLite.

ricordate anche se si utilizza HTML/JS si ha la possibilità di utilizzare IndexedDB

0

Avete veramente bisogno di un "memorizzare i dati per un'applicazione a volte collegata"? Questo suona un po 'eccessivo per me. Perché non serializzare i dati (varie opzioni) per l'archiviazione da soli?

+0

Jasper: Se si prende (ad esempio) lo scenario del commesso viaggiatore che sta tentando di prendere ordini in luoghi in cui non è disponibile la connettività allora sì, penso che un database sia un'opzione migliore, specialmente quando si tratta dell'elenco dei prodotti sono grandi e si vuole essere in grado di fornire ricerche ecc Detto questo, accetto (a un punto) che si poteva avere tutto memorizzato in oggetti e puntate loro alla chiusura dell'applicazione. –

4

Si potrebbe dare un'occhiata a SQLite3-WinRT, un wrapper per SQLite che abbiamo scritto per usarlo in un'applicazione Metro-style. Contiene una versione di SQLite che utilizza solo API compatibili con WinRT e un componente WinRT per utilizzarlo in applicazioni C# e JavaScript.