A Java - .NET 'welding' course

How to join the two leading environments

Common Topics

Book review Like it or not, (and there are plenty of zealots who don't), the Java and .NET worlds have to learn to live with one another nicely. In practice this means that applications have to be able to cross platform boundaries easily - no more hiding behind proprietary interfaces, no more trying to own the entire software stack, and no more pretending that other platforms don't exist. All of which is helping to drive the move towards web services and service oriented architectures (SOA).

The snappily entitled Java EE and .NET Interoperability represents the Sun Microsystems view of what it means for Java and .NET to live in peaceful and productive coexistence. Note that Java EE is the platform formerly known as J2EE, which means this is a book that's principally focused on heavyweight enterprise architectures rather than the less daunting but still contested desktop view of the software world.

The authors of the book, a trio of Sun techies and Laurence Moroney from integration tools specialists Mainsoft, make a good stab at presenting a fairly neutral view of interoperability. They provide introductions to Java EE and to .NET, for example, so those coming from either platform can work out what's what. They discuss different interoperability scenarios with Java or .NET at the client and server end. They talk synchronous and asynchronous integration. Design patterns, best practices, web service implementation differences (because standards aren't, well, standard...).

In short, there's plenty of architectural meat. And, for those who can't cope without it, there's plenty of sample source code (both in Java and C#), so the book gets down and dirty rather than staying up in the clouds.

However, the book suffers from that strange mangling of the English language that seems to afflict people when they write about enterprise architectures. It's not just the acronyms, it's the weird way words are strung together without apparent regard for the reader. And there seems to be a rule that the words web, service, abstraction and interoperation have to be included in every paragraph. This tendency is exacerbated by a degree of repetition. Perhaps it's down to the multiple authors, but at times it felt as though every chapter introduced web services as though for the first time. Whatever else this is, it's not a book one would read for pleasure (not that I'm suggesting that reading about enterprise application architectures is something that one would do for the fun of it).

Quibbles about the language aside, the book does provide solid content. It covers a wide range of integration solutions, providing both implementation guidance and best practice information, particularly with regards to the design patterns that maximise decoupling between layers of an application that sit on different platforms.

Of course the platform neutrality only goes so far, and there's a final chapter on porting applications from .NET to Java. A chapter on the reverse process is notably absent, but then again Microsoft has ensured that there's plenty of Java to .NET migration information available.®