SapphireSteel Software近日发布了其旗下产品Ruby in Steel 1.2的更新,这一Ruby开发环境包括了新的可视化Rails工作台。Ruby in Steel 是一个应用于Visual Studio 2005/2008的Ruby开发环境完整扩展。在Ruby in Steel安装完成之后,开发人员可以使用许多特性,包括:
\u0026#xD;\n并且支持许多Ruby运行时:
\u0026#xD;\nInfoQ最近有机会访问了SapphireSteel Software的共同创立者之一——Huw Collingbourne。双方就SapphireSteel Software这一核心产品的里程碑发布进行了交流。
\u0026#xD;\nRob Bazinet (RB): 可否为我们介绍一下你本人以及如何开始创立并运营这个公司的情况吧?
\u0026#xD;\nHuw Collingbourne (HC): SapphireSteel Software由Dermot Hogan和我在2006年初建立,致力于开发最好的Ruby and Rails IDE。我们评估了一些可能的平台,然后很快得出结论,那就是对于我们所希望的高度集成且可视化的IDE来说,Visual Studio提供了最好的工具集。
\u0026#xD;\nDermot和我都已经有很长时间的专业程序员经历—— 不过好像除此一点之外,我们俩还是差别蛮大的。Dermot之前一直在以一个高级开发人员的身份为许多跨国银行开发实时交易系统。我想你可以猜到他的专长 在于解决复杂技术问题并优化程序的运行速度——这些技能对于开发我们的Ruby智能提示和自动完成功能,以及高速的‘Cylon’Ruby调试器。和他不 同,我更愿意做一些不那么底层和艰深的工作。我已经用过许多语言,从Java和C#到Smalltalk,当然还有Ruby。我在英国为PC Plus撰写了十年Delphi方面的专栏文章。我猜你可能会觉得我真正的爱好是探索更好的可用性。如果一个软件使用起来不是方便和令人愉快,那么即便它 速度再快,看起来再用心良苦也是徒劳的!
\u0026#xD;\nRB: 可视化Rails工作台是什么形式的呢?它是被整合在Visual Studio 2005/2008中,还是作为独立的应用程序存在呢?
\u0026#xD;\nHC: 可视化Rails工作台是一个Ruby On Rails全页面设计环境。它不是一个独立的产品。它被紧密集成在最新(1.2)的Ruby In Steel开发者版本中。
\u0026#xD;\n自从我开始使用Rails,我发现模板系统总是特别难以掌握。这是因为在你设计网页的时候无法看到程序运行之后网页的最终 效果。另一方面,你必须同时编辑多个内嵌Ruby代码的HTML片段文件(Layouts, Views和Partials)。这对程序员来说是可以的,但是对于希望使用类似于Dreamweaver的可视化工具建造像素级别精确度设计的web设 计人员来说,这种模板系统显然是不够好的。
\u0026#xD;\n这里的问题是如何让人们可以在设计时看到完整的网页。第一步是提供一种方式可以将多个Rails模板文件合并成一个页面。一 旦完成这个操作,你接下来就需要处理内嵌的Ruby代码,将这些代码转换成HTML标签。Rails模板中的Ruby片段定义了各种可视化的以及数据绑定 控件,例如文本框和日期选择器。可视化Rails工作台可以作为Ruby模板和HTML页面之间双向转换的桥梁。
\u0026#xD;\n最终的目标是建立一个由多个ERb模板复合而成的HTML页面,然后将这个页面导出给第三方的web设计工具,比如 Dreamweaver。当这步完成,它允许在Dreamweaver中修改这个设计,而后结果重新导入到可视化Rails工作台中,这个结果将被重新分 解为果个Rails格式的模板。
\u0026#xD;\nRB: 使用可视化Rails工作台,我可以创建什么类型的应用呢?
\u0026#xD;\nHC: 它可以被用来创建Rails1.2和2.0的web页面。本质上讲,任何 一个需要漂亮界面的Ruby应用都可以用这个工作台来进行设计。我需要澄清一点,可视化的Rails工作台不需要任何特殊的依赖。它不需要任何已定义的模 板引擎或者类库。一旦你完成你应用的设计,它会被保存为100%标准的ERb文件。
\u0026#xD;\nRB: 我能像在Visual Studio里那样,通过一个可视化设计器创建视图吗?
\u0026#xD;\nHC: 当然可以。你可以使用可视化编辑器来将控件拖放到web页面中,并用鼠标 移动或改变它们的大小。你可以用Properties面板来添加或改变颜色,加入文字。你可以关联样式表并在完成后马上看到样式的变化。你在一个标准网页 中所能做得一切,现在也可以在Rails的web页面中做了,因为它们都已经被加入到了工作台中。在你完成你的设计后,所得结果会被自动分离并转译为 Rails格式的ERb模板。
\u0026#xD;\nRB: 可视化Rails工作台最厉害的地方在哪里?
\u0026#xD;\nHC: 关键词是“可视化”。它可以让你在设计时通过Visual Studio所习惯的拖拽工具来编写完全的HTML页面。对于Ruby On Rails来说,这是以前从没有过的。
\u0026#xD;\nRB: 我是否还能运行所有的命令(create model, controller, etc,)?我对Rails的命令行很熟悉。
\u0026#xD;\nHC: Ruby In Steel有众多内建的Rails工具。我们有众多可以用来运行‘generate’脚本和Rake任务的面板,例如你将喜欢的脚本保存到列表,然后再需 要用到它们的时候从中挑选。当一个脚本完成时,任何新生成的文件都会自动地被加入到解决方案浏览器中,这样如果你不想看到它们,你就不会看到。另一方面, 如果你确实想使用命令行,我们也有一个能弹出命令行窗口的工具,以你在解决方案浏览器中所选择的路径作为初始位置。
\u0026#xD;\nRB: 可视化Rails工作台是否为部署提供帮助?如果是这样,它会部署到什么样类型的web服务器环境中?
\u0026#xD;\nHC: 我们并没有任何内建的部署工具。我们现在的关注点完全在于为开发过程提供 辅助。我们为使用Mongrel、WEBrick或LightTPD进行本地部署提供了支持。不过,用户最终还是可以自由的选择任何标准的服务器环境。正 如我之前所说,可视化Rails工作台所生成的代码是完全“常规的”Rails模板。当你部署应用时,你并不需要上传任何附加文件——没有任何多余到模 板、工具或代码库。我们的一个基本设计目标在于让可视化Rails工作台能够无缝的地与普通Rails模板互操作。在设计结束时,,甚至没有人需要知道应 用并不完全由代码构成——如果不考虑这一应用似乎显得很美观!
\u0026#xD;\nRB: 我如何设定我想要使用的运行时:IronRuby、Ruby (MRI)、Rubinius还有JRuby?
\u0026#xD;\nHC: 目前我们已经为MRI、JRuby和IronRuby提供了内建支持。你 也可以使用Rubinius,但我们现在还没有Rubinius专用的工具支持。MRI一直是我们默认的配置项,我们最近也已经为JRuby增加了专门的 支持。这使得用户可以在Visual Studio内置的console中运行JRuby,同时也能使用我们JRuby版本的‘JCylon’来快速debugger来调试程序。
\u0026#xD;\n我们计划最终提供对IronRuby的完全支持。不过现在IronRuby本身的开发还尚在alpha阶段——而且我们的 IronRuby支持也应该被称为alpha版。即便如此,现在我们已经有了很强大的IronRuby代码编辑器和可视化表单设计器。我们会随着 IronRuby自身的发展不断增加新的特性。
\u0026#xD;\nRB: 那么我能否在Ruby in Steel 1.2中使用NET平台上目前可用的各种测试工具?
\u0026#xD;\nHC: 我们尚未开拓特定于.NET测试工具的使用。随着IronRuby日益临近推出,我们会认真的考虑这一问题。
\u0026#xD;\nRB: 听起来很棒,非常感谢今天抽出时间接受我们的访问。
\u0026#xD;\n关于Ruby in Steel的信息可以参见SapphireSteel Software的web站点,该站点同时提供Ruby in Steel 1.2手册。Huw同时维护着一个非常活跃的博客,经常发布各种关于产品的更新信息以及使用该软件的各种有用小技巧。