advertisement
Premier Club Log In/Registration
  Include Code  Search Tips
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   SKILLBUILDING  |   TIP BANK  |   SOURCEBANK  |   FORUMS  |   NEWSLETTERS
Browse DevX
Download the code for this article
Interoperability methods
What do you think of this interoperability solution? Do you think it's fragile? Is it better or worse than rewriting code in the appropriate platform? Does Java/.NET interop simply exacerbate the problem that there are already too many different languages and technologies used within IT in organizations, or does it present a real-world solution? Let us know in the Java or .NET Technical discussion forums.
Partners & Affiliates
advertisement
advertisement
advertisement
Average Rating: 3.7/5 | Rate this item | 16 users have rated this item.
 

Calling Java Classes Directly from .NET

As the frequency of .NET and Java applications increases, we're headed for an interoperability imperative—we have to get both sides to work together. One way to do that is by adding an interoperability layer that gives .NET direct access to Java classes. 


advertisement
t's a fact that most production environments now use a mixture of both Java and .NET, despite all the partisan disputes over which side should "win." To be prudently responsible in the face of this business reality, it is imperative that developers get both sides to work together. Interoperability is no longer an option: fortunately, you do have some options for choosing the best path for achieving interoperability for your project.


Your specific interoperability needs may vary, based on your current systems and project specifications. Perhaps you already have some perfectly good "legacy" Java code that you don't need to change, but want to extend with new .NET components. Or, you're creating a new system, and want to assign tasks to the better-suited platform, so you're using J2EE's Enterprise Java Beans (EJBs) for the scalable back-end system, and .NET Windows Forms to create a rich desktop GUI. In either case, you may need direct access to Java classes from .NET. This article briefly discusses the major interoperability methods available and highlights some issues to consider as you make your interoperability selection, and demonstrate class-level interop with a specific example.

Click here to see or hide the author's description of other interoperability methods.

Runtime Bridges
Perhaps the most natural interoperability method is to run the Java code in a JVM, the .NET code in a CLR, and use a runtime bridge to manage the communications between them. In this scenario, the .NET code calls .NET classes and objects that act as proxies for the Java classes and objects. The proxies manage the communication; the calling .NET classes aren't even aware that they're ultimately calling Java classes. A runtime bridge provides interoperability for a wide variety of architectures, because the Java code and the .NET code can be on different machines, the Java code can run in a standalone JVM or in a J2EE application server, and the solution provides interoperability for any JDK version. As with bytecode translation solutions, you need only the Java bytecodes, not the source.

There are several runtime bridges commercially available. The code for this article uses JNBridgePro from JNBridge. See the related resources section of this article for other bridge products.

In the remainder of this article, you'll see how to use JNBridgePro to solve a real-world interoperability problem.

  Next Page: Build a Logging Example


Page 1: IntroductionPage 3: Generating Proxies
Page 2: Build a Logging ExamplePage 4: Setting up the .NET Program
Please rate this item (5=best)
 1  2  3  4  5
advertisement
Advertising Info  |   Member Services  |   Permissions  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs