在进行 Ajax 开发方面,Rails 和 GWT 都可以帮助开发者隐藏手工编写 Javascript 的细节。GWT 通过将 Java 代码转换成浏览器可兼容的 JavaScript 或 HTML 格式,来实现这样的功能。如今在Rails 应用中也可以使用GWT 工具包来进行Ajax 开发,因为 Jon Crosby 为其开发了插件 GWT On Rails 。
GWT on Rails 借助于客户端和资源生成器,迁移支持,异步 RESTful 客户端支持,以及 Rake 任务的自动完成功能,将 GWT 的客户端编译的 JavaScript 与 Rails 的 RESTful 形式 Web 服务整合在一起。
这一切只需如下的几个步骤:GWT 客户端的生成器,GWT 模型生成器,以及你需要拥有 GWT 的客户端。
GWT On Rails 使用 GWT-Rest 来形成与 JSON Request Rails plugin 的接口。
将 Ajax 技术与 Rails 应用进行整合已经变得非常巧妙,间接将 Java 引入到 Rails 之中并非是一种常见的模式。在这个问题的指导下,InfoQ 与 Jon 取得了联系,来详细了解开发 GWT on Rails 插件的动机。
看到有新的插件来实现功能拓展一直是件非常令人兴奋的事情,但是 GWT on Rails 将 Java 引入,是不是会背离轻量级的理念,从而在开发模式上与 Rails 的哲学不协调? 大多数使得 Java 非轻量级的因素都来源于 JavaEE,但这些并非是 GWT on Rails 的一部分。客户端 GWT 使用 Java 语言来生成 JavaScript 代码;重量级的服务端平台从来没有介入在其中。在此之前,使用 GWT 需要同时在服务端与 Java 相一致,但是 GWT on Rails 打破了这样的关联。当然,我并非是第一个去做这样事情的人。JanRain 在客户端使用了 GWT,并在服务端使用 Python 与 Rails 来构建了应用 Pibb 。
我了解到,大多数架构上的决定主要是针对于功能上的取舍,这些只能在特定的环境下做出判断。对于我来说,拥有快速的编译好的 JavaScript,可以在 GWT 中运行的更为迅速,除了可以缩减大量跨浏览器的 JavaScript 调试时间,还更接近于 Rails 信奉的“先运行起来”的哲学,这要比我探究的其他替代方案都要好。
除了那些已经使用 GWT 搭建好,并希望转移到 Rails 架构上的应用,是否有一些关键性的应用将会使用 GWT On Rails 进行开发?
正如你所说,除了服务端代码从 Java 转向 Rails,同样也有 Rails 的开发者期望使用优秀的 JavaScript 工具包来创建富客户端的 Web 应用程序。GWT on Rails 基于高性能的 Google 工具包创建,并且添加了与 Rails 有很好亲和力的 RESTful 客户端,以及保持客户端 JavaScript 模型与服务端 ActiveRecord 模型同步的工具。对于那些通过实现小型 Ajax 窗体来增强效果的项目应用,GWT on Rails 显得很有用武之地。对于那些期望通过 JavaScript 来增强 Web 应用体验的项目来说,我认为 GWT on Rails 是值得尝试的。
查看英文原文: Who needs GWT On Rails?
评论