写点什么

JRuby GUI MVC 框架 Monkeybars 1.0 发布

  • 2009-02-15
  • 本文字数:2385 字

    阅读完需:约 8 分钟

如今有很多 JRuby 的程序库,通过它们,我们能够更加容易地使用 Java 工具进行 GUI 开发

我们采访了 Monkeybars 团队的 James Britt 。James 对 Moneybars 项目做了一个简短的介绍:

Monkeybars 是一个 JRuby 的 MVC 框架,这个框架基于 Swing 库之上。本质上来说,它并不是对 Swing 的一个重新封装,而是使用 Swing 类封装视图逻辑,从而将其和控制器逻辑和(Ruby 中的)模型逻辑分离开。从这方面来说,它提供了免费、高质量的所见即所得 Swing UI 设计工具,将我们从烦躁的 UI 设计中解脱出来,专注于 Ruby 开发。Monkeybars 最开始是从一个现实的应用中抽取出来的,它将专注于测试和维 护大型应用程序的项目。

James 阐述了 Monkeybars 如何处理交互:

Monkeybars 的目的之一是将视图和控制器分离开来;一个控制器从来不需要一个视图的直接引用。它使用信号来间接告诉视图应该要做些什么。这样的话,对控制器的测试就会更加简单,你无需担心 UI 的问题。

Monkeybars 没有直接实现 GUI 组件,它提供给我们任意选择 GUI 组件的机会:

Monkeybars 期望能够有表示 Swing UI 的类。在大部分情况下,我们开开心心地使用 Netbeans UI 编辑器来描画和编译 UI 组件,然后在应用程序中使用 Ruby 代码引用这些组件。理论上来说,你可以使用 Profigacy、Cherry 或者 SwiXML+Builder 等等,但是我还没有看到有代码这样做(同样见我关于 Monkeybars 的额外计划和简易编写内联 Swing 代码的评论)。

James 解释了开发者应该如何使用 Monkeybars:

很多用户都是在编写一些无谓的 JRuby 程序时随便用用 Monkeybars,但是我敢肯定有人在现存的 Java 应用程序中使用了它。目前 Monkeybars 有 gem 和 jar 的发布形式(同样也有源代码形式)。

我们希望知道是否可以在已经存在的应用程序中,使用 Monkeybars 处理 GUI 脚本:

[…] 在 Java 应用程序中,你可以加载和执行使用 Monkeybars 的 Ruby 代码,或者在 Ruby 应用程序中(假设在 JRuby 下执行)希望调用 GUI 的时候使用 Monkeybars。 虽然现在的代码不支持桌面 GUI,但是你的问题让我考虑是否需要现在使用现在的代码开发一个。例如,当开发一个 Web 应用的时候,如果使用一个优雅的 GUI 而不是在浏览器或者终端中呈现错误,那么这也许是一个很优秀的解决方案。将 Monkeybars 集成到 Ramaze 应用中,我们可以在开发的时候使 用 Swing 组件。我们也可以在一个多窗口 GUI 控制台应用程序中使用 Monkeybars 来查看源代码和文档。

在 Monkeybars 应用开发中, Rawr 是一个非常有用的工具。James 是这么解释 rawr 的:

Rawr 是另外一个从现实需求中演化出来的项目。它将 Monkeybars 集成到一个可执行的 jar 包中,提供了一些有用的 Rake 任务。你也可以将其集 成到 Windows 的 exe 程序或者 Mac 的 app 程序中(我们正在努力编写一个 Linux 包)。这个项目包括图标、媒体和内容 jar 包,还能够将 Ruby 编译进类中,提高载入速度。这就是我们如何将 JotBot 和我们的时间追踪程序集成在一起的。我们相信这个时间追踪程序是第一个商业 JRuby 桌 面应用程序。

我们也询问了一些 1.0 版之后,Monkeybars 未来如何发展的问题:

现在的核心是相当的稳定,大约一年之内都不需要做任何重要的修改。如果我们做了一些重大的改变的话,那么有一些大型应用程序将会花费大量的代价来重构,所以我们将来可能只是在这个基础上增量构建而不是做出修改。 但是,正得益于这种稳定性,我们可以考虑一些特性。例如,我们希望能够使用自定义的 DSL 或者构建器语法更加容易地创建 Swing UI 类。Swing 是非常巨大的,所以我们不打算封装所有的 Swing 组件,但是使用常规的 Ruby 语法,很多基础的 UI 形式和组件应该更容易使用。

我们现在还关注应用程序生成器。很多应用程序都有同样的形式和行为:启动画面(Splash Screen)、系统托盘图标、帮助和“关于”表格等。通过一些命令行调用或者 Rake 任务,程序员应该能够很方便地获得一个提供最少功能的桌面程序。然 后这个应用程序可以使用内联代码或者已编译的 Java 类来添加额外的 UI 组件。

Logan 已经使用了视图绑定功能,这个功能使得我们更加容易地在模型和视图之间建立映射,并且能让我们看起来数据一直是保持同步的。

另外一个项目将我们认为 Swing 的一些通用功能组合起来,但是现在我们现在还没有开始进行这个项目,也许这个项目并不容易。例如,禁止组合框中特定的元 素或者文本域的上下文菜单。我们也在努力地使 Monkeybars 能够更好地和 Cucumber 和 RSpec 一起工作;在这方面,我们已经做了一些工作。

最后,James 提供了一系列指导 Monkeybars 开发的资源,如果仍然不明白的话,那么可以直接询问 Monkeybars 的核心团队(现在是 James、Logan Barnett 和 David Koontz):

当然有 Monkeybars.org;我们现在正在更新 1.0 版本的文档和截图。 也可以通过 Freenode 联系#monkeybars 获取信息,而且还有 Monkeybars 的 Google group:

http://groups.google.com/group/monkeybars Logan Barnett 关于 Monkeybars 的博客:

http://www.logustus.com 在 RubyConf 2008 上 David Knootz 的视频:

http://rubyconf2008.confreaks.com/monkeybars-easy-cross-platform-guis.html
Martin Slader 在 Ruby Manor 中使用了 Monkeybars: http://rubymanor.org/videos/gui_manor_born/
开发者可以下载 JotBot,并且请求一个免费的试用 key 来尝试商业版本的 Monkeybars 应用程序:
http://www.getjotbot.com
我们也开始将一些东西迁移到 Kenai,这个网站更加稳定,这样能够为用户更好地提供文档。 http://kenai.com/projects/monkeybars

一旦这些东西整理好,我们会很快地在 Monkeybars 主页上放出详细信息。 你也可以通过 Twitter 来联系我们:

@jamesbritt
@logan_barnett
@dkoontz
@thehappycampers

那么。你会使用什么工具来构建 JRuby 的 GUI 呢?

查看英文原文: JRuby GUI MVC Framework Monkeybars Goes 1.0

2009-02-15 09:581844
用户头像

发布了 90 篇内容, 共 36.9 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

重回铁王座!时隔5年,Quill 2.0 终于发布啦!

OpenTiny社区

前端 富文本

Anolis OS 23.1 BETA 预览版:龙芯同源异构完成,支持更多芯片厂家

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥操作系统 Anolis OS

Go-Zero微服务快速入门和最佳实践(一)

王中阳Go

Go golang 分布式 微服务 go-zero

全球首发!龙蜥社区助力 Intel SPR 加速器上云

OpenAnolis小助手

云原生 操作系统 envoy 龙蜥社区 Intel SPR

拒绝机械风,让ChatGPT像真人一样对话!

蓉蓉

ChatGPT GPT-4 GPTs

“专业敏捷教练课程” 7月6-7日 · CSP-SM认证上海线下面授周末班【晋升高阶享多重福利】

ShineScrum

大模型微调提升AI应用性能

百度开发者中心

人工智能 大模型

基础设施SIG月度动态:社区官网上线《龙蜥理事说》专题页,内核门禁提速

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥社区SIG

浪潮信息联合龙蜥社区推出 InManageBoot:让开局交付变得如此简单!

OpenAnolis小助手

运维 操作系统 龙蜥社区 InManageBoot

铝型材表面瑕疵识别-Are you OK?队-1-解决方案

阿里云天池

阿里云 算法

大数据小白的测试成长之路

京东科技开发者

南京大学×百度“星河杯”AI大模型创意校园赛正式起航

飞桨PaddlePaddle

百度 paddle BAIDU 百度飞桨 飞桨星河社区

低代码+定制物资管理:创新解决方案探析

天津汇柏科技有限公司

低代码 软件开发定制

软件测试如何选择最佳的自动化测试定位策略?

测试人

软件测试

4 月 30 日启动报名!2024 开源之夏&龙蜥社区赛题等你来挑战

OpenAnolis小助手

开源 操作系统 龙蜥社区 开源之夏

安全厂商长擎软件加入龙蜥社区,共建领先的 OS 基础设施

OpenAnolis小助手

操作系统 国产操作系统 龙蜥社区生态伙伴

张朝阳对话华为Fellow陈海波:万物智联时代,鸿蒙如何实现“换道超车”?

最新动态

记一次5分钟大模型生成物流网关多域名配置工具

京东科技开发者

我们开源啦!一键部署免费使用!Kubernetes上直接运行大数据平台!

极客天地

助力用户快速学习、使用大模型,天翼云即将上线Llama 3大模型学习机

编程猫

自动化测试定位方式那么多,应该选哪个?

霍格沃兹测试开发学社

荣获优秀共建方!开放原子开源大赛&龙蜥机密赛题决赛圆满结束

OpenAnolis小助手

操作系统 龙蜥社区 机密计算

时之鑫门窗|为什么选购门窗时推荐用十大品牌门窗

科技热闻

《龙蜥理事说》第二期对话统信软件 AI 让操作系统更智能

OpenAnolis小助手

AI 操作系统 国产操作系统 龙蜥社区

系统整容纪:责任链设计模式的应用实战(爆灯了,研发工期由45天降为1天)

京东科技开发者

鹰角网络宣布将启动鸿蒙原生应用开发

最新动态

JRuby GUI MVC框架Monkeybars 1.0发布_Java_Werner Schuster_InfoQ精选文章