2009-02-21 16 views
5

Sto per scrivere un'applicazione Windows utilizzando .NET framework e C#. L'applicazione dovrà memorizzare i dati relazionali che verranno interrogati, uniti e elaborati.Opzioni database a utente singolo

In precedenza ho eseguito questa operazione utilizzando SQL Server, ma si tratta di un sovraccarico totale per l'applicazione che sto facendo ora.

Qual è il modo più semplice e semplice per archiviare i dati relazionali nella mia applicazione? Se fossi su un Mac, userei SQLite. Qual è l'equivalente .NET?

risposta

9

Se si utilizza VS 2008 e .NET 3.5, è possibile utilizzare SQL Server Compact Edition. Non è affatto un server, viene eseguito in-process con la tua app e fornisce un database SQL di base. I database stessi sono un unico file .sdf e vengono distribuiti con la tua app. Dato che fa parte del framework, significa anche che non ci sono ulteriori installazioni. In realtà, non è in realtà parte del framework, ma è facilmente ridistribuibile. Sto usando SQL Server CE per un progetto personale al momento sto lavorando, e si è rivelato eccezionale finora.

+1

Devo aggiungere: lo SQLCE è un POS una volta che inizi a usarlo. È limitato, presenta gravi errori quando è sotto carico elevato. Non voglio nemmeno elencare tutti gli errori interni che ho usato negli ultimi 4 mesi. È venuto attraverso questo thread alla ricerca di una soluzione ALTRI quindi SQLCE (3.5). Raccomando a chiunque abbia bisogno di un database leggero affidabile di NON usare CE. Ne vado a valutare alcuni ora .. ma sono solo stanco dei problemi con CE. Lo stavo usando come luogo temporaneo per contenere dati ad alto volume prima di passare ai luoghi di riposo finali ... Oggi - non posso sopportarlo. Solo il mio .02. – TravisWhidden

-1

Direi Microsoft Access. Hai bisogno di una licenza però ...

+1

Access (* .mdb) file vengono superata en deprecato. Non hai bisogno di una licenza per utilizzare il database MsJet sottostante. Solo per l'applicazione Access. –

+0

Henk, hai un riferimento da MS dove dicono che è deprecato e non dovrebbe più essere usato? –

+0

@divo, vedere http://msdn.microsoft.com/en-us/library/ms810810.aspx –

9

SQL Server Express è ciò che desideri. È un IIRC gratuito e può essere facilmente scalato in SQL Server completo quando richiesto.

+1

ed è incluso in un'installazione VS predefinita. – Richard

+3

E funziona sia con LINQ-to-SQL che con Entity Framework ;-p –

+0

Express è buono, ma non è equivalente a SQLite. –

5

Perché non riesci a utilizzare SQLite? Funziona su Windows. SQLite Quick start.

Anche vedi qui per ottenerlo a lavorare con .NET http://web.archive.org/web/20100208133236/http://www.mikeduncan.com/sqlite-on-dotnet-in-3-mins/

Così si potrebbe utilizzare SQLite se si voleva, ma forse come altri hanno fatto notare SQL Express è una scelta migliore, come si può passare a un server completo se ne hai bisogno in futuro. Anche se da quello che hai scritto non so se è probabile.

+0

C'è qualche vantaggio di SQL Lite su SQL Server Compact Edition? – Richard

+0

TAB ive ha giocato solo con SQLite una piccola quantità. Non sono esperto dei vantaggi/svantaggi, ma so che funziona con .NET – SecretDeveloper

+0

Il vantaggio di SQLite è che puoi sfruttare l'esperienza che lo utilizza in questo progetto nei futuri progetti Android e IPhone. –

0

Se non sqlserver express, è possibile voler conderson Microsoft SQL Server Desktop Engine (versione ridotta di sqlserver), che è gratuito nella maggior parte dei casi. o MySQL, che è anche gratuito. Preferisco mysql.

+0

MySQL ha alcuni problemi seri che non ha ancora essere risolto l'ultima volta che ho controllato. SQL Server Express (o MSDE) è infinitamente superiore. – Andrew

+1

MSDE è stato sostituito da SQL Server Express. –

+0

MySQL richiederà ancora l'installazione di un server e la tua sinistra in una situazione peggiore in diversi modi (strumenti, funzionalità mature) rispetto a se tu fossi andato con Express. Aggiungerebbe negativi senza alcun elemento positivo. – SecretDeveloper

3

Sqlite è sicuramente l'opzione migliore per il database incorporato per l'archiviazione delle applicazioni. È gratuito veloce e affidabile.

3

Sql Server Compact Edition (file * .sdf). Abbastanza piccolo per gli smartphone ma disponibile anche sull'intera piattaforma. La versione .net 2 si chiamava Sql Server Mobile.

Here è un confronto tra Compact ed Express.

1

È possibile utilizzare SQL Lite con .NET. Infatti, se sei disposto a mantenere il tuo codice in modo che possa tradurre in mono, che comprende la maggior parte 2.0 (3.5 ancora imminente), puoi eseguire il tuo codice sul Mac, se ti infili con SQL Lite:

http://mono-project.com/Main_Page

Dipende davvero da quanto è necessario il botto. SQL Express, che è stato menzionato più volte in questo thread, è SQL Server. Ha alcune restrizioni su SQL Server completo, ma è il motore completo di SQL Server, quindi non è una versione lite, a meno che non pensi che limitare un database a 4 GB lo renda leggero. Se hai bisogno di servizi più pesanti come alcuni rapporti, alcune code di messaggi (broker di servizi), quindi SQL Express 2008 è la tua creatura.

Per semplificare nel mondo MS, è possibile utilizzare SQL Compact.Come con SQL Lite, ha un ambito limitato, ma hai affermato che hai bisogno di un database leggero.

Se si ha dimestichezza con SQL Lite, non vedo alcun motivo per non dirigermi in quella direzione. Aggiungi una fabbrica sopra l'accesso al tuo database, nel caso in cui cambi idea. Quindi non dovrai rimuovere la tua intera app per cambiare database.

0

SQLite

Firebird

MySQL Embedded

1

Microsoft Jet Blue.

3

Non l'ho ancora usato, ma se stavo facendo un'applicazione Windows e avessi bisogno di funzionalità simili a questa avrei usato il database integrato di Windows già presente su ogni singola finestra di Windows.

http://www.codeplex.com/ManagedEsent

Problemi correlati