当WebLogic Workshop最初被构思出来并公之于众时,人们是将其作为相当流行的Visual Studio.NET开发环境的替代方案。比较而言,WebLogic Workshop非常易于使用,而且功能毫不逊色,因为它允许构建包括EJB在内的J2EE应用程序,其难度仅相当于一个VB程序员构建一个基于Windows的对象。
然而,许多企业都拥有现成的.NET资产,使用C#进行构建,它们不得不使用Workshop把这些代码全部转换为Java,实际上放弃了本希望在WebLogic J2EE平台上运行的现有投资。这变成在平台之间进行迁移的巨大障碍,而且到现在为止仍然是这样。除此之外,WebLogic Workshop 8.1的一个实际优点在于它能够轻松构建EJB,轻松构建工作流应用程序,并把它们公开为服务。在前端,它拥有非常有用的页面流技术,可用于构建消费这些服务的用户界面,但是很多人会说,与Visual Studio.NET中的ASP.NET相比,它没有为前端Web应用程序带来更好的生产力。如果可以使用WebLogic来实现它最擅长的中间件EJB和工作流,而使用ASP.NET实现它最擅长的前端,这将会达到非常理想的效果。
现在,出现了一种实现这种理想的方法:Mainsoft提供了Visual MainWin for J2EE产品(dev.mainsoft.com),它可以为此用途提供独有且具有革新性的解决方案。简而言之,该产品(又称为Grasshopper)采用由.NET生成的微软中间语言(Microsoft Intermediate Language,MSIL),并将其转换为Mono库的Java端口支持的Java字节码。这样就可以编译C#代码,并在J2EE应用服务器(比如Windows、Linux或所支持的其他操作系统上的WebLogic)上运行它们。这是一种很好的方法,既可以有效地利用Visual Studio.NET,又可以获得WebLogic的运行时可靠性和特性。
本文将简要介绍它如何把现有的ASP.NET前端部署到WebLogic 8.1上,并与已经运行在该平台上的资产(比如EJB)协同工作。
工作方式
隐藏在这种产品背后的理念十分简单,但是却十分有效。Mainsoft是Mono项目的主要捐献者,他们已经使用自己的工具把Mono源代码转换为Java。这提供了对命名空间的支持,以便可以在Java中调用ASP.NET命名空间。然后,它采用C#或VB.NET代码,并把由.NET框架编译器生成的MSIL交叉编译为Java字节码。这是一种纯Java的解决方案,运行在J2EE应用服务器之上。他们还支持使用Java Reference和EJB。
开发应用程序时,只需创建一个ASP.NET应用程序,然后使用他们的向导将其转换为J2EE即可,或者在安装之后,使用Visual Studio.NET中新的项目类型创建一个C#/VB.NET for J2EE应用程序。
余下的工作——开发、调试、代码完成、intellisense等等——均可以在Visual Studio.NET中顺利地进行。这非常有说服力,而且如果您或者您团队的任何成员使用这个开发环境,就会惊讶于它平滑的集成。在WebLogic上编写C#程序、运行和调试该程序时,您可以使用一些非常酷的功能,其容易程度就像在IIS上一样。
起步——一个非常简单的例子
这第一个例子采用了一个标准的C# Web表单,给它添加了一个EJB引用,从而让它在WebLogic 8.1服务器之外也能够使用EJB,然后编译该Web表单,以便运行EJB。
一开始,需要使用WebLogic Workshop创建一个简单的EJB,该EJB实现了以下方法:
/**
* @ejbgen:remote-method
*/
public String echoHelloWorld(String strIn)
{
return "Hello World, " + strIn;
}
它十分简单,仅仅返回了“Hello World”和调用者的名称。
需要安装Visual MainWin for J2EE的企业版才能继续,因为只有企业版支持BEA WebLogic您可以在dev.mainsoft.com上找到此类信息。这个工具还有一个支持Tomcat的免费工具。下载并安装该工具之后,就可以运行Visual Studio.NET,然后创建一个如图1中所示的简单Web表单。

图1 一个简单的ASP.NET Web应用程序