InfoQ

新闻

Mainsoft:在JVM中运行.NET依旧能保证性能

作者 Ryan Slobojan译者 陈黎夫 发布于 2007年7月25日 下午11时50分

社区
.NET,
Java
主题
Java+.NET集成,
故事和案例分析
标签
Mainsoft,
迁移,
Java EE

Mainsoft公司最近发布了 2.0版本的Mainsoft for Java EE(原名Visual Mainwin),同时发布的还有一份有趣的白皮书 。据该白皮书称,一个基于.NET的应用程序,若是借助于Mainsoft for Java EE技术交叉编译之后运行于Java EE平台上,那么在某些方面的性能甚至会强于原有的.NET应用程序。InfoQ为此特地采访了Mainsoft的CEO——Yaacov Cohen

Cohen首先介绍了Mainsoft for Java EE的工作原理:

我们的交叉编译引擎将.NET Framework生成的Microsoft Intermediate Language(MSIL)交叉编译成Java的字节代码。然后我们基于Java的.NET Framework实现即可支持应用程序运行于Java平台之上。不但如此,我们的Visual Studio扩展还能够允许开发者在Java EE平台上编写、编译、部署以及调试Web或服务器应用程序。
因为代码的交叉编译发生于字节码级别,所以其过程并不需要源文件转换——这就意味着开发者仍旧可以使用Visual Studio.Net作为他们可移植程序的开发环境。InfoQ了解到,Mainsoft还使用Java重新实现了很大的一部分.NET Framework,包括ASP.NetADO.Net、以及Web Service API等。不过因为Mainsoft for Java EE主要专注于Web以及服务器应用程序方面,所以类似Windows Form的组件则没有提供。

InfoQ查阅了Mainsoft的白皮书 ,这份白皮书提供了一个案例分析,讲述某家公司使用Mainsoft for Java EE将一个现有的基于Windows平台上的.NET应用程序迁移到基于Linux平台上的Java EE中的故事。InfoQ

在这个案例中发现了如下值得注意之处:

对于为何Java要快于.NET,Cohen谨慎地解释说,这份白皮书的意义仅仅在于说明服务器应用程序能够在不损失性能的情况下进行迁移而已:

我们尽力调整这个开源的.NET实现让其符合WebSphere的架构,以便充分发挥其长处——这与微软公司的.NET Framework也充分地发挥了IIS和Windows的优势一样。关于那份性能评价,我们在两个操作系统以及硬件平台上都仔细地调整了垃圾收集算法、 页和堆的大小。在使用这些类库的同时,我们也发现了IBM Java虚拟机中很多值得优化的部分。在最新发布的WebSphere Application Server 6.1中,可以看到很多地方已经有所改进。

随着越来越多的公司开始开放其产品的源代码(例如Sun公司的JDKTerracotta公司的DSO以及Adobe公司的Flex SDK等),InfoQ又询问了Cohen关于Mainsoft是否要跟随这个潮流。Cohen回答到:

跨平台的.NET将是一个非常艰巨的项目,并且Mainsoft是Mono开源项目最大的贡献者——几乎和Novell一样。所以除了核心的mscorlib.jar(这个将作为Mainsoft的私有Java EE实现)之外,我们将所有的.NET Framework代码都共享给了Mono项目。

Mainsoft同时也提供了一个叫做Grasshopper的免费开发版本 ,可用于将产品部署到Tomcat服务器以及单CPU配置上。

查看英文原文:Mainsoft: Running .NET on the JVM While Maintaining Performance

3 条回复

回复

技术来说是好东东,不过没有需求…… 发表人 linnchord g 发表于 2007年7月26日 上午2时1分
Re: 技术来说是好东东,不过没有需求…… 发表人 刘 铭 发表于 2007年7月26日 上午3时3分
非常不错的技术 发表人 Brooks Wang 发表于 2007年7月28日 上午12时21分
  1. 返回顶部

    技术来说是好东东,不过没有需求……

    2007年7月26日 上午2时1分 发表人 linnchord g

    在中国,基本不存在这样的需求,可能性太小。

  2. 返回顶部

    Re: 技术来说是好东东,不过没有需求……

    2007年7月26日 上午3时3分 发表人 刘 铭

    如果一个ejb公司需要在原有平台上部署.net应用呢

  3. 返回顶部

    非常不错的技术

    2007年7月28日 上午12时21分 发表人 Brooks Wang

    从客户角度来看的确是一个很好的技术,比如我现在所在的单位,他们倾向于J2EE的解决方案,原来有一个用.NET实现的系统,后来用J2EE重写,其中的浪费可想而知。此外.NET和J2EE平台现在来很难说谁优谁劣,各有所长,如果能够发挥各自的优势岂不是非常妙的事情。 通常要实现.NET与J2EE之间的互操作只能通过高层接口,如WebService等,效率比较低,此外必须部署和维护不同的操作系统等问题,现在可以把.NET的程序编译成JVM bytecode,那么两类程序可以融合在一块。不过互操作还是得通过高层接口才能实现,不知道mainsoft在他们之间的互操作上有什么好方法没。着方面有JIntegra的产品,ArcGIS用的就是这个产品。

独家内容

世界顶尖运动队教练的成功秘诀

本文列出了来自于顶级教练Marc Lammers的9条原则,他是在打造世界最佳曲棍球队的过程中发现这些原则的,文章把这些原则映射到了软件开发实践之中。

探索JVM上的LISP

本文由Per Jacobsson所作,目标读者为有意了解Lisp的Java开发人员。文章探讨了当前可以运行于JVM上的不同Lisp方言,以明快简洁的方式介绍了Lisp程序设计工作机理和其独特之处,并在最后演示了Lisp代码同Java系统的整合过程。

Ruby/Rails: 不一样的'Web'应用

本文以一个实际应用的例子为引子,探讨Ruby/Rails在非传统web系统中应用,以及研究如何定制以Rails为基础的领域特定的MVC框架。

认识云计算

本视频对云计算进行了简要的介绍,主要包括了五部分内容:首先带大家认识“云”,然后对计算机的发展过程进行了阐述,接着介绍了业界现状和企业级/世界级计算的新布局,最后对云计算做了一下展望。

AtomServer:数据分发的发布动力

在这篇文章中,Bryon Jacob和Chris Berry介绍了AtomServer,一个基于Apache Abdera的完整Atom存储实现。在去年,作者一直致力于为其雇主——Homeaway——实现一个Atom存储,现在已开源了其Atom存储框架:AtomServer。

从卓越工程角度看微软中国开发团队的成长

开发团队的成长离不开优秀的人才,简捷有效的流程和高效率工具这三个卓越工程系统中的重要因素。本文作者从这三个因素分析了微软中国开发团队是如何“从优秀到卓越”的。

利用Ruby简化你的Java测试

本文是Productive Java with Ruby系列文章的第一篇,我将从单元测试这个话题开始,让Java的开发人员能够在实际工作中利用Ruby提高工作效率。

与赵进聊SaaS

InfoQ中文站有幸与阿里软件的首席架构师赵进在一起探讨了SaaS的相关话题,包括SOA和ASP与SaaS的异同、云计算、SaaS的前景、它的关键技术、技术瓶颈等等。