Home » Questions » Computers [ Ask a new question ]

Embedded Database for .net that can run off a network

Embedded Database for .net that can run off a network

"I was (and still am) looking for an embedded database to be used in a .net (c#) application. The caveat: The Application (or at least the database) is stored on a Network drive, but only used by 1 user at a time.

Now, my first idea was SQL Server Compact edition. That is really nicely integreated, but it can not run off a network.

Firebird seems to have the same issue, but the .net Integration seems to be not really first-class and is largely undocumented.

Blackfish SQL looks interesting, but there is no trial of the .net Version. Pricing is also OK.

Any other suggestions of something that works well with .net and runs off a network without the need of actually installing a server software?"

Asked by: Guest | Views: 40
Total answers/comments: 4
Guest [Entry]

"This question is now ancient, and a lot has changed. For my specific purposes, LiteDB is the option of choice. It's open source and has a GitHub Repository.

Apart from that, SQLite is basically the industry standard for embedded databases. There are attempts to port the code to .NET, but the prime use case involves a native library (e.g., the sqlite Nuget package) and/or a .NET P/Invoke wrapper like Microsoft.Data.SQLite."
Guest [Entry]

"I'd recommend Advantage Database Server (www.advantagedatabase.com). It's a mature embedded DB with great support and accessible from many development languages in addition to .NET. The ""local"" version is free, runs within your application in the form of a DLL, requires no installation on the server/network share, and supports all major DB features. You can store the DB and/or application files all on the network; it doesn't care where the data is.

Disclaimer: I am an engineer in the ADS R&D group. I promise, it rocks :)"
Guest [Entry]

"It sounds like ADO/Access is perfect for your needs. It's baked into the MS stack, well seasoned, and multi-user.

You can programatically create a DB like so:

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

You can then use standard ADO.NET methods to interact with the database."
Guest [Entry]

"You can use the firebird embeded, it's just a dll that you will need to ship with you app.

About things being undocumented, that's not really true, the firebird .NET driver implements the ADO Interfaces, so if you know ADO you can work with Firebird, basically instead of SQLConnection you will use FBConnection and so on, but my advice is to write a data access layer and use just interfaces on your code, something like this:

using FirebirdSql.Data.FirebirdClient;

public static IDbConnection MyConnection()
{
FbConnection cn = new FbConnection(""..."");
return cn;
}

This example is very simple, but you will not need much more than that.

We use firebird for our all application without any problems, you should at least try it out."