尝试格里芬并爱上它

诚然,Java的Swing对于企业内部应用程序是一种被低估的技术。 我有机会为一些使用它的企业工作,我非常欣赏交付的应用程序。 当时,与贫乏的Web应用程序相比,它们的可用性要好得多(即使差距正在缩小)。 这并不是说Swing是一个银弹,远非如此。 在众多尝试中,我发现它在某些方面缺乏:

  • 像Java中的许多API一样,Swing仅提供低级API。 由开发人员决定是否创建或选择更高级别的框架。
  • 我不喜欢冗长的论点,但是在Swing的情况下,编写(和阅读)代码既长又累。
  • 最后,Swing在UI组件及其基础值之间缺乏绑定。 我知道至少有一次尝试过朝这个方向做,但是几年来它一直是固态的,可悲的是没有希望进一步发展。

狮riff发现

因此,很自然地,当我在日内瓦水罐车展上看到安德烈斯·阿尔米雷Andres Almiray )的格里芬演讲时,我感到非常震惊。 Griffon是Groovy脚本语言的框架,该框架在JVM之上运行。 简洁明了,并提供:

  • MVC概念框架
  • 通过Groovy围绕通用Java API(例如集合)包装的其他功能
  • 真正简单的双向绑定

典型的Griffon的视图代码如下所示:

application(title:'form',
  pack:true,
  locationByPlatform:true,
  iconImage:imageIcon('/griffon-icon-48x48.png').image,
  iconImages:[imageIcon('/griffon-icon-48x48.png').image,
     imageIcon('/griffon-icon-32x32.png').image,
     imageIcon('/griffon-icon-16x16.png').image]){
  borderLayout()
  panel(constraints:CENTER,border:emptyBorder(6)){
    gridLayout(rows:3,columns:2,hgap:6,vgap:6)
    label'Name:'
    textFieldcolumns:20,
      text:bind(target:model,'name',mutual:true)
    label'Last Name:'
    textFieldcolumns:20,
      text:bind(target:model,'lastName',mutual:true)
    label'Address:'
    textFieldcolumns:20,
      text:bind(target:model,'address',mutual:true)
  }
  panel(constraints:SOUTH){
    gridLayout(rows:1,cols:2,hgap:6,vgap:6)
    button('Reset',actionPerformed:controller.reset,
       enabled:bind{model.resetEnabled})
    button('Submit',actionPerformed:controller.submit,
       enabled:bind{model.submitEnabled})
  }
}

取自Github的代码

优点

Griffon提供了许多旨在提高生产力的功能:

  • Griffon不仅是一个框架,还是一个工具包套件。 例如,对于不喜欢点击的用户,可以使用命令行工具。
  • 另一方面,Griffon提供了紧密的Eclipse集成(如果您事先安装了Groovy插件
  • GroovyGriffon的文档都充满了实际示例
  • Groovy得到了SpringSource的支持,这是长期支持的象征
  • 邮件列表中的Griffon支持似乎非常好
  • 创建后,您的应用程序可以作为applet,Java Web Start或独立应用程序发布! 这太好了,难以置信!

有什么更好的

我必须承认,我是在不花时间阅读大量文档的情况下直接进入Griffon的,所以我可能缺少其中的一些知识。 尽管如此,其他情况在所有情况下均有效:

  • 用Griffon开发的应用程序具有很高的启动时间(几秒钟)。 这可能不是问题,可能是因为它使用了Groovy,但在某些情况下可能是反对Griffon的论点。
  • 我发现没有办法与Maven集成:用Maven进行构建会发现一些不可用的依赖项错误。 对于m2ec(较新的m2eclipse版本)而言,某些生命周期阶段未涵盖在内,因此无法使用。 我了解Groovy人有他们自己的构建工具( Gant ),但我们中的某些凡人仍然使用Maven😉
  • 格里芬似乎仅是安德列斯·阿尔米雷(Andres Almiray)的作品(对他而言是个荣誉),但从长远来看,它对框架的寿命存有疑问

我自己尝试

由于没有什么比经过实践证明的“自己动手做”的方法更好,因此我开发了JAR清单文件读取器的雏形。 可以在Github上找到第一个结果:欢迎Groovy和Griffon专家给我他们的反馈...并分发代码以进一步发展。

翻译自: https://blog.frankel.ch/trying-griffon-and-loving-it/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值