UPDATED - Interop house Mainsoft announced Mainsoft for Java EE Version 2.2, an interoperability toolkit that translates .NET code into Java applications. It enables a development team to write applications using C# and VB.NET and translate these to run on a Java EE server. ASP.NET controls can convert to run on Java Server Pages. The toolkit is accessed as a plug-in to Visual Studio, which can compile code directly to Java byte code.
"With the 2.2 release, developers can use the Visual Studio development environment and ASP.NET AJAX to develop enterprise applications with a sophisticated user interface, and deploy their applications on Windows servers, Java EE servers, or both," said Yaacov Cohen, Mainsoft CEO.
Mainsoft has enabled Linux support through its five-year collaboration with the Novell/Mono project, but this new toolkit allows .NET translation to Java independently of Mono. The company continues to work with Mono technology as well, however.
"We see a lot of enterprise shops that are interested in supporting Java for performance, scalability, and security," said Cohen. "We are enabling these enterprises to decouple development decisions from deployment and product needs."
Healthways, a Microsoft development shop, is using the toolkit to port its applications to Java, in order to better support up to 27-million users. Cohen said, "We enabled them with only two days of training to implement a pretty advanced document management system in five-months on WebSphere using C#. Enterprises looking at hundreds of thousands of concurrent users have a tendency to pick Java as an infrastructure." As an example of some limitations in native .NET portal architecture, he noted that a SharePoint list cannot hold more than 2,000 items, while a WebSphere list can have millions.
New Algorithms for AJAX serialization
Mainsoft faced a number of challenges in optimizing the toolkit to improve Java performance. One enhancement was the use of new algorithms for converting integers and real numbers into the HTML and XML strings used to carry data between an AJAX server and client.
Eyal Eliahu Alaluf, vice president of technology at Mainsoft said, "We deliver 2.6 times faster the number of conversion to strings for integers and 3 times as fast as Java real number conversions. We found that an application would spend 5 to 10% of its time on these conversions." Mainsoft has made these algorithms available to the Mono community, as well.
Mainsoft also developed another algorithm that improves garbage collection in compiled Java apps. Eliahu Alaluf said a new .NET feature known as Suppress Finalize allowed the Java applications to have the same or better performance than .NET in garbage collection.
Maintaining a Single Code Base
Gaiaware has been one of the first companies to use the new toolkit to port its complete AJAX Widget library to Java in only a week. Thomas Hansen, founder of Gaiaware said, "We want to support as many platforms as we can on the client and the server side."
Hansen said he was stunned by the improved speed of porting to Java. "To do this kind of refactoring by hand would have taken six developers working 120-hour weeks almost 18 months," he said. "Everyone is looking for that Holy Grail where they can maintain one code source, and for us, Mainsoft is delivering on that promise."
Translation Not For Everybody
While this new toolkit does help remove some of the barriers between .NET development and Java deployment, there are other factors involved in transitioning your organization to Java. Organizations need to think about the existing corporate IT infrastructure and vendor relationships before committing to a significant change.
"Historically, Java used to have better scalability, and .NET had better development tools. Some differences remain, but they are not as pronounced as in the past," said Ray Valdez, research director at Gartner Group." If you are happy with one, there is no compelling reason to go to the other. Often the reasons someone would switch are political or mergers and acquisitions. It is more about track record and ecosystem and people skills than raw technology."