憑借JNBridge技術,Java和.NET代碼無需交叉編譯器就可以實現對象共享。所有Java代碼運行在JVM上,而.NET代碼則運行在CLR上。在該方案下,JVM和CLR可以運行在不同的機器上,也可以運行在一台機器的不同進程上,甚至還能運行在相同的進程上。從開發者的角度來看,運行在其他虛擬機上的對象僅僅是代理的遠程對象而已。JNBridge有著悠久的歷史,其首個版本發布於2002年6月。Adobe的ColdFusion是其最知名的客戶,我們曾於2007年首度報道其對.Net的支持。
最新版的JNBridge可以輕松實現跨越虛擬機的分布式事務。其過程用兩個字來說就是——簡單。雖然開發者總是可以手工實現兩階段提交所需的工作,但借助於JNBridge 5.0,這一切都變得無比簡單了,它能夠幫助我們看管.Net一邊的System.Transaction以及Java一邊的javax.transaction。除了一些配置和對JavaTM.enable或是DotNetTM.enable的調用外,一切都和本地事務毫無二致。
要想使用JNBridge,開發者需要熟悉代理生成工具。該工具既可以獨立運行,也可以作為Eclipse和Visual Studio的插件運行。其Eclipse版本證明了JNBridge的強大所在,因為它實際上是用.Net/WinForms開發的。
GUI可以兩種方式運行,嵌入在WinForms和WPF中的Java AWT和Swing組件。很多公司都采取了這種方式:用Java構建了非常專業的控件(比如分子觀測儀)並希望將其技術移植給.Net開發者而不想進行大量的遷移工作。
目前,JNBridge官方還沒有支持Mono和Silverlight的計劃。雖然JNBridge的底層技術同樣適用於Mono和Silverlight 4,但如果出錯開發者只能依靠自己的力量去解決。與此形成鮮明對比的是,受支持的平台則具有豐富的文檔。