BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Ryan Slobojan 关注 0 他的粉丝 ,译者 陈黎夫 关注 0 他的粉丝 发布于 2007年7月27日. 估计阅读时间: 5 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

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

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

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

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

非常不错的技术 by Wang Brooks

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

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT