neo4j on .net 3.5

June 3rd, 2010 § 5

I recently ran across a project called ja.net that provides support for compilation of Java to .Net.  Since neo4j has such a dependency clean kernel, I decided to try ja.net as a way of making neo4j usefull under .Net. (no slight against the RESTful interfaces, but perhaps you’d like to run neo4j on .net as an embedded graph DB under .Net). Here’s my VS2010 with the neo4j.dll referenced, and the object browser showing the EmbeddedGraphDB class as a first class .Net object:

Step #1 Download stuff

Download the neo4j kernel source and expand into a working directory. http://neo4j.org/download

Download the geronimo JTA spec src jar and expand under neo4j’s src/main/java directory. 

Install Ja.net from http://www.janetdev.org/

Step #2 Compile neo4j kernel using Ja.Net

C:\neo4j-kernel-1.0\src>c:\opt\java\Ja.NET\bin\javac -bam:neo4j.dll main

You can compile first then using the “bam” command to create the dll, or do it in one pass as I’ve done here.  You’ll see warnings, most look like compiler warnings, one may be of concern.  For now let’s just experiment.  No garauntees, promises, etc. 

Step #3 Create a C# console app, reference your newly created .dll, and give neo4j on .net a run.  Here’s my sample code:

class Program
{
static void Main(string[] args)
{
var graphDb = new EmbeddedGraphDatabase("graphdb");
var tx = graphDb.beginTx();
try
{
var firstNode = graphDb.createNode();
var secondNode = graphDb.createNode();
var relationship = firstNode.createRelationshipTo(
secondNode, DynamicRelationshipType.withName("KNOWS"));
firstNode.setProperty("message", "Hello, ");
secondNode.setProperty("message", "world!");
relationship.setProperty("message", "brave Neo4j ");
var i = graphDb.getAllNodes().iterator();
while (i.hasNext()) {
    var n = ((Node)i.next());
    if (n.hasProperty("message"))
    Console.WriteLine(n.getProperty("message"));
}
Console.WriteLine("bye");
tx.success();
}
finally
{
   tx.finish();
   graphDb.shutdown();
}
Console.ReadLine();
}

Simple Blog Using jo4neo and Stripes

January 3rd, 2010 § 0

neoblog is a simple application I built to test drive jo4neo.  You are welcome to browse the code here for details not covered in this post. It demonstrates the feasibility of utilizing view tier objects to persist graph relationships.

neoblog with 3 posts

neoblog with 3 posts

» Read the rest of this entry «

User/Roles Pattern in jo4neo

December 18th, 2009 § 0

Roles and Users is a classic domain model well suited to representation as a directed graph. The neo4j team has provided us with a good summary of how to implement this pattern using neo4j here . Utilizing jo4neo we can also solve this problem via a combination of the neo graph database and simple java objects.  The code and maven build for this example are posted here.  I encourage you to run the example and browse the code.  We’ll need two domain classes, » Read the rest of this entry «

jo4neo: POJO object binding 4 neo4j 4 you!

December 9th, 2009 § 1

I have applied some of what I learned while writing jenabean towards a graph database called neo4j. It is strictly a simple tool for persisting java objects to a graph, and retrieving them back. I was able to get in a few features like auto-indexing. This is version 0.1…a very early release.

http://code.google.com/p/jo4neo/

Where Am I?

You are currently browsing the java category at The Web Semantic.