2009-03-26 15 views
16

Ho bisogno di un database incorporato per una delle nostre applicazioni .net.Database incorporato per .net

Questo database deve supportare sql (A differenza di Berkley).

Qualcuno può suggerire qualsiasi opzione.

risposta

4

Dai un'occhiata a SQL Server Compact Edition. Esegue in-proc, è un singolo binario e memorizza i suoi dati in un singolo file e supporta la concorrenza (a differenza di molti altri DB incorporati, incluso SQLite). Inoltre probabilmente lo hai già se stai usando Visual Studio. Infine, è gratuito da usare e ridistribuire.

+0

Bella integrazione con gli strumenti. Qual è il requisito della licenza? costo? – Cheeso

+1

Purtroppo non è un singolo binario. Ha diverse DLL native, che creano anche il problema di x86 vs x64. –

+1

Hai ragione Mauricio. Per il codice gestito, sembra che siano necessari solo due file binari, sqlceme35.dll e System.Data.SqlServerCe.dll. Per il codice nativo, i servizi di sincronizzazione, ecc. Ci sono altri contenitori. –

5

SQL Server Compact Edition è la scelta intelligente per .NET framework compatto. Ho trovato Arcane Code per essere un sito molto utile per l'apprendimento di SSCE. È un MVP per SQL Server e si concentra su CE.

+1

È possibile creare solo tabelle e indici in CE –

2

Mi piace molto lo FirebirdSQL (citato anche da CMS). Può essere eseguito con i dll di Windows, iirc c'è anche un binario misto con il driver core integrato per questo. Funziona bene con ActiveRecord e anche NHibernate. La maggior parte dei tipi .Net si mappa facilmente.

Un vantaggio rispetto ad altre opzioni, il passaggio a una modalità RDBMS è solo una questione di modifica della querystring per utilizzare un server, anziché la versione integrata. Puoi anche usarlo in Linux (sfortunatamente non in modalità embedded), se hai qualche desiderio di puntare a Mono in futuro.

12

Volevo solo suonare in ritardo qui con ulteriori informazioni su VistaDB.

La nostra sintassi SQL è molto simile alla sintassi di SQL Server e includiamo TSQL e Processi memorizzati in CLR.

Esegue il processo con l'applicazione e è necessario distribuire solo 1 assieme per 32 e 64 bit (codice gestito al 100%). Non è possibile farlo con SQL CE poiché si hanno diversi assembly non gestiti che devono essere distribuiti.

Puoi incorporare VistaDB con la tua app e persino ILMERGE, cambiare il nome del database, ecc. Per nascondere completamente il motore ai tuoi utenti (alcune persone sono davvero grandi su questo).

E sì, può anche essere eseguito su Mono poiché è un codice gestito al 100%. Ci sono ancora alcuni problemi (incluse le macchine Mono non Intel).

divulgazione completa - io sono il proprietario della società