Farata Systems 于 2 月 24 日宣布开源其 Clear Toolkit Framework,这是一个使用 Adobe Flex 与 Java 开发企业级 RIA 的框架。InfoQ 有幸采访了 Farata Systems 三个合伙人之一的 Yakov Fain 一探究竟。
Fain 首先解释了创建 Clear Toolkit 的缘由:
在开发企业项目时,大家都希望减少手工编码的工作量,因此我们想要自动化一些重复性的工作。如果你是个使用数据库的 Java 程序员,就会不断编写类似的 JDBC 代码来处理结果集。我们首先着眼于 XSL 模板并搭配元数据从而基于 SQL Select 语句为后端的 Java 处理生成了完整的源代码,接下来增加了更多的模板以使用 Adobe Flex 来生成前端,这样我们现在只需花几分钟的时间就可以生成 Flex/Java CRUD 应用的代码了。与此同时,我们还为 Flex 应用创建了 Ant 脚本生成器,友好的日志器及大量增强的 Flex 组件来降低手工编码的工作量。
在被问到 Clear Toolkit 的典型使用场景及其能解决的问题时,Fain 继续说到:
首先,Clear Toolkit 可用来创建企业级的 Flex/Java 项目,接下来这些灵活的 Flex 组件就可以简化对用户修改数据的跟踪、更方便地处理数据表格与表单并自动对连接的 Adobe AIR 应用进行数据同步。我们还拥有优秀的 Web 报表工具 ClearBI,最终用户可以凭借它创建自己的报表而无需其他软件(只需一个带有 Flash Player 的 Web 浏览器即可)。我们将在不久之后发布 ClearBI。
根据 Fain 所述,当前的 Clear Toolkit 包含如下组件:
- Clear Data Builder,这是个 Eclipse 插件,可以根据 SQL 语句或 Java 数据传输对象为 BlazeDS 或 LCDS 生成 CRUD 应用。
- DTO2Fx,该插件会根据 Java 类型自动生成对应的 ActionScript 类。
- Log4Fx 是个构建于 Flex logging API 之上的 Eclipse 插件,它会自动化日志处理并且更加灵活,也更加友好。
- Fx2Ant 插件会为 Flex Builder 项目生成优化的 Ant 构建脚本。
- clear.swc 是个增强的 Flex 组件库。
他继续说到:
因为大多数的 Clear Toolkit 组件都是非常灵活的,因此他们几乎可以用在任何的 Flex 项目中。如果你只需高级的日志组件,使用 Log4Fx 就好了。如果你想要增强的数据验证类和表单处理,只需将 clear.swc 添加到项目的构建路径中即可。如果你仍在使用 SQL,请使用 Clear Data Builder 来生成 CRUD。你还可以根据 Java DTOs 生成整个 Flex 前端,包括 UI 层数据变化时与服务器之间的通信机制。对于那些由于各种原因而决定使用 Adobe 开源的服务端组件 BlazeDS 而放弃商业的 LiveCycle Data Services bundle 的用户来说,Clear Toolkit 能助他们一臂之力。我们认为 BlazeDS 是个健壮、设计良好的组件,它可以用在要求很高的企业应用中。
关于 Clear Toolkit 的开源,Fain 说到:
在过去的 2 年中,我们一直在 www.myflex.org 上免费提供 Clear Toolkit 组件。之后我们认识到,尽管公司招纳了优秀的软件工程师,但这还远远不够,凭借一己之力你无法与成百上千的开发者的智慧相抗衡。我们已经付出了大量努力让 Clear Toolkit 成为 RIA 开发的坚实平台,这样你就无需再花钱了。我们诚邀世界各地的 Flex 与 Java 开发者加入进来,为 Clear Toolkit 成为首选的开源平台而努力奋斗。
Fain 又说:
目前由于这是个开源项目,所以我只能告诉你 Farata Systems 在 2009 年的打算: - 文档化对 AIR/BlaseDS 应用的数据同步解决方案。我们已经编写好了示例应用并在即将出版的 O’Reilly 书Enterprise Development with Flex中进行了说明,但现在需要将这些内容转换为产品文档。
- 增强 Flex UI 组件以支持客户端的 PDF 生成。
- 文档化 Clear 组件库生成的类(clear.swc)。
- 开源 Web 报表工具 ClearBI。
除了 Fain 在接受 InfoQ 采访时所说的以外,他还在 InsideRIA 上给出了主要的框架组件的一个概览。对于那些使用客户端或服务端架构处理过数据同步问题的开发者来说,该框架最吸引人的地方在于它能跟踪客户端上的 Flex 更新并将其同步到 Java 服务器上。
如果熟悉 LCDS,那么你应该知道 Data Managemet Services 使用了 ChangeObject,这是一个特殊的 DTO,用来在服务端与客户端之间传播变化。我们的组件也包含了这类对象,而且它不仅可以用在 LCDS 上,也能用在 BlazeDS 上。
… DataCollection 类会自动跟踪 UI 上的所有变化并将相应的 ChangeObject 实例集合发送到服务器端。… 当用户准备将改变提交到服务器端时,下面这行会将 ChangeObject 实例集合发送到服务器端:collection.sync()。
Clear Toolkit 基于 MIT 协议,这意味着只要声明 Farata Systems 是代码的创建者,你就可以在自己的应用中使用我们的代码了。可以从 http://sourceforge.net/projects/cleartoolkit/ 下载 Clear Toolkit 3.1 最新的构建版和源代码,相关的文档、示例、论坛和 bug 跟踪也在那儿。
评论