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


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

Reply via email to