【问题标题】:Graph database for .NET [closed].NET 的图形数据库 [关闭]
【发布时间】:2010-10-23 09:31:28
【问题描述】:

我一直在设计一个基于 .NET/Mono 框架的应用程序,它应该大量使用图中的最短路径理论,我想使用原生解决方案遍历图的节点,而不是实施难以维护且会严重影响性能的替代解决方案。

我找到了一个非常适合我的范围的应用程序:neo4j

不幸的是,这个应用程序纯粹是用 Java 代码编写的,由于两种架构之间的巨大差异,它不能移植到 .NET。

有没有人知道是否有任何 Neo4j 端口或 .NET 的类似解决方案?

【问题讨论】:

  • 您最终为此使用了什么以及效果如何?
  • 什么样的“巨大差异”阻止了你?我已经将许多算法从 Java 移植到 C#。有免费工具可以为这项任务做大量的机械工作。
  • 您可以轻松地托管 neo4j 数据库并在代码中使用它的 Cypher 语法来访问它以查询数据库。还有一个很好的 .NET 实现,可能在 09 年还没有:neo4j.org/develop/dotnet 与 JAVA 版本相比,.NET 中的查询非常漂亮
  • 没有什么比看着 SO 巨魔关闭一个问题并看到它收到大量的赞成票以及很多好的答案和反馈更让我高兴的了 :)

标签: c# java .net mono graph-databases


【解决方案1】:

我很惊讶没有人提到 QuickGraph,这是一个非常成熟且功能丰富的 NET 图形库。它具有多种图形表示和大量算法。

http://quickgraph.codeplex.com/

【讨论】:

    【解决方案2】:

    微软也在开发一个 - Trinity

    编辑 1:
    我最近才遇到这个repository。我还没有查看代码或使用它,但它有 .NET 接口:

    1. 蓝图
    2. 雷克斯特
    3. 管道

    这些实用程序可用于连接多个图形数据库,包括 neo4j 和 OrientDB。如需更多信息,请查看TinkerPop

    【讨论】:

    • 所有提到的项目都不是为.NET开发的,甚至已经从github上删除了。 Trinity 也是 Microsoft 内部项目。
    • 因为 Jeff 的评论而投反对票,如果你读了这篇文章,也请这样做,因为这不是一个有用的答案
    • 很抱歉github上的代码已经不存在了。我在 2011 年最初发帖时确实如此。同时请查看Sparksee
    • @JeffAtwood:我们有没有机会在短期内“在野外”(即 MS 之外)看到 Trinity?
    • Trinity 链接现在链接到 graphengine.io 并提到了一个 VS 扩展。
    【解决方案3】:

    这是一个相当古老的问题,但当我偶然发现它时,我想其他人也会。

    有一个.Net 和 Neo4j 的客户端 http://hg.readify.net/neo4jclient/wiki/Home

    和 Cypher 的 API http://mtranter.com/2013/09/21/cypher-net-a-neo4j-cypher-api/

    【讨论】:

      【解决方案4】:

      我很惊讶没有人提到Fallen-8,它就像 .NET 平台的“Neo4J”(也是开源的)。

      【讨论】:

      • 截至 2016 年 12 月,该项目的最新提交是在 2015 年 6 月 1 日完成的,所以我们可以说它暂时没有维护。
      【解决方案5】:

      BrightstarDB 来自 Codeplex。 BrightstarDB 是一个开源、快速、可嵌入和可扩展的 NoSQL 数据库,适用于 .NET 平台,具有代码优先数据模型生成功能。

      【讨论】:

        【解决方案6】:

        现在您可以免费下载和测试 Sparsity Technologies 于 2011 年 7 月发布的带有 .NET API 的 DEX 图数据库,网址为:

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

        以及如何使用 .NET 构建您的第一个图形数据库?在 Dzone 解释:

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

        Rgds

        【讨论】:

          【解决方案7】:

          DEX 高性能图形数据库具有专用的 .Net API,因此可能有助于将其与您的架构集成。可以下载here

          【讨论】:

            【解决方案8】:

            请在 www.sparsity-technologies.com 中查看新的 .net 版本的 DEX。

            【讨论】:

              【解决方案9】:

              binpress 上的Neo4Net 可能会有所帮助。

              这与测试人员在此处建议的 CodePlex 上的 Neo4Net 不同

              【讨论】:

              • binpress Neo4Net 是 Neo4j 的 dotnet 包装器
              【解决方案10】:

              他们将其命名为 CloudGraph,并将在 http://www.cloudgraph.com 发布。

              【讨论】:

              • 看起来这个还没有成功。 Beta 版目前定于 2012 年第一季度发布,因此目前推迟了一年半
              【解决方案11】:

              http://www.webling.com 的人也在开发一个原生 .NET 图形数据库来支持他们的 Web 应用程序。我认为它还没有公开发布,但它看起来很有动力。

              【讨论】:

                【解决方案12】:

                Neo4Net 也在开发中: http://neo4net.codeplex.com/

                【讨论】:

                  【解决方案13】:

                  自从 Neo4j 开始获得 REST support 以来,事情已经发生了一些变化,现在有两个不同的 .Net REST 客户端正在开发中:

                  【讨论】:

                    【解决方案14】:

                    今天早上在 Neo4j 邮件列表上找到了这个链接(我想,我似乎再也找不到它了):

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

                    它本质上是让您将 java 编译为 .net,然后您可以引用新创建的程序集。

                    还没有尝试过,但我很快就计划好了。

                    【讨论】:

                    • 作为替代方案,您可以使用 IKVM.NET 将 Java 字节码转换为 .NET
                    【解决方案15】:

                    目前唯一可用的是 Clojure、JR​​uby、Jython 和 Python 的绑定。不过,对于 Neo4j 的 JRuby REST API,http://github.com/andreasronge/neo4j/tree/2840b4c3d58e0250fdc31b63b11ac941ea944ba6/test/rest,可能是目前最好的选择。

                    【讨论】:

                    【解决方案16】:

                    【讨论】:

                    • 不幸的是,大小未知,因为它不是一个有限的组,但应该不断增加:节点的数量可能会浮动到数百万,并且在内存中具有这样的结构将拥有 TB 的 RAM可用,我们没有。
                    • db4o 怎么样?它还具有图数据库的所有属性。
                    • 我对这个解决方案很感兴趣,但是我没有找到任何关于 db4o 的这个功能的参考:你能指出我吗?
                    • 嗯,db4o 是面向对象的数据库,因此您可以通过以下引用遍历节点(对象)。它可以工作,但对于大量遍历来说可能不是很快,因为每个节点(对象)都必须反序列化到内存中,然后才能访问它。我认为 neo4j 更具可扩展性,因为它允许将工作负载分散到更多机器上。 db4o 没有。
                    猜你喜欢
                    • 2010-12-07
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-11-11
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-10-09
                    • 2010-10-11
                    • 1970-01-01
                    相关资源
                    最近更新 更多