使用 Xbase 定义通用的图形化视图

  • Jean-Jacques Dubray
  • 张龙

2011 年 7 月 3 日

话题:架构文化 & 方法

Xbase 是 Xtext 的新组件。其创建者 Sven Efftinge在去年曾说过

Xbase 是采用 Xtext 实现的部分编程语言,其目标是嵌入到其他编程语言及使用 Xtext 编写的领域专用语言(DSL)中并进行扩展。

通常,DSL 需要表示一些基本的行为,但这些行为如果使用纯声明方式来实现就会麻烦至极。这也是外部 DSL 相对于内部 DSL 的一个缺陷。Xbase 旨在填补这个沟壑。但 Xbase 是为 Java 开发者设计的,并且该语言也绑定到了 JVM 上。Xbase 是静态类型的,支持泛型、闭包与类型推断。在 Xbase 中,万物皆为表达式:所有内容都有返回值。

上周,Xtext 的核心提交者及 ITemis 的软件架构师 Jan Koehnlein演示了可以使用 Xbase 快速创建模型的图形化表示。

Eclipse 生态圈的大多数图形框架都提供了图形编辑器。通常,语义模型通过硬转换能够映射到其图形化表示,无论是在代码(GEF、Graphiti)中抑或是模型与代码生成器(GMF、即将发布的 Spray 框架)。

他创建了两个使用 Xbase 的 Xtext 2.0 DSL。由于 Xbase 使用了 Java 的类型系统,因此我们可以轻松导航模型来创建图形化视图。该图形使用普通的 GEF 与 Zest 布局(Eclipse Visualization Toolkit)实现。

你可以在Vimeo上阅读Xtext 团队发布的Generic graph views configured with Xtext DSLs

你认为 Xbase 是否能够填补外部 DSL 的沟壑?你打算在 MDSD 项目上使用 Xbase 么?

查看英文原文:Using Xbase to Define a Generic Graphical View

架构文化 & 方法