InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

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

作者 Ryan Slobojan 译者 陈黎夫 发布于 2007年7月25日

领域
架构 & 设计,
语言 & 开发
主题
Java+.NET集成 ,
故事和案例分析 ,
.NET ,
Java
标签
迁移 ,
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

技术来说是好东东,不过没有需求…… 发表人 g linnchord 发表于
Re: 技术来说是好东东,不过没有需求…… 发表人 铭 刘 发表于
非常不错的技术 发表人 Wang Brooks 发表于
  1. 返回顶部

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

    发表人 g linnchord

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

  2. 返回顶部

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

    发表人 铭 刘

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

  3. 返回顶部

    非常不错的技术

    发表人 Wang Brooks

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

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。