What .NET-compatible graph database solution(s) have a proven track record?
Asked Answered
O

6

31

I am looking for a generic graph database solution that has existing .NET-compatible infrastructure and a proven track record.

I've found links to several options on Google and SO, but not a lot of information on existing implementations and usages in real-world applications.

I've also considered using a hybrid between a document DB (like RavenDB or MongoDB) and a dedicated Triple Store or RDBMS (like SQL), and augmenting the data store in order to support the functionality I want. However, this is probably quite a bit of work, and my hope is that someone else has done it already.

What I've looked at:

  • Trinity - This one is made by Microsoft and the literature makes it sound great, but I couldn't find a download link, and the Release page says "The Trinity package is currently for intranet access only.".

  • db4o - This one is an Object-Oriented DB with native support for both .NET and Java. It seems to be marketed as a graph DB but I'm not sure if the 'graph' structure/operations are implicit or explicit (or if it offers more than any other document db).

  • TinkerPop - This project looks like exactly what I'm looking for, but the github sources seem to be only in Java. This slideshare from graph-database.org discusses .NET versions, but I haven't been able to find them.

  • CloudGraph - This sounds great, but appears to not exist.

  • GiraffeDB - "GiraffeDB is a powerful graph database system for the .NET framework 4.0, capable of representing complex semantics in an efficient and accessible way" is "currently undergoing planning".

  • AllegroGraph 4.7 - This appears to be pretty mature (supporting SPARQL and Prolog with a number of Client Interfaces), but is closed source. I'm obviously going to be skeptical of a closed-source project that I haven't heard anything about.

There are also a few Java projects that look pretty promising (HyperGraphDB and Neo4j, but I haven't seen any existing .NET integration of either. I'm not completely opposed to using a Java solution and doing that legwork myself, but once again, I'd prefer a proven solution that saves me the most time.

Oxen answered 2/7, 2012 at 18:29 Comment(0)
C
2

there are several capable .NET client libs for www.neo4j.org, see http://docs.neo4j.org/chunked/snapshot/tutorials-rest.html that let you access it from inside .NET. You might want to ask more questions on groups.google.com/group/neo4j/

/peter

Curt answered 3/7, 2012 at 16:42 Comment(0)
M
14

Trying to implement a graph database in Mongo is a rabbit hole that's been tried before.

See this message from the TinkerPop user group:

Microsoft's Trinity graph is an internal project not available for download:

Neo4j Server (http://neo4j.org) paired with Romiko and Tatham's .NET client (http://hg.readify.net/neo4jclient/wiki/Home) is a popular combination.

Neo4j scales to more than 32 billion nodes (http://blog.neo4j.org/2011/03/neo4j-13-abisko-lampa-m04-size-really.html), and it has an active user group (https://groups.google.com/forum/?fromgroups#!forum/neo4j).

And Neo4j Server is very similar to TinkerPop's Rexster.

In fact Peter Neubauer is one of the co-founders of both Neo4j and TinkerPop, and both projects have very similar APIs. So if TinkerPop is exactly what you want, except for the Java, then go with Neo4j Server and one of its .NET clients:

You can even run TinkerPop's Gremlin on Neo4j Server via its built-in Gremlin Plugin:

UPDATE: There is also Blueprints.NET - https://github.com/Vanaheimr/Blueprints.NET

Motorbike answered 7/7, 2012 at 0:9 Comment(1)
Do you have references to any projects that have successfully used this stack?Oxen
N
3

New/recent/unmentioned discovery: VelocityDB which is a native .net implementation!

Numb answered 20/8, 2014 at 17:36 Comment(0)
C
2

there are several capable .NET client libs for www.neo4j.org, see http://docs.neo4j.org/chunked/snapshot/tutorials-rest.html that let you access it from inside .NET. You might want to ask more questions on groups.google.com/group/neo4j/

/peter

Curt answered 3/7, 2012 at 16:42 Comment(0)
C
2

Trinity is available for public now- http://www.graphengine.io/

Cowpox answered 18/5, 2015 at 19:30 Comment(0)
C
2

2017 update: Cosmos DB now provides a good hybrid graph database solution in Azure. Cosmos DB used to be called Document DB until the Build conference in April 2017, when Microsoft announced graph and other capabilities. So you can use it as a classic document database, and you can now store your data as a graph and query it using TinkerPop/Gremlin. From .NET, you can query it using the Microsoft.Azure.Graphs API.

If you need to run outside of Azure, then you'll need to look at other options like Neo4j.

Caz answered 15/6, 2017 at 15:25 Comment(0)
H
0

Another option is DEX from Sparsity Technologies, that provides a native .NET API:

http://www.sparsity-technologies.com/dex

that you can download from:

http://www.sparsity-technologies.com/dex_downloads

Hydrogenous answered 7/2, 2013 at 8:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.