技术开发 频道

.Net也可以跨平台吗?



    【IT168 专稿】利用Visual Studio .Net开发Linux上的应用程序;将ASP.NET跑在Linux平台的Apache服务器上;让ASP.NET页面访问J2EE中的组件(如EJB等),这听起来有点天方夜谭、痴人说梦!Windows平台和Linux平台;Java平台和.Net平台这两对冤家,在开发者眼里似乎永远都没有交集。然而,世界上没有绝对不可能的事情,听起来天方夜谭的事情往往很快就会变成现实。其实早在2005年,这个梦想就已经实现。

    使用微软Visual Studio .Net开发者,现在他们被提供一种新方法,可以开发在Linux下运行Web应用程序。这就是Grasshoppe。这是一套全名为Visual MainWin for J2EE Developer Edition 的工具,它可以免费得到,其设计目的就是在Visual Studio 开发工具和Linux、J2EE之间架起一座桥梁。它的设计者是Mainsoft公司,它被宣称为Linux下第一个基于Visual Studio的Linux IDE。

    1. Grasshoppe出现的动机
    随着计算机技术的广泛应用,单一的技术很难全面满足某些大型应用的全部需求。.Net技术可以实现夸语言开发,并且较高提升了开发效率,但是只能跑在Windows系列平上,无法满足大型分布式应用的需求;Java/J2EE可以跨平台,适合大型分布式应用,但是其开发效率以及开发难度一直让许多初学者望而却步。

    许多大型组织发现他们自己正在拥有和使用由.NET技术和J2EE技术混合组成的开发团队和发布服务器。为了平衡通过J2EE应用程序服务器发送的企业质量,公司的商业逻辑经常以企业JavaBean(EJB)的形式发布于J2EE应用程序服务器上。另一方面,为了满足日益变化的商业发展的要求,多数开发者比较喜欢在具有高度生产性能的Visual Studio.NET开发环境下实现描述逻辑。当你需要把.NET描述层连接到J2EE商业逻辑层时,挑战就产生了。如何在Visual Studio.NET中,用C#或Visual Basic.NET来实现ASP.NET描述层,然后再调用以EJB形式实现的商业逻辑层这一挑战性开发的呢?

    解决这个问题最好的办法就是在.Net平台和Java平台中间架设一座桥梁,让.Net平台可以访问Java,访问EJB,能够运行在不同的平台上。Grasshoppe的出现,很好的解决了这个问题。


    2. Grasshoppe,何许人也?
    Grasshopper(蚱蜢)——Visual MainWin for J2EE的开发者版本——是一个Visual Studio .NET插件。那么Visual MainWin for J2EE又是哪路神仙呢?简单地说,Visual MainWin可以把.NET应用转换成Java应用,而Visual MainWin for J2EE则允许你把过去用ADO.NET建立的ASP.NET应用转换成J2EE应用,并把它们部署在J2EE应用服务器上,所有这一切都在Visual Studio.NET中完成。Visual MainWin for J2EE作为一个插件程序安装到Visual Studio.NET IDE中,它也同时安装一个Tomcat 5.0应用服务器,该服务器作为将ASP.NET应用转换为J2EE应用的测试平台。

    Grasshopper允许你在Microsoft Windows、Linux和任何允许使用Java的平台上使用C#或Visual Basic .NET来开发、调试和部署Web应用程序以及Web服务。Grasshopper支持源代码开发,因此你可以开发能够在多个平台上进行编译和运行的ASP.NET应用程序。Grasshopper绑定在Apache Tomcat应用程序服务器和PostgreSQL数据库上,因此在任何运行Apache Tomcat的平台上,你都能获得具有完全跨平台性的Visual Studio开发环境。

    通过Grasshopper,开发者可以开发、调试、配置 Web应用程序和Web服务器。只要这一切是基于windows、Linux或者是兼容Java的平台。而开发者可以选用的开发工具包括Visual Studio 、C#以及VB。一些企业级开发才会有的功能,如支持多CPU、J2EE服务器的全部功能,类似于WebSphere、JBoss 以及 WebLogic,在这个工具中也都会得到支持。

    Grasshoppe的诞生得益于Mainsoft公司与Mono项目两年来的通力合作,一个开源社区开发团队为此一直工作在Microsoft .Net开发平台上。

    3. Grasshoppe秘密武器
    Grasshoppe如何能够跨越.Net与Java/J2EE两大阵营的鸿沟呢?Grasshoppe使软件开发人员能够利用Visual Basic.NET或C#及ASP.NET和ADO.NET类库来开发运行在J2EE平台上的应用,它是一个完整的J2EE开发解决方案。Grasshoppe包括以下组件:

    其中Mainsoft Binary Compiler便是Grasshoppe的终极秘密武器,它是一个独立的编译器。Grasshoppe利用其独有的编译器,将微软中间语言(Microsoft Intermediate Language,简称MSIL)编译成标准的Java字节码(Java Bytecode)。开发人员既可以用Visual Basic.NET写程序,也可以用C#写程序,然后再把程序源码直接编译成标准的Java ByteCode。此外,  Grasshoppe的另外三件秘密武器也为踏平.Net与Java/J2EE两大阵营的鸿沟立下了汗马功劳:
 一个集成到Visual Studio.NET中的开发环境,它可以被用来开发、部署和调试J2EE应用;
 一组Java运行时间库,它使那些在Visual Basic.NET 和 C#中开发的应用可以运行在J2EE应用服务器上。
 提供了一套.NET Framework类库,实现了ASP.NET、ADO.NET、XML、Web服务和.NET服务器端运行时服务。

    4. 总结
    最近一项调查显示,.NET平台的开发人群的数量远远多于Java/J2EE平台的开发人员,.NET所开发的系统主要集中在中小型应用;而Java/J2EE则广泛应用与分布式系统的开发。.NET平台的开发人群数量庞大,其先进的开发环境¬——Visual Studio .Net可以说是立下了汗马功劳,吸引了大量的开发人员;而Java/J2EE的复杂性和难度往往让开发人员望而却步。然后,大部分的大型分布式应用都是基于Java/J2EE平台的,大部分大型分布式应用都部署在Linux/Unix平台上。如何能够既兼有.NET开发的高效,又能够是程序兼容Java/J2EE平台,使其运行在不同的平台上呢?Grasshoppe提供了很好的解决方案,Grasshoppe的推出,跨越了.Net与Java/J2EE两大阵营之间的鸿沟,是鱼和熊掌可以兼得。
0
相关文章