DbFS.NETDbFS.NET

What is DbFS.NET

DbFS.NET is a high-level abstraction and implementation, which supports files (with versions and branches) in MS SQL database. For many enterprise-level purposes we should keep everything in solid ACID storage and keep history for everything, including named BLOBs.

DbFS.NET is based on the BLOBs in MS SQL.

The approach is similar to version control systems, so with our solution we provide the "native" way for programmers to manage unstructured contents.

var dbfs = new DBFS();
using (var commit = dbfs.StartCommit("Text", "admin", "Branch")) {
  commit.AddFile(path, p => new
MemoryStream(Encoding.UTF8.GetBytes(content)));
  commit.Finish();
}
var dbfs = new DBFS();
var list = dbfs.GetFilesList("Branch", "/folder/to/path/we/need").Select(e => e.Path);

Why DbFS.NET

DbFS.NET is a complete solution you can use in your applications immediately with EntityFramework model, database scripts, unit tests and even a command-line tool supporting bulk uploads and downloads of the content from the storage.

Optionally, we have ASP.NET MVC module for file maintenance visually.

DbFS.NET supports all typical operations that you might need:

  • Branches (create, list, use, delete).
  • Transactions (commit sets).
  • Folders and Files.
  • Full history: every change refers to a specific commit, and every file change (including addition or deletion) is tracked as a history change.
  • Copy/Move file semantic without manual addition/removal.
  • Database transactions automatic support.
  • FILESTREAM support.
  • Big files support (GB).

DbFS.NET Download

We believe in freedom! This product is provided "AS IS" under the terms of the GNU GPL v3. Download:

  1. Setup, both 32 and 64 bit: DbFS.NET-1.0.zip
  2. Source code: DbFS.NET-1.0-sources.zip

In case you need it under another (for example, commercial) license, please contact us using the contact form. Commercial support is available as well.

How DbFS.NET works

DbFS.NET creates independent informational schema into your database and provides everything to work, including Files, Blobs, Branches, Commits, FileRevisions tables with all necessary indexes and stored procedures. .

DbFS.NET

The underlying implementation is supported from EntityFramework models; so you just need to use the DbFS.NET service layer to manage all your data. If you need to go deeper, we have repositories for all underlying objects.

The database schema scripts are very simple and contain a database structure and initial contents (one branch named "Start" without files inside).

When you're starting committing, all further operations are being collected into operations stack (with optimizations: if you add a file and then update it several times, the final data to commit will contain only one file with the real content, all intermediate changes won't be accepted). The actual data will be updated in the database while the commit is being finished by Finish() call; the EF' SaveChanges() method will be used automatically.

Feedback

We hope that you will enjoy using our product. Feel free to submit your feedback, comments or ideas to dbfs.net@scand.com.

Scand is providing a full range of custom software development services. We develop software for dozens of clients world-wide, and we would be glad to do this for you. You are welcome to submit your project/product request using our contact form. We will contact you shortly to clarify all requirements.