作为即将到来的计划于月日发布的Eclipse Ganymede的一部分InfoQ的报道将会覆盖一系列Eclipse的子项目今天主角是RAP(Rich Ajax Platform)它正好发布了版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 版扩展了API引进了一系列诸如SWT的鼠标事件JFace的图像装饰器以及工作台的增强等等新特性——同时它也包含了Eclipse 的新功能比如安全的增强和widgets的阿尔法着色
当被问到RAP将如何与诸如DojoGWTOpenLaszlo等AJAX框架相搭配krause谈到
RAP是一个专注于服务器端的AJAX框架并与OSGiEquinox和Eclipse平台有着紧密的关系要与其它的框架相比并不容易因为他们的关注点有所不同DojoGWTOpenLazlo的widgets工具箱非常出色但却不能提供一个广泛的应用平台我们并不将其视为竞争对手相反的是他们或许将成为RAP后续版本客户端表现的附加选项RAP现有的客户端表现是基于qooxdoo的这同样是个强大的AJAX框架RAP和GWT都支持开发者用Java编写但其运行时模型却大不相同GWT是整个在浏览器执行的而RAP的执行被分成了服务器端和客户端两部分
Krause同时提到了RAP能够将单一的代码源(codebase)编译成AJAX应用或者编译成RCP应用并表示这并不像看上去那么复杂编译是针对于同样的工作台JFace和SWT APIs来完成的但当以Web应用来运行时这些库的常规版本都被替换成了其支持Web的版本在运行时这些应用的代码都跑在服务器上并有一个基于JavaScript的UI来向服务器传送事件和向客户端传送结果然而Krause也指出了RAP开发者必需引起注意的三件事
Web是一个多用户环境所以在一个静态对象中(如singleton)保持应用状态是有可能引起问题的
现有的RAP是RCP的一个子集——如果期望得到超出RAP支持的RCP附加功能这里推荐的做法是通过插件来引入它们
因为应用是在服务器上执行开发者不应给每个用户分配大量的内存(这同样也是桌面应用的最佳实践)
作为下一代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 DrawD API来提供图形编辑器是可行的
当问到RAP将如何与E集成并影响EKrause表示
在浏览器运行IDE这一用例对我来说没什么吸引力JDT在我的机器上表现非常出色我相信大多数开发者都有同样的感觉但这并不表示没有Web技术让我们变得更方便的用例看一看需求任务管理或是开发流程管理这是我所能预见RAP在未来将会发挥作用的领域但回到这个问题Eclipse平台团队和RAP团队在年的EclipseCon上共同宣布了e并即将在Ganymede发布之后开始在这一平台上的工作RAP将会是众多使应用具备Web能力的技术中的一分子但并不会是其唯一的可能我们同样需要支持其它的附加于Eclipse平台的web/JavaScript技术我期待着孕育出更多的跨(领域)合作RAP团队将提供实现以及平台对多用户的专门技术支持SWT团队对诸如Flex/Silverlight等RIA平台的交叉编译进行了研究更优化的风格是我们合作的另一关键领域还有更多的东西没有被提到但那理应再对E本身进行一次采访了