Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
Der SQL Server kommt als mächtiges Installationspaket, und selbst die schlanke Variante LocalDb muss erst einmal installiert werden, bevor die Anwendung auf dem Zielsystem auf Daten zugreifen kann. Schlank und ohne eigene Installation – das wären gute Eigenschaften für ein Datenbanksystem für den Einsatz in einfachen Desktop-Anwendungen. Die Lösung lautet SQLite: Diese Programmbibliothek können Sie einfach zum Projekt hinzufügen und es mit der Anwendung auf dem Zielrechner installieren. Und das Beste: SQLite unterstützt sogar das Entity Framework.
SQLite – wozu
Unser primärer Anlass, einmal nach Alternativen zum SQL Server oder zu LocalDb zu suchen, sind die Beispielprojekte zu diesem Magazin. Wenn diese eine Datenbank enthalten, sind immer der eine oder andere Schritt nötig, bevor Sie die Beispiele auf Ihrem Rechner ausprobieren können. Und das ist selbst der Fall, wenn bereits eines der Microsoft-Datenbanksysteme auf ihrem Rechner installiert ist. Welche Voraussetzungen sollte das gesuchte Datenbanksystem also haben Am wichtigsten ist natürlich, dass wir damit weiterhin die Techniken vorstellen können, die Sie auch bei Verwendung von Microsoft-Datenbanken nutzen – also Beispielsweise der Einsatz des Entity Frameworks als Schnittstelle zwischen Anwendung und Datenbank. Der zweite Punkt ist, dass eine möglichst einfache Installation der Programmdateien des Datenbanksystems möglich ist oder am besten gar keine. Stattdessen sollte das Datenbanksystem am besten direkt im Projektordner an den Zielrechner übergeben werden und bereits fertig konfiguriert sein.
Wir hätten uns natürlich auch mit einer Access-Datenbank als Backend zufrieden gegeben, denn Access dürfte bei der Zielgruppe dieses Magazins auf dem Rechner installiert sein. Allerdings erfüllt eine Access-Datei gleich zwei Punkte nicht: Erstens ist für die Verwendung immer noch eine Access-Installation auf dem Zielrechner nötig. Dies ist zwar aufgrund der Runtime-Version, die kostenlos weitergegeben werden darf, möglich, aber besser ist natürlich ein Datenbanksystem, das komplett ohne Installation auskommt. Zweitens können wir zwar per ADO.NET auf Access-Datenbanken zugreifen, aber spätestens, wenn das Entity Framework zum Einsatz kommen soll (und das Entity Framework wird uns in diesem Magazin noch eine Weile begleiten), wird es eng – es gibt nämlich keine Implementierung, die den Zugriff auf die Tabellen einer Access-Datenbank erlaubt. Darüber sind wir dann auf SQLite gestoßen. Diese Datenbank kommt im Wesentlichen in Form einer Programmbibliothek, die außerdem auch noch nur wenige hundert Kilobyte groß ist. Und es hat eine weitere Gemeinsamkeit mit Access: Die eigentlichen Datenbanken kommen in Form einer einzigen Datei, in diesem Fall mit der Dateiendung .db.
SQLite ist nicht von ungefähr so kompakt: In der Regel wird es etwa in Apps für Mobiltelefone eingesetzt. Die Kompaktheit hat natürlich auch ihren Preis: SQLite enthält längst nicht alle Funktionen, die ein “großes” Datenbanksystem wie etwa SQL Server bietet. Für den Einsatz in unseren Beispieldatenbanken reichen die Funktionen aber allemal aus. In den folgenden Abschnitten erfahren Sie verschiedene Dinge über SQLite:
- mit welchem Tool Sie SQLite-Datenbanken erstellen und bearbeiten können,
- wie Sie SQL Server-Datenbanken nach SQLite migrieren,
- wie Sie SQLite in .NET-Projekten einsetzen und ein Entity Data Model auf Basis einer SQLite-Datenbank erstellen und
- wie Sie eine Anwendung mit SQLite-Datenbank weitergeben können.
SQLite-Tools
Bevor wir überhaupt mit unserer Anwendung auf eine SQLite-Datenbank zugreifen können, sollten wir uns eine solche erstellen. Dazu gibt es verschiedene Tools. Wir haben den DB Browser for SQLite verwendet, den Sie unter folgendem Link finden:
http://sqlitebrowser.org/
Hier laden Sie einfach den Download unter dem Link Windows.exe in der 32bit- oder 64bit-Version herunter und installieren die Anwendung.
Nach der Installation können Sie das Tool direkt starten. Hier bietet sich auch direkt die Schaltfläche Neue Datenbank zum Erstellen einer neuen Datenbank an. Wir wollen aber nicht tiefer in den Umgang mit diesem Tool einsteigen, sondern dieses nur kurz vorstellen – also Notlösung, wenn Sie einmal in den Entwurf einer Datenbank eingreifen müssen. Wir wollen aber dennoch kurz einmal einen Blick in eine echte SQLite-Datenbank werfen. Eine solche findet sich auch recht schnell, und zwar unter dem folgenden Link:
http://www.sqlitetutorial.net/sqlite-sample-database/
Nach dem Download finden Sie eine Datei namens chinook.db im Zielverzeichnis. Öffnen Sie diese nun mit dem Tool DB Browser for SQLite, füllt sich dieses recht schnell mit bekannt aussehenden Elementen wie Tabellen, Feldern und Felddatentypen (siehe Bild 1).
Bild 1: Fenster des SQLite-Tools DB Browser for SQLite
Vom SQL Server zu SQLite
Sie können diese Tabelle als Ausgangspunkt für eigene Experimente nutzen, aber wir wollen gern mit der bereits in weiteren Beispielen verwendeten Datenbank Bestellverwaltung weiter arbeiten. Wie aber machen wir aus einer SQL Server-Datenbank eine SQLite-Datenbank Auch hierfür gibt es ein Tool, das Sie unter diesem Link finden:
https://www.codeproject.com/articles/26932/convert-sql-server-db-to-sqlite-db
Hier müssen Sie sich allerdings anmelden, um dann die gewünschte Version, hier wohl die Binary, herunterzuladen. Sie erhalten hier eine .zip-Datei mit einem Verzeichnis namens SqlConverter_v1_20, das Sie einfach auf Ihre Festplatte kopieren. Starten Sie die Anwendung, die als Converter.exe in diesem Verzeichnis steckt, erscheint das Fenster aus Bild 2.