在阐述Java程序员应当学习BlazeDS的13条理由时,我以一个假想的苏打分派 系统来展示如何让已有的Java程序转变为RIA应用。通过这个例子,我同时还会 讲解到BlazeDS在已有Java应用或新建Java应用中的多种不同用法。
理由 一:开源
Flex软件开发工具箱(SDK)的核心是个开源框架,专门用来开 发、维护那些在不同浏览器、不同操作系统下界面都相同的RIA应用。Flex发布 采用的是Mozilla公共许可证(Mozilla Public License)。编译后的Flex应用 在Adobe Flash平台下运行。
BlazeDS是连接Flex和Java的索桥,是项针 对远程调用和消息传递的开源技术。在Java应用服务器上,它以servlet的形式 存在,因此可以在任何标准Java网络应用中运用它。BlazeDS以LGPL(Lesser GNU Public License)公共许可证书发布。在发布BlazeDS的同时,Adobe还公布 了AMF(ActionScript Message Format)规格说明,BlazeDS、Java和Flex客户 端间以这种简洁的二进制格式实现通信。
理由二:完善的社区支持
Flex社区非常活跃,社区贡献了大量项目。Flex.org,这个配以社区新 闻的Adobe站点几乎每天都有新的社区贡献;Yahoo!上的Flex用户组的成员也已 经超过了11000。
再比如Google Code上的Flexlib项目,已经提交了大量 的开源UI组件。Swiz和Mate项目贡献了优化事件处理的框架;还有Gorilla Logic贡献了自动化UI测试的Flex Monkeym项目。
理由三:带来广阔的就 业前景
据Adobe的Flex“传道士”——James Ward 看来,Flex高级开发员的市场需求非常大,学习Flex能让你拥有极具市场竞争力 的开发技能。
理由四:更高的业务效益回报
总体上,开发企业 web应用不是个轻松的活,这基本上是众所周知的事实。Flex和BlazeDS提供的不 仅仅是功能强大的开发工具,而且开发技术本身相对也非常简单。开发效率可以 得到大幅度的提升,产品因此可以很快推向市场。Flex和Flash带来的用户体验 也相对更有魅力,对增加流量、提高用户转化率(conversion rate)很有帮助 。
很经典的一个例子是Borders连锁书店。他们最近发布了带有“ 魔法书架”的新网站,这个网站采用Flash接口来模拟书籍借阅的过程。 Borders 发现这一模拟借阅非常明显地提到了用户转换率:“借助这个 Flash驱动的接口,用户可以浏览书籍、DVD和CD的封面,用户转换率比其他没有 此项功能的网站高出62%”。
理由五:Flex是第一个专门为创建UI 而设计的语言
大部分语言都不是在第一时间设计其对UI的支持。Java中 Swing包的实现刚好是个很好的证明。也就是这个原因,很多像捆绑数据这样的 简单动作在Swing当中的实现就非常痛苦。用 Swing最大的问题在于,要想提高 开发效率就必须要对其API了如指掌。
Flex刚好相反,它是专门为创建 web UI而设计的。正如Bruce Eckel所说,Flex是第一个针对UI开发的领域特定 语言(DSL)。用Flex构建UI比其它诸如JSP、JSF、Swing等技术简便得多。语言 本身糅合了数据绑定、事件处理、控件布局以及其它一些UI常用开发技巧,就算 对语言没有深刻的理解也不会影响开发效率。
理由六:编程风格近似于 Java
你可以继续使用现有的Java开发工具来开发Flex应用。当然也可以 采用SDK中携带的免费命令行工具,Adobe Flex Builder(一个Eclipse插件), 或最近的IntelliJ IDEA 8。
Flex提供的是一个有状态环境,在这个环境 中,数据从客户端加载。这种编程模式更像是开发桌面客户端而非HTML编程,这 种风格对于用过Java Swing编程的开发员来说应该是相当熟悉。
Flex是 MXML(类似XML的UI标记语言)和Adobe ActionScript(面向对象的解析语言) 的结合体。鉴于这种结合方式,Flex编程与Java非常相似,因为两者用的都是熟 知的面向对象的概念。
最理想的开发环境是把Flex应用创建在web部署文 件夹下。这样一来,每次更新应用之后都不需要重新部署,只要在浏览器下刷新 一下就可以了。用Flex和BlazeDS开发后,开发效率绝对比之前有很大的提升。