2009-11-01 20 views
10

Sto costruendo l'applicazione WPF per gestire il mio tempo. Mi piacerebbe risparmiare tempo per il tempo di lavoro sul progetto per un giorno di calendario.Qual è il modo migliore per salvare i dati localmente in un'applicazione WPF?

Quindi la mia domanda è qual è la scelta migliore su come salvare i dati? Ho pensato di poter utilizzare un file XML, un file di database Access o forse una proprietà. Mi piacerebbe salvare i dati localmente, quindi nessuna azione SQL Server in questo caso. :)

Cosa ne pensi, quale strada da percorrere?

risposta

5

Mi piacerebbe prendere SQLite nel suo formato puro o in formato .NET (facendo una ricerca su Google per "sqlite .net" vi forniremo alcune opzioni). È super-portatile e, a mio parere, più facile da configurare e distribuire rispetto a SQL Server compatto.

L'importante è assicurarsi di non essere troppo strettamente collegati al meccanismo di persistenza del codice, quindi in futuro si potrebbe facilmente sostituire qualsiasi strategia di archiviazione desiderata.

+0

Thx per il suggerimento! Testerò SQLite, penso che sia quello che sto cercando. – Richard

6

So che non hai detto niente di SQL Server, ma sto leggendo questo per indicare che non vuoi "server" e vuoi memorizzare i tuoi dati sul client. Suppongo anche che probabilmente non ti dispiacerebbe una certa gestibilità dei tuoi dati. Sai, cose come il backup. E le transazioni sono sempre carine, quindi i tuoi dati possono rimanere coerenti. Quindi, mentre potresti usare XML (esci dalla mente tutti i pensieri di Access), finiresti col rotolare la tua persistenza, quando questo è un problema risolto.

Quindi, si prega di controllare l'edizione SQL Server Compact gratuita. È leggero, progettato per funzionare su un dispositivo desktop o mobile ed è facilmente installabile se la tua app ha mai bisogno di farlo. E tutti i framework di persistenza comuni lo supportano. E ho già detto che è gratuito (come in costi nulla)?

+0

Il mio progetto sandbox personale è più o meno la stessa cosa. Ho scelto di usare SqlCE come metodo per imparare anche Linq2Sql. Se dovessi farlo di nuovo, potrei scegliere di usare SqlCE w/ADO o (se pratico, non ho ancora fatto la ricerca) qualcosa online con Amazon, google o servizio cloud MS. –

+2

Perché non utilizzare SQLite? Si integra molto bene con tutte le cose. NET e risiede come un singolo file su un filesystem. –

+0

Voto anche per SQLite. Esiste un provider di Entity Framework per esso, btw. –

4

Suggerirei di selezionare l'origine dati più semplice possibile e di disaccoppiarla in modo appropriato in modo da poter inserire una nuova origine dati diversa in un momento successivo quando si individua ciò che è appropriato per i propri scopi. A tal fine, potresti trovare qualcosa come XML o anche solo testo in chiaro per essere la cosa più semplice che possa funzionare.

Dopo aver determinato le caratteristiche necessarie dall'origine dati, in base all'utilizzo effettivo, scegliere il backing store appropriato.

Non penso sia fondamentale prendere questa decisione in anticipo perché si tratta di un progetto personale, non commerciale.

1

Un approccio semplice e morto che ho utilizzato in passato è l'idea del "file xml". Basta creare un oggetto che descriva i dati che ti interessano e quindi serializzarli su xml.

Greg è assolutamente corretto quando dice assicurati che la tua origine dati sia disaccoppiata correttamente in modo da poterla spegnere se le tue esigenze cambiano.

Problemi correlati