database incorporato per .net
-
22-08-2019 - |
Domanda
Ho bisogno di un database incorporato per una delle nostre applicazioni .NET.
La banca dati dovrebbe supportare SQL (A differenza di Berkley).
Qualcuno può suggerire le opzioni.
Soluzione
Le principali opzioni penso sono:
- SQLite
- SQL Server Compact (LINQ Support)
- VistaDB (LINQ Support)
- SharpHSQL
- embedded Firebird
- SQL Blackfish
Altri suggerimenti
Volevo solo a suonare alla fine qui con ulteriori informazioni sul VistaDB.
La nostra sintassi SQL è molto vicino con la sintassi SQL Server, e includiamo TSQL e CLR Stored Procs.
Esegue in corso con l'applicazione, e hai solo per distribuire 1 di montaggio per 32 e 64 bit (codice gestito al 100%). Non si può fare questo con SQL CE dal momento che si dispone di diverse assemblee non gestiti che devono essere impiegate.
È possibile incorporare VistaDB con la tua applicazione e anche ILMerge esso, modificare il nome del database, ecc per nascondere completamente il motore dai vostri utenti (alcune persone sono vero e proprio grande su questo).
E sì, può anche funzionare su Mono dal momento che è al 100% di codice gestito. Ci sono ancora alcuni problemi (comprese le macchine non-Intel Mono).
L'informativa completa - io sono il proprietario della società
SQL Server Compact Edition è la scelta intelligente per NET Compact Framework. Ho trovato Arcane Codice per essere un sito molto utile per imparare SSCE. Lui è un MVP per SQL Server e si concentra su CE.
Date un'occhiata a edizione di SQL Server Compact. Viene eseguito in-process, è un unico binario e memorizza i propri dati in un unico file, e supporta la concorrenza (a differenza di molti altri DB embedded, tra cui SQLite). Più probabilmente già in possesso se si sta utilizzando Visual Studio. Infine, è libero di utilizzare e ridistribuire.
Mi piace molto FirebirdSQL me (anche citato da CMS). E 'possibile eseguire embedded con le DLL di Windows di, IIRC c'è anche un binario miscelato con il motore principale integrato per questo. Funziona bene con ActiveRecord, e NHibernate pure. La maggior parte dei tipi .NET mappa facilmente.
Un vantaggio rispetto ad altre opzioni, è il passaggio a una modalità di RDBMS è solo una questione di cambiare il querystring per utilizzare un server, invece della versione embedded. È inoltre possibile eseguire con esso in Linux (purtroppo non in modalità incorporata), se avete voglia di indirizzare Mono in futuro.