Funzionalità del database con l'app WPF:SQLite, SQL CE, altro?[Chiuso]
-
09-06-2019 - |
Domanda
Voglio estendere un'applicazione WPF con funzionalità di database.Quale motore di database suggeriresti e perché?SQLite, SQL CE, altro?
Soluzione
A seconda dell'uso delle applicazioni, Consiglierei di utilizzare SQL Lite perché non richiede l'installazione di nessun altro software (SQL CE o Express, ecc.di solito richiederebbe un'installazione separata).
Un elenco dei vantaggi più importanti di SQL Lite dal collegamento del provider in fondo a questo post:
SQLite è una piccola libreria C che implementa un motore di database SQL autonomo, incorporato, a zero configurazione.Le caratteristiche includono:
- Zero configurazione - Nessuna configurazione o amministrazione necessaria.
- Implementa la maggior parte di SQL92.(Funzionalità non supportate)
- Un database completo viene archiviato in un singolo file disco.
- I file di database possono essere condivisi liberamente tra macchine con diversi ordini di byte.
- Supporta database fino a 2 terabyte (2^41 byte) di dimensioni.
- Piccolo ingombro del codice:Meno di 30K righe di codice C, spazio di codice inferiore a 250kb (GCC su I486)
- Più veloce dei popolari motori di database client/server per le operazioni più comuni.
- API semplice e facile da usare.
- Autonomo:Nessuna dipendenza esterna.
- Le fonti sono di pubblico dominio.Utilizzare per qualsiasi scopo.
Dato che stai utilizzando WPF, posso presumere che tu stia utilizzando almeno .NET 3.0.Consiglierei quindi di passare a .NET 3.5 SP1 (stesse dimensioni di .NET 3.5 ma include numerosi miglioramenti delle prestazioni) che include LINQ.
Quando si utilizza SQLite, tuttavia, è consigliabile utilizzare il seguente provider SQLite che dovrebbe fornire il supporto LINQ: Un provider ADO.NET open source per il motore di database SQLite
Altri suggerimenti
Ho utilizzato SQL Compact Edition con la mia app WPF e sono soddisfatto della mia decisione.Tutto funziona (poiché WPF e SQLCE sono entrambi MS funzionano bene insieme) e l'installazione del runtime è abbastanza piccola e abbastanza fluida per le mie esigenze.Ho creato e modificato il database tramite visual studio.
Giusto per esprimere un'opinione diversa, abbiamo utilizzato SQL Compact Edition nell'ultimo anno e ne siamo rimasti generalmente soddisfatti.La configurazione è semplice e si comporta in modo molto simile a un normale database MS SQL.Mancano alcune cose, come trigger e procedure memorizzate, ma SQL 3.5 CE ha praticamente tutto il resto di cui avremmo bisogno.Sono circa 2 Mb di file .dll da installare.Offre crittografia del database, transazioni e supporta il progettista di set di dati tipizzati di VS (la versione 3.1 ha avuto alcuni problemi, ma CE 3.5 è fantastica!).
Le DLL SQL CE possono essere incluse nella propria applicazione e non richiedono un'installazione separata.Ma MS fornisce un pacchetto di installazione predefinito, se non vuoi conoscere l'installazione ... ecc.
Inoltre, SQL CE supporta la distribuzione privata.
SQLite è davvero un bel prodotto anche se mi mancano le funzionalità di PostgreSQL.Esistono altri database, soprattutto non SQL, che potresti prendere in considerazione come Berkeley DB.
/Allan
Sono d'accordo sul fatto che SQLite sia la strada da percorrere.Subsonic 2.1 ora include anche il supporto SQLite.