Antworten:
14/06/2016 Yep ... bekommt immer noch positive Stimmen: - /
17/03/2014 Ich erhalte immer noch Upvotes dafür. Beachten Sie das Datum, an dem dies ursprünglich beantwortet wurde. Obwohl die drei wichtigsten aufgelisteten Elemente noch vollständig realisierbar sind, wird die Liste tendenziell veraltet sein. Es sind weitere Datenbanktechnologien verfügbar, die nicht aufgeführt sind.
Sie haben einige sofort erkennbare und kostenlose Optionen:
Der SQL Server Compact-Download wird mit dem ADO.NET-Anbieter geliefert, auf den Sie im Code verweisen müssen. Der SQLite-Download hat es möglicherweise nicht. Hier ist ein Link:
http://sqlite.phxsoftware.com/
Alle drei verwenden SQL, allerdings mit einigen Einschränkungen / Macken. Management Studio funktioniert mit Compact und LocalDB, während Sie mit SQLite ein anderes UI-Tool wie SQLite Administrator benötigen:
http://sqliteadmin.orbmu2k.de/
Es gibt NoSQL-Alternativen wie:
Persönlich würde ich die Verwendung von MS Access angesichts anderer kostenloser Optionen vermeiden. Mit LocalDB, Compact oder SQLite können Sie nichts falsch machen. Es sind alles schöne kleine Datenbanken, die relativ schnell in wenig RAM laufen - persönliche Präferenz für die religiösen Aspekte, wenn man ein Microsoft-Produkt mag, nehme ich an :-)
Ich verwende Sterling für die Windows Phone-Programmierung, da es für die Verwendung von isoliertem Speicher ausgelegt ist. Ich habe nur Artikel über RavenDb gesehen, aber ich kann Ihnen sagen, dass es sich um ein JSON-basiertes Dokumentenspeicherframework handelt.
Um die Situation nicht zu verwechseln (mit SQLite, SQL Server Express LocalDB oder SQL Server Compact Edition), aber es gibt andere eingebettete / lokale Datenbanken, einige sind relational, andere objektorientiert:
Nicht alle davon sind kostenlos. Die SQL / LINQ / In-Proc-Unterstützung ist in allen Bereichen unterschiedlich. Diese Liste dient nur der Neugier.
Es gibt jetzt auch Karvonite , jedoch ist der Link zur Code-Galerie defekt. Wenn es wieder live ist, werde ich dieses für die WP7-Entwicklung untersuchen.
Ich würde SQLite empfehlen . Wir verwenden es für fast alle Apps, die wir dort entwickeln, wo ich arbeite.
Es ist klein und kompakt. Es muss sich eine DLL im App-Verzeichnis befinden, aber Sie müssen keine andere Software wie Access oder SQL Server installieren. Wie von danielkza unten angegeben, ist "SQLite gemeinfrei, sodass Sie sich überhaupt keine Gedanken über die Lizenzierung machen müssen." Das kann wirklich einen großen Unterschied machen.
Sie können System.Data.SQLite oder csharp-sqlite verwenden , um in einer C # -App mit denselben Methoden wie in SQL oder OleDB darauf zuzugreifen.
Sie benötigen außerdem eine Anwendung zum Bearbeiten / Verwalten der Datenbank. Das beste ist meiner Meinung nach SQLite Studio . Hier noch ein paar mehr:
SQLite Admin
SQLite 2009 Pro (unten auf der Seite)
Update - 25.07.11 - Weitere SQLite-Apps (Frage hier zu SO)
Weitere Informationen zu SQLite:
SQLite zu Wikipedia
Unternehmen, die SQLite verwenden
Benutzerdefinierte Funktionen: Wenn Sie in den SQLite-Kernfunktionen suchen und keine sehen, die Ihnen gefällt, können Sie außerdem Ihre eigenen benutzerdefinierten Funktionen erstellen. Hier einige Beispiele:
Aus dem SO
Anoter-Beispiel
Firebird Embedded kann eine gute Wahl sein
Die eingebettete Version ist eine erstaunliche Variante des Servers. Es ist ein voll funktionsfähiger Firebird-Server, der in nur wenigen Dateien enthalten ist. Die Bereitstellung ist sehr einfach, da der Server nicht installiert werden muss.
Es gibt einige sehr gute Dot-Net- Treiber
SQL Server Compact, wenn Sie die offizielle Microsoft-Lösung verwenden möchten. Dies hat den Vorteil, dass Sie die Replikation mit SQL Server verwenden können, wenn Sie so etwas benötigen.
SQLite, wenn Sie etwas sehr einfaches, kleines und freies wollen. Dies ist, was Android für seine internen Datenbanken verwendet, so dass es sehr gut unterstützt wird und es sehr gute .NET-Bindungen gibt.
Ein klarer Vorteil von SQLite ist, dass es plattformübergreifend ist. Wenn Sie also Ihre Anwendung auf Mono.NET portieren möchten, müssen Sie keine Änderungen an der Datenbankimplementierung vornehmen.
Ich mag MS Access für diese Lösung nicht, aber viele Leute haben es in ihre Antwort aufgenommen. Es ist aufgrund des proprietären Formats und der Plattformabhängigkeit begrenzt. Es hat jedoch seine Vorteile. Sie können Daten einfach bearbeiten, wenn Sie über eine Kopie von MS Access verfügen. Sie können Abfragen grafisch erstellen und Makros erstellen. Sie können es problemlos in den Rest von MS Office integrieren.
Von all diesen wäre SQLite meine Empfehlung, da es so kompakt, gut dokumentiert und von einer wachsenden Armee von Entwicklerkollegen unabhängig von der Plattform unterstützt wird.
BEARBEITEN
Mir wurde klar, dass es eine andere Option gibt, die jeder hier vergessen hat zu erwähnen
Solange Sie keine relationalen Tabellen benötigen, können Sie die über ADO.NET gelesene CSV-Datei als Dataset verwenden. (Eher ein Lulz-Vorschlag als alles andere, aber in einigen Fällen geeignet und erfordert keine zusätzlichen Bibliotheken für eine MS-Bereitstellung.
Wenn Sie ein Projekt mit .NET 4.0.2 oder höher erstellen und Unterstützung für eingebettete Datenbanken wünschen, ziehen Sie SQL Server Express LocalDB in Betracht .
Es ist eine relativ neue Erweiterung der Express-Familie, die einen geringeren Installationsaufwand und einen geringeren Verwaltungsaufwand (im Vergleich zu anderen Express-Editionen) bietet, jedoch die Programmierbarkeitsaspekte von SQL Server beibehält. Das heißt, im Gegensatz zu Compact Edition erfordert LocalDB nicht die Installation eines separaten ADO.NET-Anbieters, um mit SQL zu kommunizieren.
Weitere Informationen finden Sie im Folgenden:
SQL Express v LocalDB v SQL Compact Edition (MSDN-Blogs)
SQL LocalDB vs SQL Server CE ( Stapelüberlauf )
Was ist mit http://en.wikipedia.org/wiki/NoSQL_(RDBMS) ?
insbesondere MongoDB für .Net
Sie könnten nutzen Sql Server Express Edition
als ihre freie und ist ebenso leistungsfähig , bis und es sei denn , Sie wollen Funktionalität wie mirroring
usw. Werfen Sie einen Blick auf diese .
Ich habe db4o mit Erfolg verwendet.
Dateibasierte, große Community, einfach zu bedienen.
Lizenzdetails
Kostenlose allgemeine öffentliche Lizenz db4o ist standardmäßig unter der GPL lizenziert.
Die GPL-Lizenz ist ideal, wenn Sie db4o intern verwenden oder Ihre eigene abgeleitete Arbeit als freie Software auch unter der GPL entwickeln und vertreiben möchten.
Kommerzielle Lizenz Eine kommerzielle Lizenz ist erforderlich, wenn Sie db4o in ein kommerzielles Nicht-GPL-Produkt einbetten möchten. Kommerzielle Lizenznehmer erhalten Zugang zu Premium-Services und -Support.
Eine Alternative, die nicht erwähnt wurde, wenn Sie keine kostenlose Datenbank benötigen, ist VistaDB. Es ist alles verwalteter Code, bietet unzählige Funktionen für eine eingebettete Datenbank und bietet eine ziemlich gute Leistung. Eine ziemlich gute Brücke zwischen SQL CE und SQL Server Express, da die meisten Ihrer gespeicherten VistaDB-Prozeduren ohne Änderungen in SQL Server Express ausgeführt werden. Ich war auch zu diesem Zeitpunkt ziemlich zufrieden mit dem Kundenservice. Ich habe es bei der Arbeit benutzt. Keine Dienste zu starten. Eine leere Datenbank ist ungefähr 1 MB groß und die DLL ist auch ziemlich leicht. Hat ADO.NET-Anbieter und solche Dinge. Mir hat es gut gefallen.
SQL Server Express oder MS Access