Eitan, one of our brilliant .NET developers posted here a description of the underlying mechanism we use in GigaSpaces XAP to provide simple integration between Java and .NET.
We use different concepts than typical XML based interop solutions by providing a seamless default mapping between Java, .NET and C++ objects. We have several customers who use mixed teams, usually .NET team which develop user interfaces for the desktop and Java or C++ server side processing teams. In our solution the objects are mapped to a canonical efficient representation. It is the framework’s role to do the mapping and conversion and not of the user’s. For this reason we can apply very sophisticated optimization which makes language boundaries unnoticeable from performance and efficiency perspectives.