内容


了解 Eclipse Orion:生于云,用于云

在浏览器中获得 JavaScript 开发工具功能

Comments

Eclipse Orion 项目的目标是创建一个基于浏览器的、开源的工具集成平台,一个完全为 Web 而开发的、位于 Web 中的平台。

  • Orion 工具是使用 JavaScript 编写的;它们在浏览器中运行。Orion 基于浏览器的开发 IDE 并不仅在单个浏览器选项卡中运行 — 所有链接都是有效的、可共享的,这为开发人员提供了开发任务的一种真正的 Web 体验。
  • Orion 组件可由其他项目(例如 Firefox ScratchpadGitHub 上的 Scripted Editor)单独使用。Orion 的所有组件都可以在面向公众的 OrionHub 站点 上查看,您可在该站点中创建一个帐户并试用 Orion。

Orion 的功能和影响

在 2013 年 3 月,eWeek 杂志的 Jeff Cogswell 探讨了 Eclipse Orion:

Eclipse Orion 是一个在线集成开发环境,它的创建目的是向 Eclipse 桌面 IDE 提供类似的功能,但它是在浏览器内运行的。

  • Orion 包含一个使用 Java™ 编写的服务器,您可以通过浏览器连接该服务器。
  • 该浏览器应用程序包含大量 JavaScript 代码,还包含一些开源库,以提供不错的 IDE 体验。
  • 文本编辑器可用来编辑任何文本文件,而且它包含 JavaScript、级联样式表 (CSS) 和 HTML 等多种语言的语法突出显示。
  • IDE 可用来管理文件夹,创建和编辑文件,创建新项目,甚至使用 Git。
  • 您可以从头构建项目,或者使用任何已提供的入门模板。
  • 编辑器还可全面扩展,包括一个完全基于 REST 的接口,您可以通过它创建扩展,并包含服务器端 Java 代码,以及客户端 JavaScript 代码。
  • 很容易从 IDE 添加扩展,并通过 Web 上的各种扩展页面添加扩展。

随后,Jeff Cogswell 回顾了他对 Orion 的使用(“Eclipse 的在线版本”),重点介绍了他最喜爱的功能,其中包括:

  • 编辑器的代码搜索和本文搜索功能。
  • 编辑器使用 JSLint 提供了功能分层结构,并查找错误和警告。
  • 以各种不同的方式创建和导入项目的能力。
  • 它在构建时考虑可扩展性;后端被构建为既可以扩展又可以松散耦合,所以您可以将它精减为一个组件子集。

Martin Lippert 是 VMware 的一位工程师,负责研究用于 Spring 的基于 Eclipse 的开发人员工具。在 2012 年 11 月的 ECE2012 大会上,Lippert 展示了他的团队如何重用 Orion 构建他们自己的基于浏览器的开发人员工具,并向 JavaScript 开发人员展示了一个以编辑器为中心的、基于浏览器的方法,该方法构建于 Eclipse Orion 之上。

Orion 背后的人们

作者照片Ken Walker 是 Eclipse Orion 项目的共同倡议人和提交者。他自 2011 年秋季开始在 Orion 团队工作,作为一位开发人员,他喜欢介绍 Orion 背后的技术和概念。

2013 年 6 月 18 日,Ken Walker 在 JAXConf 2013 上与 JAX 编辑 Chris Mayer 一起讨论了 Orion IDE 和它的设计目标、它与主要 Eclipse 项目的区别,以及您可以向其中引入的技术。

Ken 强调了 Eclipse 与 Orion 之间的区别(“Eclipse 是一个桌面 IDE……Orion 为云而生”),并解释了在云适应性方面,该 IDE 是浏览器上的 JavaScript,它连接到一个 Java 或 node.js-服务器后端。

在 2013 年 4 月的 MLOC.JS 国际 JavaScript 大会上,他 探讨了 Orion IDE,并解释了在 Web 开发上的两大思考阵地:原生和非原生。

作者照片Simon Kaegi 是 Eclipse Orion 项目的另一位共同倡议人和提交者。他是 Orion 架构和实现的技术领导,代表 IBM 推进着 JavaScript 语言 (ECMA) 和浏览器 API (W3C) 的发展。他是 Eclipse 核心团队的成员,过去曾参与 Equinox(服务器端、p2 和概略)、e4(JavaScript 模块性和调试)和 JSDT 项目。

Orion 的技术基础

Ken Walker 在 Eclipse 时事通讯 的 2013 年 6 月的一期节目中 详细介绍了 Orion 项目的基础。他解决了一般开发人员对 Orion 尝试实现的目标和它 “在技术上” 与一个标准 Eclipse IDE 有何不同的困惑:

Orion 是一组组件,这些组件共同提供了组成一个可扩展、基于浏览器的开发平台的服务器代码和客户端代码。这些组件与其他许多 Eclipse 项目不同,主要因为它们是使用 JavaScript、CSS、HTML5 和当代目标浏览器(比如 Firefox、Chrome、Safari 和 IE10)编写的。对 Web 开发人员而言,这是 Orion 的初始目标。

他继续解释道,当前的 Web 开发工具没有 Java 开发团队为 Java 开发人员提供的工具完备。大多数开发人员使用一个单机编辑器或命令行工具来执行日常开发任务。Orion 提供了 Java 的语言功能,以及与云服务的紧密集成,这使得开发和部署云/Web 应用程序和服务变得更容易。

本文将介绍主要的 Orion 组件:

  • Orion 服务器:Java 服务器端服务是通过面向 REST 的 HTTP API 进行公开的。这些 API 提供了文件系统、搜索、Git 支持和首选项等服务。因为该客户端只需使用这些服务即可在服务器上操作,所以服务器的选择很灵活;Orion 团队最近基于 node.js 编写了一个新的服务器,一位社区成员基于 Go 编写了一个新服务器。
  • Orion 客户端:在执行主要开发工作的地方,一个 Orion 浏览器 “页面” 初看起来似乎毫无用处,因为它专注于任务和资源,可轻松地支持探索和利用跨站点工作流;设计这些页面无需执行您在同一个浏览器选项卡中能够执行的所有工作,这正是 Orion 不同于传统 IDE 体验的地方。Orion 的行为类似于一个 Web 应用程序。您可以使用浏览器的前进和后退功能,将您浏览的页面加入书签,并在新选项卡中打开新页面,以构建更多的功能。
  • Orion 插件架构:Orion 提供了许多扩展点服务类型,可为它们提供插件来自定义客户端和添加功能,包括向编辑器工具栏或导航器视图添加更多的命令;为新文件类型添加内容帮助;以及添加语法突出显示规则。开发人员将插件编写为 HTML 文件,其中包含一些知道如何连接到 Orion 客户端的 JavaScript 代码。

Orion 的设计是可扩展的。这些页面构成了 OSGi Services API 的一个 JavaScript 实现并供该实现使用;插件(使用 JavaScript、CSS 和 HTML 编写)遵循标准 OSGi 规范中使用的生命周期和 Bundle 的状态。

Orion 实战

为了总结所有这些 Orion 资源,本节提供了多个演示文稿、视频和博客,展示了使用 Orion 的各种方式。

4.0 版中的新功能

Orion 项目提交者 John Arthorne 在此博客中详细介绍了 最新的 Orion 4.0 M2 版本的新功能,其中包括:

  • 用于 README.MD 文件的 Embedded Markdown Renderer
  • 编辑器功能,比如括号完成、智能缩进和代码块注释完成
  • 自定义的本地编辑器设置下拉菜单
  • JavaScript 中针对 Node.js 模块的内容帮助
  • 以差异或完整文件形式将文件保存到服务器
  • 文件查看器中的 Git Blame 注释
  • 使用 Git Revert 撤销 Git Log 中的一次特定的提交
  • 初步支持 Orion 项目,扩展的功能即将面世

node.js 上的 Orion

Ken Walker 展示了一个关于 node.js 以及 Orion 如何在 node.js 之上运行 的幻灯片演示,包括如何将 node.js 绑定到 Orion(通过将 Java REST API 绑定到合适的 Orion 插件)、让该组合发挥作用所需的依赖关系,以及如何在此环境中使用文件搜索。

他还提供了一个视频,演示了如何使用 Orion 在 Raspberry Pi 上利用 node.js,还演示了 Orion 如何使得执行许多开发任务变得更简单。

将 Orion 比较功能嵌入到网页中

项目提交者 Libing Wang 演示了如何 将一个用于比较的小部件(compare widget)嵌入到您的网页中(请记住,最新的 Orion 版本支持 单机比较构建版本)。该小部件(一段可在客户端代码中的任何地方使用的纯客户端 JavaScript)可添加到您页面的任何 DOM 元素中,无需访问 Orion 服务器。

嵌入相对容易,因为服务器端不存在依赖关系。您可以 启动该演示查看源代码

将 Orion 编辑器嵌入网页中

项目提交者 Bogdan Gheorghe 在博客上介绍了如何 在博客中使用 Orion 编辑器,包括将代码嵌入到标头中(如果您将在博客中包含大量大码)还是在线运行代码中(对于较少代码)。使用 WordPress 和 Blogger 作为示例。

在浏览器中编辑 COBOL

Micro Focus 的 Chris Whitty 演示了如何 使用 Orion 编辑 COBOL。他在 Summer 2013 上详细介绍了一个项目,Micro Focus 有一个实习团队与他们一起为 Orion 创建了一个 COBOL 扩展。有许多不同的风格,包括一个支持语法检查和格式化等功能的完全托管的 Orion 实例(演示)。他们还在其他一些上下文(比如在线代码样例浏览器)中重用了该编辑器。

Orion 的未来

Orion 的未来在于您对 IDE 的兴趣,您可以在任何合适的项目中进一步了解如何使用 Orion 以及如何使用它进行开发。考虑到这一点,以下是一些可帮助您开始探索使用 Orion 执行 Web 和云开发的最终资源。


相关主题

  • 在 developerWorks 上的 云计算 专区进一步了解云计算技术。

评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, Open source
ArticleID=968408
ArticleTitle=了解 Eclipse Orion:生于云,用于云
publish-date=04142014