当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实现了以下方法:
|
它十分简单,仅仅返回了“Hello World”和调用者的名称。
需要安装Visual MainWin for J2EE的企业版才能继续,因为只有企业版支持BEA WebLogic您可以在dev.mainsoft.com上找到此类信息。这个工具还有一个支持Tomcat的免费工具。下载并安装该工具之后,就可以运行Visual Studio.NET,然后创建一个如图1中所示的简单Web表单。

图1 一个简单的ASP.NET Web应用程序
为EJB添加引用是非常简单的——如果惯于在Visual Studio.NET中使用Web服务,整个过程看起来将很熟悉。如果在solution explorer中右击References节点,您会注意到两个新项——Add Java Reference和Add EJB Reference。前者允许使用JAR文件,并在ASP.NET中使用它们;后者的功能也类似于此,只不过对象换成了EJB。如果将EJB(如上所述)部署到WebLogic上,而应用服务器正在运行,就可以使用Add EJB引用,而且将看到如图2中所示的对话框。

图2 添加一个EJB引用
添加EJB引用有两种方法,一是使用通向包含它的JAR文件的路径,再就是使用JNDI。
一旦创建了EJB引用,Visual Studio.NET和Visual MainWin for J2EE就会创建一个代理类,用于与该EJB引用对话。这将允许您使用Visual Studio.NET的所有高效特性(比如自动完成)进行J2EE编码。
在先前创建的简单ASP.NET UI上,现在可以添加以下代码(在这段代码中,文本框应该称为txtName,而标签则应该称为lblResp):
|
使用WebLogic工作流
WebLogic Workshop 8.1最强大的功能之一就是强大的工作流引擎。这允许以图形化的方式设计工作流和流程,并将其与诸如Web service或EJB之类的外部组件连接起来。从许多方面来看,它是企业服务总线的基础。在这部分内容中,您将了解到如何使用Web Reference把ASP.NET用户界面与这些工作流联系起来,以及如何把工作流和用户界面部署到WebLogic上。
首先,需要创建一个简单的工作流,如图3所示。需要把应用程序设置为运行在WebLogic中的一个集成域上,以便让它正常工作。

图3 一个示例工作流/流程项目
这个例子十分简单,它使用了一个控件,该控件是一个对XMethods延迟股票报价Web服务的引用。该流程使用一个用户输入的参数,并将其发送给服务。当服务作出应答时,应答值被发送给客户端。WebLogic流程引擎支持非常复杂的交互,包括连接到Web Service、EJB和其他流程,以及决策树、事务等等。如果您不熟悉它,那么有必要对它做一番研究,而且它是一种功能十分强大的引擎。
在这个例子中,流程是线形的,它使用了一个Client Request with Response节点。Request接受一个字符串,而Response则发出一个浮点数。其间使用了一个Control Send with Return(同步的)。这使用了来自XMethods的公开可访问的股票报价Web服务,而XMethods的WSDL位于:http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl。执行这个流程时,就可以获得BEA测试用具,如图4所示。

图4 运行工作流/流程
因为这个流程公开了一个WSDL端点,现在可以把整个流程当作Visual Studio.NET中的一个Web Reference来使用。如果您希望运行时环境是基于Java的,并且想利用现有的ASP.NET技能或资产,那么这实际上是很有用处的。
结束语
许多拥有分别专攻.NET和Java的开发团队的公司,无论是小型的还是大型的,都面临着这样的典型部署环境场景:任务关键型应用程序运行在J2EE应用服务器上,而前端GUI应用程序运行在.NET上。Visual Studio.NET在生产力方面的突出优势使得它有利于开发这些Web应用程序。然而,当想在此类场景中使用EJB时,您可能会面临一个挑战,因为您不得不围绕它们构建一个包装器,或许以Web服务的形式出现,以便GUI层可以对其进行处理。
在本文中,我们扫视了来自Mainsoft的Visual MainWin for J2EE产品,该产品允许您使用一种“取二者之长”的方法。通过使用该工具,可以让.NET开发人员在WebLogic 8.1上运行他们的代码,并直接使用EJB和WebLogic流程应用程序。它可以帮助您有效地利用您的开发人员,并精简部署过程。您可以拥有一个基于WebLogic的统一数据中心,而不是混合的数据中心,用于运行所有的应用程序——ASP.NET、Java和J2EE应用程序,这样有利于让管理过程变得更为轻松。它的优点如此突出,以至于有时让人难以相信。以我的经验来说,我发现它可以管理代码的自动部分,包括数据访问,而不用做太多改动。它是一种值得使用的工具,您可以从dev.mainsoft.com下载评估版本。
(责任编辑:铭铭)
|
|||
| · 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
· 华为路由器产品 · 路由器模拟器 · AIX操作系统管理应用(.. · 思科路由器配置 · 路由器组网解决方案 · 路由器密码恢复 · 无线路由器故障处理 · 路由故障处理手册 |
||
|
|||
| · Java基础教程 · VPN技术 · SQL Server 2005全解 · ARP攻击防范与解决方案 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · 三层交换技术专题 |
· SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 · Windows操作系统安装 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 · Windows操作系统安装 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·网名接龙--之大话黄琨 ^o^ ·ARP欺骗引发的“冤案”—.. |
·ARP欺骗的原理、步骤和危.. ·利用负载均衡技术针对Web.. |
| ·VMware Workstation 6.01.. ·Windows Server 2008 RC0.. |
·ISA Server 2006的全自动.. ·ISA Server、虚拟机、托.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· IT基础教程 · 平凡黑客讲述精彩人生(.. · 平凡黑客讲述精彩人生(.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· AMD三核心处理器解析 痛.. · 服务器基础知识入门 · Rambus第二?看全缓冲内.. |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |