Domanda

Stavo (e sto ancora) cercando un database incorporato da utilizzare in un'applicazione .net (c#).L'avvertenza:L'applicazione (o almeno il database) è archiviata su un'unità di rete, ma utilizzata solo da 1 utente alla volta.

Ora, la mia prima idea è stata Edizione SQL Server Compact.È davvero ben integrato, ma non può scappare da una rete.

Uccello di fuoco sembra avere lo stesso problema, ma l'integrazione .net sembra non essere proprio di prima classe ed è in gran parte non documentata.

SQL del pesce nero sembra interessante, ma non esiste una versione di prova della versione .net.Anche il prezzo è OK.

Eventuali altri suggerimenti su qualcosa che funzioni bene con .net E funziona su una rete senza la necessità di installare effettivamente un software server?

È stato utile?

Soluzione

SQLite mi è venuto in mente mentre leggevo la tua domanda e sono abbastanza sicuro che sia possibile accedervi da un'unità di rete Se ti mantieni al vincolo di 1 utente alla volta.

SQLite su .NET: diventa operativo in 3 minuti

Altri suggerimenti

Consiglierei Advantage Database Server (www.advantagedatabase.com).È un DB incorporato maturo con ottimo supporto e accessibile da molti linguaggi di sviluppo oltre a .NET.La versione "locale" è gratuita, viene eseguita all'interno dell'applicazione sotto forma di DLL, non richiede installazione sul server/condivisione di rete e supporta tutte le principali funzionalità DB.È possibile archiviare i file DB e/o applicativi tutti in rete;non importa dove siano i dati.

Disclaimer:Sono un ingegnere del gruppo R&D di ADS.Lo prometto, è fantastico :)

Sembra che ADO/Access sia perfetto per le tue esigenze.È integrato nello stack MS, ben stagionato e multiutente.

Puoi creare programmaticamente un DB in questo modo:

Dim catalog as New ADOX.Catalog
Catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\server\path\to\db.mdb")

È quindi possibile utilizzare metodi ADO.NET standard per interagire con il database.

Puoi usare l'embedded firebird, è solo una dll che dovrai spedire con la tua app.

Per quanto riguarda le cose non documentate, non è proprio vero, il driver .NET di firebird implementa le interfacce ADO, quindi se conosci ADO puoi lavorare con Firebird, sostanzialmente invece di SQLConnection utilizzerai FBConnection e così via, ma il mio consiglio è di scrivere un livello di accesso ai dati e utilizza solo le interfacce sul tuo codice, qualcosa del genere:

using FirebirdSql.Data.FirebirdClient;

public static IDbConnection MyConnection()
{
    FbConnection cn = new FbConnection("...");
    return cn;
}

Questo esempio è molto semplice, ma non ti servirà molto di più.

Usiamo Firebird per tutte le nostre applicazioni senza problemi, dovresti almeno provarlo.

Guardare VistaDB.Hanno un ottimo prodotto, la versione server (3.4) è in Beta ed è molto vicina al rilascio.

Un po' in ritardo per il post qui..E VistaDB è già stato menzionato, ma volevo sottolineare che VistaDB è gestito al 100% (visto che il tuo post era taggato .net).Può essere eseguito da un'unità di rete condivisa ed è distribuito xcopy da 1 MB.

Dato che hai menzionato SQL CE, supportiamo anche la sintassi e i tipi di dati T-SQL (in realtà più di SQL CE) e disponiamo di viste aggiornabili, procedure TSQL e altre cose mancanti in SQL CE.

Perché non usarlo Edizione SQL Server 2005 Express?

Dipende davvero da cosa intendi per "incorporato", ma puoi ridistribuire SQLServer2005E con le tue applicazioni e l'utente non dovrà mai sapere che è lì.

Incorporamento di SQL Server Express nelle applicazioni

Incorporamento di SQL Server Express in applicazioni personalizzate

Sono perplesso.

Stai chiedendo un database incorporato, in cui il database stesso è archiviato sul server.ciò si traduce nella memorizzazione del file di dati su una condivisione di rete.Quindi dici che SQL Compact Edition non funzionerà ...tranne che se si guarda questo documento:

Documento Word:
Scelta tra SQL Server 2005 Compact Edition e SQL Server 2005 Express Edition

A pagina 8 hai un bel segno di spunta verde accanto a "Archiviazione di file di dati su una condivisione di rete".

Quindi mi sembra che il tuo primo pensiero sia stato quello giusto.

C'è anche Valentina.Mi sono imbattuto in questo prodotto mentre stavo lavorando su un progetto Real Basic.La versione RB è molto buona.

Hai considerato un OODB?Dalle varie alternative open source che consiglio db4o (scusate l'autopromozione :)) che può essere eseguito sia incorporato che in modalità client/server.

Migliore

Adriano

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top