java程序员一定要学习Flex和BlazeDS(1)
一般来说,开发企业级web运用软件是众所周知的困难。Flex 和BlazeDS提供的不仅是更高级的工具,而且更容易扩展。开发者制造力的增长容许市场上销售的更多更快。Flex 和Flash创造了更完美的用户体味,提升了销量以及价格。
(欢迎访问“电脑街!”)一个理想的例子是博德斯图书连锁店,它最近在介绍一种新的具有“Magic Shelf”的website。
这个站点使用Flash界面来模拟翻书的感觉。博德斯书店发觉这真的可以提高流通率:“使用这种Flash仿真界面,顾客可以查看图书,DVD和 CD的封面,使用这一举措比没有体味过的顾客多62%的购买率”
理由五:Flex 是第一种用来设计UIs的语言
很多设计语言都是在事后增加了树立UIs的支持功能。特别体现在Java Swing上。因而,Swing处理一些简单事情,譬如线路数据,是非常痛苦的,要求使用特别的Swing数据模型。Swing的最大问题是你不得不在应用程序界面中挖掘很深才能有效。
Flex恰恰相反:它一开始就是为树立web UIs而设计的。就像Bruce Eckel常常说的那样,Flex是第一款为UI设计的特定语言。
所以使用Flex建立UI比使用其他方法要简单,譬如JavaServer Page(JSP),JavaServer Faces (JSF)以及Swing。数据绑定,事件句柄,元件布局还有其它的常见UI发展技术都可以被这种语言建立,乃至你仅仅把握了一小部分语言知识就可以。
理由六:拥有与Java类似的设计模型
你可以使用现有的开发Java的工具进行开发。你也可以使用包含在SDK中免费的命令行工具开发Flex运用程序,通过Adobe Flex Builder(一个Eclipse插件)或者使用最近的IntelliJ IDEA 8。
Flex提供一个状态环境,数据可以加载到客户端。编译模型与Hypertext Markup Language (HTML)设计相比更像是编译一个桌面客户端,使得任何下载Java Swing设计的人都对编译模型感到很熟悉。
Flex编译使用了一个MXML组合,一个UI markup语言,与可扩展的Markup 语言 (XML)相似,还有Adobe ActionScript和面向对象的脚本语言。这个组合使得编译Flex与编译Java相似,因为你可以使用概念非常熟悉的面向对象的方式。
理想的方法是树立你的开发环境使得Flex应用程序能够在web开发地址录中创建。使用这种方法,你不需要在每次创建后重新部署您的运用程序:一个简单的浏览器恢复功能,可以看到最后一次操作。结果是使用Flex 和BlazeDS开发相当有效。
理由七:BlazeDS可以在任何Java运用服务器上运行
BlazeDS的多个版本都是可以使用的,包括即将投入使用的包含Apache Tomcat设置的版本。在这篇文章中,我使用二进制分布,作为web档案(WAR),来显示你在运用服务器上如何进行部署。
否则你可以引用Java存档(JAR)文件,在你的项目中使用。为了获取各种各样安装BlazeDS的信息而访问BlazeDS wiki。
这个例子是在现有的项目上使用BlazeDS。你只需要在你的项目上增加JAR文件,然后你可以在应用程序内部使用BlazeDS,这允许你在任何可以部署运用程序的地方部署它。在你的项目上增加BlazeDS,完整步骤如下:
1、 找出包涵BlazeDS WAR文件 jar xvf blazeds.war
2、 复制JAR文件到你的项目lib目录:cp -R WEB-INF/lib /sodaSample。理由八:可以在现有的Java应用程序上使用
再soda的例子中,假设你想要揭露现有的soda服务以便远程的Flex运用程序可以与之链接。在现有的运用程序上创建BlazeDS的基本步骤如下:
1、 在WEB-INF/flex目录下编辑BlazeDS配置文件。
2、 在应用程序上web.xml上规定MessageBrokerServlet 以及session listener。
树立BlazeDS以后,你须要增加你的soda服务到BlazeDS远程配置文件,它允许从Flex 客户端访问soda服务。
通过规定一个目标地以及一个或者更多的数据传送渠道来实现添加。基础的AMF渠道在服务器.xml文件中被定义。通过这个定义在远程config.xml 中识别你的目标地:
< destination id="sodaService" channels="my-amf">
< properties>
< source>com.gorillalogic.sodaSample.SodaService< /source>
< /properties>
< /destination>
通过在远程配置文件中定义端口,你可以从Flex客户端访问任何一个Java服务。
