Eingebettete Datenbank für .net, die von einem Netzwerk ausgeführt werden kann

Translate

Ich war (und bin) auf der Suche nach einer eingebetteten Datenbank für eine .net (c #) -Anwendung. Die Einschränkung: Die Anwendung (oder zumindest die Datenbank) wird auf einem Netzwerklaufwerk gespeichert, jedoch jeweils nur von 1 Benutzer verwendet.

Nun war meine erste IdeeSQL Server Compact Edition. Das ist wirklich schön integreated, aber es kann nicht von einem Netzwerk laufen.

Feuervogelscheint das gleiche Problem zu haben, aber die .net-Integration scheint nicht wirklich erstklassig zu sein und ist weitgehend undokumentiert.

Blackfish SQLsieht interessant aus, aber es gibt keine Testversion der .net-Version. Die Preisgestaltung ist auch in Ordnung.

Alle anderen Vorschläge für etwas, das gut mit .net funktioniertundläuft aus einem Netzwerk, ohne dass tatsächlich eine Serversoftware installiert werden muss?

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

SQLitekam mir beim Lesen Ihrer Frage in den Sinn und ich bin mir ziemlich sicher, dass es möglich ist, von einem Netzlaufwerk darauf zuzugreifenifSie halten sich an die Einschränkung von jeweils 1 Benutzer.

SQLite unter .NET - In 3 Minuten einsatzbereit

Quelle
Translate

Ich würde Advantage Database Server (www.advantagedatabase.com) empfehlen. Es ist eine ausgereifte eingebettete Datenbank mit hervorragender Unterstützung, auf die neben .NET auch viele andere Entwicklungssprachen zugreifen können. Die "lokale" Version ist kostenlos, wird in Ihrer Anwendung in Form einer DLL ausgeführt, erfordert keine Installation auf der Server- / Netzwerkfreigabe und unterstützt alle wichtigen DB-Funktionen. Sie können die DB- und / oder Anwendungsdateien alle im Netzwerk speichern. Es ist egal, wo sich die Daten befinden.

Haftungsausschluss: Ich bin Ingenieur in der ADS R & D-Gruppe. Ich verspreche, es rockt :)

Quelle
Translate

Es klingt so, als ob ADO / Access perfekt für Ihre Bedürfnisse ist. Es ist in den MS-Stack eingebrannt, gut gewürzt und für mehrere Benutzer geeignet.

Sie können eine Datenbank wie folgt programmgesteuert erstellen:

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

Sie können dann Standard-ADO.NET-Methoden verwenden, um mit der Datenbank zu interagieren.

Quelle
Translate

Sie können den eingebetteten Firebird verwenden, es ist nur eine DLL, die Sie mit Ihrer App versenden müssen.

Wenn Dinge nicht dokumentiert sind, stimmt das nicht wirklich. Der firebird .NET-Treiber implementiert die ADO-Schnittstellen. Wenn Sie also ADO kennen, können Sie mit Firebird arbeiten. Im Grunde genommen verwenden Sie anstelle von SQLConnection FBConnection und so weiter. Mein Rat ist jedoch, eine zu schreiben Datenzugriffsschicht und verwenden Sie nur Schnittstellen in Ihrem Code, etwa so:

using FirebirdSql.Data.FirebirdClient;

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

Dieses Beispiel ist sehr einfach, aber Sie werden nicht viel mehr brauchen.

Wir verwenden Firebird für alle Anwendungen ohne Probleme, Sie sollten es zumindest ausprobieren.

Quelle
Translate

AuscheckenVistaDB. Sie haben ein sehr gutes Produkt, die Serverversion (3.4) befindet sich in der Beta und steht kurz vor der Veröffentlichung.

Quelle
Translate

Ein bisschen spät zur Post hier .. UndVistaDBwird bereits erwähnt, aber ich wollte darauf hinweisen, dass VistaDB zu 100% verwaltet wird (da Ihr Beitrag mit .net getaggt wurde). Es kann von einem gemeinsam genutzten Netzwerklaufwerk ausgeführt werden und wird mit 1 MB xcopy bereitgestellt.

Da Sie SQL CE erwähnen, unterstützen wir auch T-SQL-Syntax und -Datentypen (tatsächlich mehr als SQL CE) und haben aktualisierbare Ansichten, TSQL-Prozesse und andere Dinge, die in SQL CE fehlen.

Quelle
Nathaniel Lee
Translate

Warum nicht verwendenSQL Server 2005 Express Edition?

Es hängt wirklich davon ab, was Sie unter "eingebettet" verstehen - aber Sie können SQLServer2005E mit Ihren Anwendungen neu verteilen, und der Benutzer muss nie wissen, dass es dort ist.

Einbetten von SQL Server Express in Anwendungen

Einbetten von SQL Server Express in benutzerdefinierte Anwendungen

Quelle
Translate

Ich bin verwirrt.

Sie fragen nach einer eingebetteten Datenbank, in der die Datenbank selbst auf dem Server gespeichert ist. Dies bedeutet, dass die Datendatei auf einer Netzwerkfreigabe gespeichert wird. Sie sagen dann, dass SQL Compact Edition nicht funktioniert ... außer wenn Sie sich dieses Dokument ansehen:

Word-Datei:
Auswahl zwischen SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition

Auf Seite 8 haben Sie ein schönes großes grünes Häkchen neben "Speicherung von Datendateien auf einer Netzwerkfreigabe".

Es scheint mir also, dass Ihr erster Gedanke der richtige war.

Quelle
Translate

Es gibt auchValentina. Ich bin auf dieses Produkt gestoßen, als ich an einem Real Basic-Projekt gearbeitet habe. Die RB-Version ist sehr gut.

Quelle
Translate

Haben Sie eine OODB in Betracht gezogen? Von den verschiedenen Open Source Alternativen empfehle ichdb4o(Entschuldigung für die Eigenwerbung :)), die entweder eingebettet oder im Client / Server-Modus ausgeführt werden kann.

Beste

Adriano

Quelle