DbFS.NET
High-Level-Bibliothek zur Unterstützung von Dateien in MS SQL-Datenbanken
Beschreibung
DbFS.NET ist eine Abstraktion und Implementierung auf hoher Ebene, die Dateien (mit Versionen und Branchen) in der MS SQL-Datenbank unterstützt.
Für viele Zwecke auf Unternehmensebene sollten wir alles in einem soliden ACID-Speicher aufbewahren und den Verlauf für alles behalten, einschließlich BLOBs. DbFS.NET basiert auf den BLOBs in MS SQL. Der Ansatz ähnelt Versionskontrollsystemen, also bieten wir mit unserer Lösung Programmierern die „native“ Möglichkeit, unstrukturierte Inhalte zu verwalten.
1 var dbfs = new DBFS();
2 using (var commit = dbfs.StartCommit("Text", "admin", "Branch")) {
3 commit.AddFile(path, p => new MemoryStream(Encoding.UTF8.GetBytes(content)));
4 commit.Finish();
5 }
1 var dbfs = new DBFS();
2 var list = dbfs.GetFilesList("Branch", "/folder/to/path/we/need").Select(e => e.Path);
Warum DbFS.NET
DbFS.NET ist eine Komplettlösung, die Sie sofort in Ihren Anwendungen mit EntityFramework-Modell, Datenbankskripten, Komponententests und sogar einem Befehlszeilentool verwenden können, das Massen-Uploads und -Downloads der Inhalte aus dem Speicher unterstützt. Optional haben wir ein ASP.NET MVC-Modul für die visuelle Dateipflege.
Hauptfunktionen
DbFS.NET unterstützt alle typischen Operationen, die Sie benötigen können:
- Branchen (erstellen, auflisten, verwenden, löschen).
- Transaktionen (Commit-Sets).
- Ordner und Dateien.
- Vollständiger Verlauf: Jede Änderung bezieht sich auf einen bestimmten Commit, und jede Dateiänderung (einschließlich Hinzufügen oder Löschen) wird als Verlaufsänderung verfolgt.
- Semantik zum Kopieren/Verschieben von Dateien ohne manuelles Hinzufügen/Entfernen.
- Automatische Unterstützung von Datenbanktransaktionen.
- FILESTREAM-Unterstützung.
- Unterstützung für große Dateien (GB).
Funktionsweise von DbFS.NET
DbFS.NET erstellt ein unabhängiges Informationsschema in Ihrer Datenbank und stellt alles bereit, um zu funktionieren, einschließlich Dateien, Blobs, Branchen, Commits, FileRevisions-Tabellen mit allen erforderlichen Indizes und gespeicherten Prozeduren.
Die zugrunde liegende Implementierung wird von EntityFramework-Modellen unterstützt; Sie müssen also nur die DbFS.NET-Dienstschicht verwenden, um alle Ihre Daten zu verwalten. Wenn Sie tiefer gehen müssen, haben wir Repositories für alle zugrunde liegenden Objekte.
Die Datenbankschemaskripte sind sehr einfach und enthalten eine Datenbankstruktur und anfängliche Inhalte (ein Zweig namens „Start“ ohne Dateien darin).
Wenn Sie mit dem Festschreiben beginnen, werden alle weiteren Operationen im Operationsstapel gesammelt (mit Optimierungen: Wenn Sie eine Datei hinzufügen und sie dann mehrmals aktualisieren, enthalten die endgültigen Daten zum Festschreiben nur eine Datei mit dem tatsächlichen Inhalt, alle zwischenzeitlichen Änderungen werden nicht akzeptiert). Die aktuellen Daten werden in der Datenbank aktualisiert, während der Commit durch den Finish()-Aufruf beendet wird; die SaveChanges()-Methode von EF wird automatisch verwendet.