BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

Eclipse Ganymede:深入RAP(Rich Ajax Platform)

| 作者 Ryan Slobojan 关注 0 他的粉丝 ,译者 黄璜 关注 0 他的粉丝 发布于 2008年6月24日. 估计阅读时间: 不到一分钟 | 智能化运维、Serverless、DevOps......2017年有哪些最新运维技术趋势?CNUTCon即将为你揭秘!

作为即将到来的计划于6月25日发布的Eclipse Ganymede的一部分,InfoQ的报道将会覆盖一系列Eclipse的子项目。今天,主角是RAP(Rich Ajax Platform),它正好发布了1.1版。InfoQ采访了Jochen Krause以更多地了解RAP以及它所提供的功能。

为了描述RAP给Eclipse带来的功能,Krause首先把Eclipse的用户分成了两类:一类是使用Eclipse IDE以及其工具来进行开发,一类是使用基于Eclipse平台的应用。krause表示,对于IDE及工具用户来说,开发工具将只会暴露RAP本身,而RAP的功能对于他们是透明的。与此不同的是,对于使用基于Eclipse平台应用的用户来说,他们现在将有能力运用基于OSGi的Eclipse插件开发模型,JFace以及Web版的SWT来构建支持AJAX的富Web应用。RAP的意图类似于Eclipse富客户端项目(RCP),主要的区别在于更精简的API以及为Web应用的多用户特性所做的增补。相对于RAP 1.0,1.1版扩展了API,引进了一系列诸如SWT的鼠标事件,JFace的图像装饰器以及工作台的增强等等新特性——同时它也包含了Eclipse 3.4的新功能,比如安全的增强和widgets的阿尔法着色。

当被问到RAP将如何与诸如Dojo,GWT,OpenLaszlo等AJAX框架相搭配,krause谈到:

RAP是一个专注于服务器端的AJAX框架并与OSGi,Equinox和Eclipse平台有着紧密的关系。要与其它的框架相比并不容易,因为他们的关注点有所不同。Dojo,GWT,OpenLazlo的widgets工具箱非常出色,但却不能提供一个广泛的应用平台。我们并不将其视为竞争对手,相反的是,他们或许将成为RAP后续版本客户端表现的附加选项。RAP现有的客户端表现是基于qooxdoo的,这同样是个强大的AJAX框架。RAP和GWT都支持开发者用Java编写,但其运行时模型却大不相同,GWT是整个在浏览器执行的,而RAP的执行被分成了服务器端和客户端两部分。

Krause同时提到了RAP能够将单一的代码源(codebase)编译成AJAX应用,或者编译成RCP应用,并表示这并不像看上去那么复杂。编译是针对于同样的工作台,JFace和SWT APIs来完成的,但当以Web应用来运行时,这些库的常规版本都被替换成了其支持Web的版本。在运行时,这些应用的代码都跑在服务器上,并有一个基于JavaScript的UI来向服务器传送事件和向客户端传送结果。然而,Krause也指出了RAP开发者必需引起注意的三件事:

  1. Web是一个多用户环境,所以在一个静态对象中(如singleton)保持应用状态是有可能引起问题的。
  2. 现有的RAP是RCP的一个子集——如果期望得到超出RAP支持的RCP附加功能,这里推荐的做法是通过插件来引入它们。
  3. 因为应用是在服务器上执行,开发者不应给每个用户分配大量的内存(这同样也是桌面应用的最佳实践)

作为下一代SWT的一部分,RAP计划提供完全基于AJAX的SWT实现。Krause指出并不是所有的平台都支持SWT API,并且SWT是为桌面应用而设计的。尽管大多数的SWT API都能被实现,但像在画布上描绘以及探测鼠标移动等功能还有待于浏览器在这些方面的进一步改善和提高。目前还欠缺的像拖拽和键监听器等API已计划在RAP的下一发布版本中,并将包含来自其它团队的技术,例如SWT的用于StyledText widget等复杂组件的Java/Flex 交叉编译。

关于RAP的远景规划,Krause表示将着力于两个主要的领域:扩展RAP API以实现更多的RCP API,以及利用Eclipse平台让用户从Web的视角获得更加自然的用户体验。Krause进一步阐释了第二点,RAP通过与可用性专家紧密协作,分析用户交互,以解决来自易用性的挑战。Krause同时看到了Web应用和桌面应用通过AJAX和RIA的融合将带来的好处,并提到研究表明在Web环境里通过基于Eclipse Draw2D API来提供图形编辑器是可行的。

当问到RAP将如何与E4集成并影响E4,Krause表示:

在浏览器运行IDE这一用例对我来说没什么吸引力。JDT在我的机器上表现非常出色,我相信大多数开发者都有同样的感觉。但这并不表示没有Web技术让我们变得更方便的用例。看一看需求,任务管理或是开发流程管理。这是我所能预见RAP在未来将会发挥作用的领域。但回到这个问题。Eclipse平台团队和RAP团队在08年的EclipseCon上共同宣布了e4,并即将在Ganymede发布之后开始在这一平台上的工作。RAP将会是众多使应用具备Web能力的技术中的一分子,但并不会是其唯一的可能。我们同样需要支持其它的附加于Eclipse平台的web/JavaScript技术。我期待着孕育出更多的跨(领域)合作。RAP团队将提供实现以及平台对多用户的专门技术支持,SWT团队对诸如Flex/Silverlight等RIA平台的交叉编译进行了研究。更优化的风格是我们合作的另一关键领域。还有更多的东西没有被提到,但那理应再对E4本身进行一次采访了。
查看英文原文Eclipse Ganymede: An in-depth look at RAP (Rich Ajax Platform)

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的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通知我

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

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

讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT