2009-05-03 21 views
53

He estado diseñando una aplicación, basada en .NET/Mono framework, que debería hacer un uso intensivo de la ruta más corta en un gráfico teorías y me gustaría usar una solución nativa atravesar los nodos del gráfico, en lugar de implementar soluciones sustitutivas que serían difícilmente mantenibles y afectarían enormemente el rendimiento.Base de datos de gráficos para .NET

He encontrado una aplicación que sería perfecta para mi alcance: neo4j.

Desafortunadamente, esta aplicación está escrita exclusivamente en código Java y no es portátil para .NET, debido a las enormes diferencias entre las dos arquitecturas.

¿Hay alguien por ahí que sepa si hay algún puerto de neo4j o una solución similar para .NET?

+0

Lo que acabaste utilizando para ello y cómo se trabaja? – smartcaveman

+0

¿Qué tipo de "diferencia masiva" te ha detenido? He portado muchos algoritmos de Java a C#. Existen herramientas gratuitas que hacen gran cantidad de trabajo mecánico para esta tarea. – BartoszKP

+0

Puede alojar fácilmente una base de datos neo4j y acceder a ella usando su sintaxis Cypher en su código para consultar la base de datos. También hay una buena implementación para .NET que podría no haber estado disponible en '09: http://www.neo4j.org/develop/dotnet También se compara con la versión de JAVA, las consultas en.NET son simplemente bellas <3 – Highmastdon

Respuesta

7

Microsoft también está trabajando en uno - Trinity

Edición 1:
Hace poco encontré este repository. No he visto el código ni lo he usado todavía, pero sí.interfaces de NET para:

  1. Blueprints
  2. Rexster
  3. Tubos

Estas utilidades se pueden utilizar para conectar con múltiples bases de datos de gráficos, incluyendo Neo4j y OrientDB. Para obtener más información, también consulte TinkerPop.

+12

Todos los proyectos mencionados no están desarrollados para .NET e incluso se eliminaron de github. Trinity es el proyecto interno de Microsoft también. –

+0

downvoting por el comentario de Jeff, si lee esto, hágalo también, ya que no es una respuesta útil – knocte

+1

Lamento que el código en github ya no exista. Lo hice cuando inicialmente publiqué en 2011. Mientras tanto, mire [Sparksee] (http://www.sparsity-technologies.com/). –

6
+0

lamentablemente el tamaño es desconocido, ya que no es un grupo finito, pero debería aumentarse constantemente: posiblemente la cantidad de nodos podría flotar a algunos millones y tener esa estructura en la memoria tendría TB de RAM disponible, cosa que no sucede. – Antonello

+0

¿qué hay de db4o? también tiene todas las propiedades de la base de datos de gráficos. –

+0

Estaría interesado en la solución, pero no he encontrado ninguna referencia a esta funcionalidad de db4o: ¿me puede indicar? – Antonello

2

Lo único que está disponible ahora son enlaces para Clojure, JRuby, Jython y Python. Sin embargo, probablemente la API de JRuby REST para Neo4j, http://github.com/andreasronge/neo4j/tree/2840b4c3d58e0250fdc31b63b11ac941ea944ba6/test/rest, sería la mejor opción por el momento.

+1

Ahora hay dos clientes .Net REST [en desarrollo] (http://wiki.neo4j.org/content/Main_Page#Language_and_framework_bindings) para el [servidor REST Neo4j] (http://wiki.neo4j.org/content/ Getting_Started_REST). – nawroth

1

encontrado este enlace en la lista de correo Neo4j esta mañana (creo, me parece que no puede encontrar otra vez):

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

En esencia, te permite compilar Java para .NET y, a continuación, solo puede hacer referencia al conjunto recién creado.

No lo he intentado todavía pero lo planeo pronto.

+1

Como alternativa podría usar IKVM.NET para traducir el código Byte de Java a .NET – Gamlor

0

Los chicos en http://www.webling.com también están trabajando en una base de datos grafica nativa de .NET para alimentar sus aplicaciones web. No creo que se haya lanzado públicamente aún, pero parece que ha cobrado impulso.

0

Lo han llamado CloudGraph y se lanzará al http://www.cloudgraph.com.

+3

parece que este no lo hizo (todavía). La versión beta está actualmente programada para el primer trimestre de 2012, por lo que es un año y medio, actualmente – BozoJoe

3

Neo4Net en binpress puede ayudar.

esto no es lo mismo que Neo4Net en CodePlex sugiere aquí por probador

+0

El binpress Neo4Net es un contenedor de puntos alrededor de Neo4j – Chriseyre2000

0

Por favor, observe la nueva versión .NET de DEX en www.sparsity-technologies.com.

4

DEX tiene una API .Net dedicado por lo que puede ser de ayuda para integrarlo con su arquitectura. Puede desestimarlo here

5

BrightstarDB de Codeplex. BrightstarDB es una base de datos NoSQL de código abierto, rápida, integrable y escalable para la plataforma .NET con generación de modelos de datos en primer lugar.

7

Me sorprende que nadie haya mencionado Fallen-8, que es como el "Neo4J" para la plataforma .NET (también de código abierto).

+0

A partir de diciembre de 2016, el último compromiso del proyecto se realizó el 1 de junio de 2015, por lo que podemos decir que no se mantiene por el momento. –

2

Me sorprende que nadie ha mencionado QuickGraph, una biblioteca gráfica muy maduro y con multitud de funciones para NET . Tiene múltiples representaciones de gráficos y muchos algoritmos.

http://quickgraph.codeplex.com/

Cuestiones relacionadas