[ https://issues.apache.org/jira/browse/TINKERPOP-1552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16031155#comment-16031155 ]
Jorge Bay commented on TINKERPOP-1552: -------------------------------------- I think most of the code base in the 3 projects are part of the GLV: The traversal and traversal strategy interfaces currently under {{Gremlin.Net.Process}}; The classes {{Vertex}}, {{Edge}}, {{Path}}, ... and the serialization implementation under {{Gremlin.Net.Structure}}; {{GraphTraversal}} and {{GraphTraversalSource}} implementations, along with the enums and predicates under {{Gremlin.CSharp.Process}}. The only portion that is not reusable if someone ones to deliver a vendor-specific is the concrete implementation of the {{IRemoteConnection}} interface, {{DriverRemoteConnection}}. >From the multi-language support within .NET, I think all the classes and enums >under {{Gremlin.CSharp}} are reusable across all languages. From the C# user >perspective, I find hard to understand the distinction between {{Gremlin.Net}} >and {{Gremlin.CSharp}} namespaces and 3 different assemblies. I propose using a single C# root namespace, where {{Process}}, {{Structure}} and {{Driver}} are child namespaces. In the unlikely event of needing language specific extensions for another .NET language (GLV is functional so it should feel natural for F# and VisualBasic.NET can reuse the same members), we can nest the language identifier within the root namespace, like {{RootNamespace.Process.FSharp}}. It can be just {{Gremlin}} or {{Gremlin.DotNet}} for example. In the case of the nuget package, its mandatory that we include {{IRemoteConnection}} interface, along with the rest of the members inside process and structure in the GLV package. We could make a different nuget package for the driver implementation but that's optional. In the case of Python,the GLV and the reference driver implementation in the pypy package. IMO it would be nice to have a single assembly per nuget package, but that's a personal preference for a project this size. > C# Gremlin Language Variant > --------------------------- > > Key: TINKERPOP-1552 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1552 > Project: TinkerPop > Issue Type: Improvement > Components: language-variant > Affects Versions: 3.2.3 > Reporter: Jorge Bay > Assignee: stephen mallette > > It would be nice to have a C# GLV that runs under .NET Framework 4.5+ and > .NET Core. > The maven build could use the Exec Maven Plugin to exec .NET Core's [dotnet > test|https://www.microsoft.com/net/core#macos] command. > Some requirements, from the mailing list (edited): > {quote} > 1. The GLV should keep in line with class/method names of the java API > where possible to ensure consistency of feel across languages. > 2. There needs to be adequate tests (we're still discussing the approach to > testing GLVs and i think that needs to be tackled sooner than later as more > GLVs start to come in). Those tests should produce xunit style output > unless there is some good reason not to. > 3. There needs to be adequate documentation (e.g. Reference docs) > 4. The build/deploy process needs to be bound to maven which might be one of > the trickier bits to deal with. > {quote} -- This message was sent by Atlassian JIRA (v6.3.15#6346)