57

I've been designing an application, based on .NET/Mono framework, which should make an heavy use of the shortest-path in a graph theories and I would like to use a native solution to traverse the nodes of the graph, instead of implementing surrogate solutions which would be hardly maintainable and would massively affect performances.

I've found an application which would be perfect for my scope: neo4j.

Unfortunately, this application is purely written in Java code and it's not portable to .NET, because of the massive differences between the two architectures.

Is anyone out there knows if is it there any port of neo4j or a similar solution for .NET?

Niels van der Rest
  • 31,664
  • 16
  • 80
  • 86
Antonello
  • 1,326
  • 2
  • 16
  • 23
  • What did you end up using for this and how did it work out? – smartcaveman Jul 02 '12 at 17:40
  • 1
    What kind of "massive difference" have stopped you? I've ported many algorithms from Java to C#. Free tools exists which do great amount of mechanical work for this task. – BartoszKP Sep 20 '13 at 12:48
  • 1
    You can easily host a neo4j database and access it using it's Cypher syntax in your code to query the database. Also there is a nice implementation for .NET which might have not been available at '09: http://www.neo4j.org/develop/dotnet Also compared to the JAVA version, the queries in .NET are simply beautiful <3 – Highmastdon Dec 12 '13 at 00:13
  • 3
    nothing pleases me more than watching the SO trolls close a question and watch it receive plenty of upvotes, and lots of good answers and feedback :) – AaronHS Apr 13 '16 at 01:02

16 Answers16

7

I'm surprised no one has mentioned Fallen-8, which is like the "Neo4J" for the .NET platform (open source too).

knocte
  • 16,941
  • 11
  • 79
  • 125
6

BrightstarDB from Codeplex. BrightstarDB is an open source, fast, embeddable, and scalable NoSQL database for the .NET platform with code-first data model generation.

GMzo
  • 89
  • 1
  • 4
6

Since Neo4j started to get REST support things have evolved a bit, there's now two different .Net REST clients in the works:

nawroth
  • 4,321
  • 1
  • 24
  • 21
6

There is db4o database engine.

lubos hasko
  • 24,752
  • 10
  • 56
  • 61
  • unfortunately the size is unknown, since it's not a finite group, but it should be increased constantly: possibly the number of nodes could float to some millions and having such structure in memory would be having TB of RAM available, which we don't. – Antonello May 03 '09 at 01:41
  • what about db4o? it has also all properties of graph database. – lubos hasko May 03 '09 at 03:59
  • I'd be interested in the solution, but I haven't found any reference to the this functionality of db4o: can you point me out? – Antonello May 03 '09 at 11:37
  • 2
    Well, db4o is object-oriented database so you can traverse the nodes (objects) by following references. It would work but it might not be very fast for huge amount of traversing as every node (object) has to be deserialized into memory before you can access it. I think neo4j is more scalable as it allows to spread workload on more machines. db4o doesn't. – lubos hasko May 03 '09 at 13:21
5

Microsoft is also working on one - Trinity

Edit 1:
I just recently came across this repository. I haven't looked at the code or used it yet, but it has .NET interfaces for:

  1. BluePrints
  2. Rexster
  3. Pipes

These utilities can be used to connect with multiple Graph Databases including neo4j and OrientDB. For more information also look at TinkerPop.

Pranav Shah
  • 3,233
  • 3
  • 30
  • 47
  • 13
    All the projects mentioned are not developed for .NET and were even deleted from github. Trinity is Microsoft internal project as well. – Jeff Atwood May 29 '12 at 06:39
  • 1
    downvoting because of Jeff's comment, if you read this, do it as well, as it's not a useful answer – knocte Sep 20 '13 at 10:52
  • 1
    I am sorry the code on github does not exist anymore. It did when I initially posted in 2011. In the mean time look at [Sparksee](http://www.sparsity-technologies.com/). – Pranav Shah Feb 26 '14 at 23:03
  • @JeffAtwood: Any chance that we see Trinity "in the wild" (ie. outside of MS) in near time? – JensG Jan 17 '15 at 11:07
  • 1
    the Trinity link now links to http://www.graphengine.io/ and mentions a VS extension. – AlignedDev Sep 14 '15 at 14:36
4

DEX high performance graph database has a dedicated .Net API so it may be of help to integrate it with your architecture. You can downlad it here

damaris
  • 49
  • 1
4

I'm surprised no one has mentioned QuickGraph, a very mature and feature packed graph library for NET. It has multiple graph representations and plenty of algorithms.

http://quickgraph.codeplex.com/

robertfriberg
  • 161
  • 10
4

Now you can download and test for free the DEX graph database with .NET API released on July 2011 by Sparsity Technologies, at:

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

and How to build your 1st graph database with .NET ? Explained at Dzone:

http://architects.dzone.com/articles/how-build-your-first-net-graph

Rgds

Pere
  • 134
  • 4
3

Neo4Net on binpress may help.

this is not the same as Neo4Net on CodePlex suggested here by tester

Lior Kogan
  • 19,919
  • 6
  • 53
  • 85
2

The only thing available right now are bindings for Clojure, JRuby, Jython and Python. However, probably the JRuby REST API to Neo4j, http://github.com/andreasronge/neo4j/tree/2840b4c3d58e0250fdc31b63b11ac941ea944ba6/test/rest, would be the best bet for now.

Peter Neubauer
  • 1,700
  • 1
  • 13
  • 11
  • 1
    There's now two different .Net REST clients [being developed](http://wiki.neo4j.org/content/Main_Page#Language_and_framework_bindings) for the [Neo4j REST server](http://wiki.neo4j.org/content/Getting_Started_REST). – nawroth Jul 06 '10 at 07:24
1

This is a fairly old question, but as I stumbled upon it I suppose others will too.

There is a client for .Net and Neo4j http://hg.readify.net/neo4jclient/wiki/Home

and an API for Cypher http://mtranter.com/2013/09/21/cypher-net-a-neo4j-cypher-api/

tekiegirl
  • 1,229
  • 5
  • 17
  • 30
1

Found this link on the Neo4j mailing list this morning (I think, I can't seem to find it again):

http://www.thewebsemantic.com/2010/06/03/neo4j-on-net-3-5/

It essentially let's you compile java to .net and then you can just reference the newly created assembly.

Haven't tried it yet but I am planning on it soon.

Patrick Lee Scott
  • 8,217
  • 3
  • 36
  • 42
0

Neo4Net is also under development: http://neo4net.codeplex.com/

tester
  • 1
0

The guys at http://www.webling.com are also working on a native .NET graph database to power their Web Apps. I don't think it's released publicly yet, but it looks like it's got momentum.

dbadmin
  • 9
  • 1
0

They have named it CloudGraph and it will be launched at http://www.cloudgraph.com.

dbadmin
  • 17
  • 1
  • 3
    looks like this one didn't make it (yet). The beta-release is currently scheduled for Q1 2012, so its a year and half slip currently – BozoJoe Jul 17 '13 at 00:03
0

Please, look at the new .net version of DEX in www.sparsity-technologies.com .

Josep
  • 9
  • 1