JNBridge Makes the .NET Core-to-Java Connection
- By John K. Waters
- May 8, 2019
Java/.NET interoperability solutions provider JNBridge has released version 10 of its flagship JNBridgePro tool, the first version to support Java interoperability with both the .NET Framework and the upcoming .NET Core 3.0. It also supports the new Visual Studio 2019, which was released in April.
The Boulder, Colo.-based company's namesake product is a general purpose Java/.NET interoperability tool designed to bridge anything Java to .NET, and vice versa. The tool allows developers to access the entire API from either platform. It connects Java and .NET Framework-based components and applications with simple-to-use Visual Studio and Eclipse plug-ins that remove the complexities of cross-platform interoperability.
Originally released in June 2016, .NET Core is a modular, high-performance, open source implementation of the .NET Framework. Although it has been around for nearly three years, and many consider it to be the future of .NET, JNBridge waited to support it until now because the earlier versions were too minimal, explained the company's CTO, Wayne Citrin.
"When the .NET Framework was first released, it was pretty complete, with lots of APIs," Citrin told ADTmag. "But the earlier versions of .NET Core were pretty small, lacking some key APIs, and they were narrowly focused on server applications and ASP.NET Core apps. We have always supported server apps and ASP.NET, but many of our customers use JNBridgePro to develop desktop apps."
Specifically, the 1.x releases of .NET Core lacked the Reflection.Emit APIs necessary for both generation of proxy DLLs (Dynamic Link Libraries) and for runtime generation of dynamic proxies, he explained. Subsequent versions added the Reflection.Emit APIs, but there was still a problem with the generation of proxy DLLs, which forced the company to use the .NET Framework's proxy tools. Plus, .NET Core has always lacked the APIs for .NET Remoting, which JNBridgePro uses to implement the various communications mechanisms that connect the .NET and Java sides. With Reflection.Emit missing, Citrin said, it didn't make sense to expend the effort to reimplement cross-platform communications without .NET Remoting, but once Reflection.Emit was available in version 3.0 (in preview, set for general availability in September), it made sense to take the time to work around the other missing APIs.
"Version 3.0 is now a mature platform," Citrin said. "And part it adds support for desktop applications, which means the range of applications we can support on .NET Framework and .NET Core are about equal. In other words, it has enough of what we need to do just about everything we want to do. And where it doesn't, there are workarounds."
One of the reasons .NET Core is seen as the future of .NET, and the .NET Framework may be drifting into legacy is that the newer framework runs equally well on Windows, Linux and macOS. The latest release of JNBridgePro works on Windows and Linux; support for macOS is coming, soon.
JNBridgePro 10 is available now, and there's a free trial available for download from the company Web site.
John K. Waters is the editor in chief of a number of Converge360.com sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS. He can be reached at [email protected].