Johan,

Thank you very much for the useful information and clarification: I
will dig out and come back on this later, when I will have clearer
view.

Concerning the "java.nio" issue: in .NET there's not a counter part
for the package. In fact, there's just the definition of the System.IO
namespace, which provides implementations similar to java.io. The
concepts before NIO are similar to the Remoting features of .NET, but
the architecture is really different and not always is easily
mappable.
As said in my previous email, the architectural differences between
the two technologies, specially after the latest developments (.NET,
and C# in particular, were designed to be similar to Java and helping
the transition of developers from one to another and reducing the
learning curve, but latest technologies branched out of common
aspects): *personally* I don't think that section would it be
portable.

Cheers.
Antonello


On Sun, May 3, 2009 at 2:10 PM, Johan Svensson <jo...@neotechnology.com> wrote:
> Hi Antonello,
>
> Have a look at the neo-android component, dependency on
> javax.transaction has been dropped there
> (https://svn.neo4j.org/components/neo-android/trunk/) by just writing
> empty interfaces for all the javax.transaction stuff needed.
>
> javax.transaction / JTA and X/Open are just interfaces and
> specifications. There is no concrete implementation or magic performed
> by them so removing the dependency replacing with your own empty
> interfaces should work. See org.neo4j.impl.transaction and
> org.neo4j.impl.transaction.xaframework packages for the concrete
> implementation of JTA, XA resources, 2PC and so on.
>
> If it is possible to port for example the org.neo4j.impl.nioneo.store
> package to .NET there should be no problem to port the transaction and
> xaframework packages to .NET (they both use java.nio to manipulate
> files).
>
> Regards,
> -Johan
>
> On Sun, May 3, 2009 at 1:29 PM, Antonello Provenzano
> <antone...@deveel.com> wrote:
>> Anders,
>>
>> IKVM doesn't support the javax.transactions package.
>>
>> In fact, the main difference pointed out by neo4j between java and
>> .NET is the lack of support for X/Open XA resource management: this is
>> possible only by calling an "interop" OLEDB component, which is
>> non-native .NET, which should be implemented in C++ and deployed to
>> the host machine separately. Naturally, OLE development is forbidden
>> in Linux machines, which makes things tougher.
>>
>> While under .NET framework (since the 2.0 specifications there's the
>> inclusion of System.Transactions) it is provided a mechanism for
>> transactions, architecturally different from the X/Open specifications
>> (implemented with quite fidelity by javax.transactions), it is not
>> provided a mechanism to handle MTS or two-phase commits.
>>
>> Since in neo4j one of the main aspects it's the XAResource
>> implementation for persisting and retrieving data, the "port" is also
>> conceptually difficult.
>>
>>
>> Cheers.
>> Antonello
>>
>>
>> On Sun, May 3, 2009 at 9:59 AM, Anders Nawroth <and...@neotechnology.com> 
>> wrote:
>>> Hi!
>>>
>>> Have you tried using IKVM.NET?
>>> http://www.ikvm.net/
>>>
>>>
>>> /anders
>>>
>>> Antonello Provenzano skrev:
>>>> Emil,
>>>>
>>>> I'm a good expert on .NET architecture and technology, having
>>>> contributed for years to the development of Mono and being a
>>>> recognized developer and architect in this domain.
>>>>
>>>> Last week I tried to implement a port version of neo4j for .NET,
>>>> applying the same concepts you implemented, not always plain porting
>>>> the code: Java and C# themselves are pretty different seen from
>>>> inside, and when you put in the middle also some architectural issues
>>>> like transactions and such (eg. the NIO extension), the things become
>>>> much less straight-forward.
>>>>
>>>> Although at the beginning my plan was to port in short time neo4j to
>>>> .NET, once I analyzed the full source code I've been aware of the
>>>> impossibility to accomplish this goal in small time: in fact, I
>>>> decided to start the implemenation of a brand new project based on the
>>>> concepts, rather than the actual code, of neo4j. This, as you can
>>>> guess, requires additional work for the architectural design,
>>>> prototyping and implementation, plus testing.
>>>>
>>>> In the short-medium term then, the best way will be to use a REST
>>>> solution, as you suggested (but I've already considered, in case of
>>>> not existence of native .NET solutions), which is not optimal by the
>>>> way, although viable for the bootstrap of the project.
>>>>
>>>> I hope we will keep in touch anyway, in case i would need your and
>>>> Neo's team assistance during the implementation of the .NET solution.
>>>>
>>>> Cheers!
>>>> Antonello
>>>>
>>>>
>>>>
>>>> On Sun, May 3, 2009 at 4:11 AM, Emil Eifrem <e...@neotechnology.com> wrote:
>>>>
>>>>> On Sun, May 3, 2009 at 03:55, Antonello Provenzano <antone...@deveel.com> 
>>>>> wrote:
>>>>>
>>>>>> I've found that neo4j would be perfect for my scope: unfortunately, it
>>>>>> is purely written in Java code and it's not portable to .NET, because
>>>>>> of the massive differences between the two architectures.
>>>>>>
>>>>>> Can you tell me if is it there any language binding or any port of
>>>>>> neo4j for .NET/Mono?
>>>>>>
>>>>> Hi Antonello,
>>>>>
>>>>> There's no port and no language binding at the time. I agree with you
>>>>> that porting Neo4j to .NET would probably be require a substantial
>>>>> investment, although I'm certainly no expert at .NET.
>>>>>
>>>>> As for bindings, I don't know how hard that would be. Neo4j currently
>>>>> has bindings for a number of languages (Python, Jython, Ruby, Clojure)
>>>>> and sometimes they've been fairly easy to roll. The conceptual
>>>>> impedance between Java and C# is certainly close to zero, so maybe
>>>>> adding .NET bindings is not that hard. You're certainly welcome to
>>>>> give it a shot!
>>>>>
>>>>> Another thought: Would it work if you implemented your graph algos in
>>>>> Java using Neo4j, then wrapped them in a thin REST layer and used that
>>>>> as a backend to the rest of your app written in .NET?
>>>>>
>>>>> Cheers,
>>>>>
>>>>> --
>>>>> Emil Eifrém, CEO [e...@neotechnology.com]
>>>>> Neo Technology, www.neotechnology.com
>>>>> Cell: +46 733 462 271 | US: 206 403 8808
>>>>> http://twitter.com/emileifrem
> _______________________________________________
> Neo mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to