Frage

Ich war (und bin immer noch) auf der Suche nach einer eingebetteten Datenbank zur Verwendung in einer .net (c#)-Anwendung.Der Vorbehalt:Die Anwendung (oder zumindest die Datenbank) wird auf einem Netzlaufwerk gespeichert, aber jeweils nur von einem Benutzer verwendet.

Nun, meine erste Idee war SQL Server Compact-Edition.Das ist wirklich schön integriert, kann aber nicht über ein Netzwerk laufen.

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

Blackfish SQL sieht interessant aus, aber es gibt keine Testversion der .net-Version.Auch die Preise sind ok.

Irgendwelche anderen Vorschläge für etwas, das gut mit .net funktioniert Und läuft über ein Netzwerk, ohne dass tatsächlich eine Serversoftware installiert werden muss?

War es hilfreich?

Lösung

SQLite ist mir beim Lesen Ihrer Frage in den Sinn gekommen, und ich bin mir ziemlich sicher, dass es möglich ist, von einem Netzlaufwerk aus darauf zuzugreifen Wenn Sie beschränken sich auf jeweils einen Benutzer.

SQLite auf .NET – In 3 Minuten einsatzbereit

Andere Tipps

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

Haftungsausschluss:Ich bin Ingenieur in der ADS-Forschungs- und Entwicklungsgruppe.Ich verspreche, es rockt :)

Es hört sich so an, als wäre ADO/Access perfekt für Ihre Anforderungen.Es ist in den MS-Stack integriert, gut gewürzt und für mehrere Benutzer geeignet.

Sie können eine Datenbank programmgesteuert wie folgt erstellen:

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

Anschließend können Sie Standardmethoden von ADO.NET verwenden, um mit der Datenbank zu interagieren.

Sie können den eingebetteten Firebird verwenden. Dabei handelt es sich lediglich um eine DLL, die Sie mit Ihrer App ausliefern müssen.

Dass Dinge nicht dokumentiert sind, das stimmt nicht wirklich, der Firebird .NET-Treiber implementiert die ADO-Schnittstellen. Wenn Sie also ADO kennen, können Sie mit Firebird arbeiten, im Grunde werden Sie anstelle von SQLConnection FBConnection usw. verwenden, aber mein Rat ist, eine zu schreiben Erstellen Sie eine 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 unsere gesamte Anwendung problemlos, Sie sollten es zumindest ausprobieren.

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

Etwas spät für den Beitrag hier..Und VistaDB wird 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 freigegebenen Netzwerklaufwerk ausgeführt werden und ist mit 1 MB xcopy ausgestattet.

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

Warum nicht verwenden? SQL Server 2005 Express-Edition?

Es hängt wirklich davon ab, was Sie unter „eingebettet“ verstehen – aber Sie können SQLServer2005E mit Ihren Anwendungen weitergeben, und der Benutzer muss nie wissen, dass es da ist.

Einbetten von SQL Server Express in Anwendungen

Einbetten von SQL Server Express in benutzerdefinierte Anwendungen

Ich bin verwirrt.

Sie fragen nach einer eingebetteten Datenbank, bei 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 funktionieren wird ...außer dass, wenn man sich dieses Dokument ansieht:

Word-Datei:
Wählen Sie 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 „Datendateispeicherung auf einer Netzwerkfreigabe“.

Daher scheint es mir, dass Ihr erster Gedanke der richtige war.

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

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

Am besten

Adriano

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top