I know one way around this is use java open source, by either a source or bytecode translator from Java to C#. Is there anything good to know in terms of limitations of this approach? Are there alternatives?
There's also the problem of using stuff that's targeted primarily for Mono, instead of .NET proper, and vice versa.
That being said a good carpenter can still crank out a nice table with a rock and some wood, but the question is should he?