SapphireSteel Software 推出可视化 Rails 工作台

  • Robert Bazinet
  • 马家宽

2008 年 4 月 28 日

话题:.NETRubyRuby on Rails语言 & 开发

SapphireSteel Software 近日发布了其旗下产品 Ruby in Steel 1.2 的更新,这一 Ruby 开发环境包括了新的可视化 Rails 工作台。Ruby in Steel 是一个应用于 Visual Studio 2005/2008 的 Ruby 开发环境完整扩展。在 Ruby in Steel 安装完成之后,开发人员可以使用许多特性,包括:

  • 通过拖拽进行的可视化 Rails 页面设计
  • 智能提示和自动完成
  • 集成于 Visual Studio 内的调试
  • Ruby on Rails 支持
  • 完整的特性列表

并且支持许多 Ruby 运行时:

  • 标准 Ruby 1.8.6
  • JRuby
  • IronRuby

InfoQ 最近有机会访问了 SapphireSteel Software 的共同创立者之一——Huw Collingbourne。双方就 SapphireSteel Software 这一核心产品的里程碑发布进行了交流。

Rob Bazinet (RB): 可否为我们介绍一下你本人以及如何开始创立并运营这个公司的情况吧? 

Huw Collingbourne (HC): SapphireSteel Software 由 Dermot Hogan 和我在 2006 年初建立,致力于开发最好的 Ruby and Rails IDE。我们评估了一些可能的平台,然后很快得出结论,那就是对于我们所希望的高度集成且可视化的 IDE 来说,Visual Studio 提供了最好的工具集。

Dermot 和我都已经有很长时间的专业程序员经历—— 不过好像除此一点之外,我们俩还是差别蛮大的。Dermot 之前一直在以一个高级开发人员的身份为许多跨国银行开发实时交易系统。我想你可以猜到他的专长 在于解决复杂技术问题并优化程序的运行速度——这些技能对于开发我们的 Ruby 智能提示和自动完成功能,以及高速的‘Cylon’Ruby 调试器。和他不 同,我更愿意做一些不那么底层和艰深的工作。我已经用过许多语言,从 Java 和 C# 到 Smalltalk,当然还有 Ruby。我在英国为 PC Plus 撰写了十年 Delphi 方面的专栏文章。我猜你可能会觉得我真正的爱好是探索更好的可用性。如果一个软件使用起来不是方便和令人愉快,那么即便它 速度再快,看起来再用心良苦也是徒劳的!

RB: 可视化 Rails 工作台是什么形式的呢?它是被整合在 Visual Studio 2005/2008 中,还是作为独立的应用程序存在呢?

HC: 可视化 Rails 工作台是一个 Ruby On Rails 全页面设计环境。它不是一个独立的产品。它被紧密集成在最新(1.2)的 Ruby In Steel 开发者版本中。

自从我开始使用 Rails,我发现模板系统总是特别难以掌握。这是因为在你设计网页的时候无法看到程序运行之后网页的最终 效果。另一方面,你必须同时编辑多个内嵌 Ruby 代码的 HTML 片段文件(Layouts, Views 和 Partials)。这对程序员来说是可以的,但是对于希望使用类似于 Dreamweaver 的可视化工具建造像素级别精确度设计的 web 设 计人员来说,这种模板系统显然是不够好的。

这里的问题是如何让人们可以在设计时看到完整的网页。第一步是提供一种方式可以将多个 Rails 模板文件合并成一个页面。一 旦完成这个操作,你接下来就需要处理内嵌的 Ruby 代码,将这些代码转换成 HTML 标签。Rails 模板中的 Ruby 片段定义了各种可视化的以及数据绑定 控件,例如文本框和日期选择器。可视化 Rails 工作台可以作为 Ruby 模板和 HTML 页面之间双向转换的桥梁。

最终的目标是建立一个由多个 ERb 模板复合而成的 HTML 页面,然后将这个页面导出给第三方的 web 设计工具,比如 Dreamweaver。当这步完成,它允许在 Dreamweaver 中修改这个设计,而后结果重新导入到可视化 Rails 工作台中,这个结果将被重新分 解为果个 Rails 格式的模板。

RB: 使用可视化 Rails 工作台,我可以创建什么类型的应用呢?

HC: 它可以被用来创建 Rails1.2 和 2.0 的 web 页面。本质上讲,任何 一个需要漂亮界面的 Ruby 应用都可以用这个工作台来进行设计。我需要澄清一点,可视化的 Rails 工作台不需要任何特殊的依赖。它不需要任何已定义的模 板引擎或者类库。一旦你完成你应用的设计,它会被保存为 100% 标准的 ERb 文件。

RB: 我能像在 Visual Studio 里那样,通过一个可视化设计器创建视图吗?

HC: 当然可以。你可以使用可视化编辑器来将控件拖放到 web 页面中,并用鼠标 移动或改变它们的大小。你可以用 Properties 面板来添加或改变颜色,加入文字。你可以关联样式表并在完成后马上看到样式的变化。你在一个标准网页 中所能做得一切,现在也可以在 Rails 的 web 页面中做了,因为它们都已经被加入到了工作台中。在你完成你的设计后,所得结果会被自动分离并转译为 Rails 格式的 ERb 模板。

RB: 可视化 Rails 工作台最厉害的地方在哪里?

HC: 关键词是“可视化”。它可以让你在设计时通过 Visual Studio 所习惯的拖拽工具来编写完全的 HTML 页面。对于 Ruby On Rails 来说,这是以前从没有过的。

RB: 我是否还能运行所有的命令(create model, controller, etc,)?我对 Rails 的命令行很熟悉。

HC: Ruby In Steel 有众多内建的 Rails 工具。我们有众多可以用来运行‘generate’脚本和 Rake 任务的面板,例如你将喜欢的脚本保存到列表,然后再需 要用到它们的时候从中挑选。当一个脚本完成时,任何新生成的文件都会自动地被加入到解决方案浏览器中,这样如果你不想看到它们,你就不会看到。另一方面, 如果你确实想使用命令行,我们也有一个能弹出命令行窗口的工具,以你在解决方案浏览器中所选择的路径作为初始位置。

RB: 可视化 Rails 工作台是否为部署提供帮助?如果是这样,它会部署到什么样类型的 web 服务器环境中?

HC: 我们并没有任何内建的部署工具。我们现在的关注点完全在于为开发过程提供 辅助。我们为使用 Mongrel、WEBrick 或 LightTPD 进行本地部署提供了支持。不过,用户最终还是可以自由的选择任何标准的服务器环境。正 如我之前所说,可视化 Rails 工作台所生成的代码是完全“常规的”Rails 模板。当你部署应用时,你并不需要上传任何附加文件——没有任何多余到模 板、工具或代码库。我们的一个基本设计目标在于让可视化 Rails 工作台能够无缝的地与普通 Rails 模板互操作。在设计结束时,,甚至没有人需要知道应 用并不完全由代码构成——如果不考虑这一应用似乎显得很美观!

RB: 我如何设定我想要使用的运行时:IronRuby、Ruby (MRI)、Rubinius 还有 JRuby?

HC: 目前我们已经为 MRI、JRuby 和 IronRuby 提供了内建支持。你 也可以使用 Rubinius,但我们现在还没有 Rubinius 专用的工具支持。MRI 一直是我们默认的配置项,我们最近也已经为 JRuby 增加了专门的 支持。这使得用户可以在 Visual Studio 内置的 console 中运行 JRuby,同时也能使用我们 JRuby 版本的‘JCylon’来快速 debugger 来调试程序。

我们计划最终提供对 IronRuby 的完全支持。不过现在 IronRuby 本身的开发还尚在 alpha 阶段——而且我们的 IronRuby 支持也应该被称为 alpha 版。即便如此,现在我们已经有了很强大的 IronRuby 代码编辑器和可视化表单设计器。我们会随着 IronRuby 自身的发展不断增加新的特性。

RB: 那么我能否在 Ruby in Steel 1.2 中使用 NET 平台上目前可用的各种测试工具?

HC: 我们尚未开拓特定于.NET 测试工具的使用。随着 IronRuby 日益临近推出,我们会认真的考虑这一问题。

RB: 听起来很棒,非常感谢今天抽出时间接受我们的访问。

关于 Ruby in Steel 的信息可以参见SapphireSteel Software 的 web 站点,该站点同时提供Ruby in Steel 1.2 手册。Huw 同时维护着一个非常活跃的博客,经常发布各种关于产品的更新信息以及使用该软件的各种有用小技巧。

查看英文原文:Visual Rails Workbench available now from SapphireSteel Software
.NETRubyRuby on Rails语言 & 开发