学习flex+java的十三个理由Word文档格式.docx
- 文档编号:22863762
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:20
- 大小:37.11KB
学习flex+java的十三个理由Word文档格式.docx
《学习flex+java的十三个理由Word文档格式.docx》由会员分享,可在线阅读,更多相关《学习flex+java的十三个理由Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
Yahoo!
上的Flex用户组的成员也已经超过了11000。
再比如GoogleCode上的Flexlib项目,已经提交了大量的开源UI组件。
Swiz和Mate项目贡献了优化事件处理的框架;
还有GorillaLogic贡献了自动化UI测试的FlexMonkeym项目。
理由三:
带来广阔的就业前景
据Adobe的Flex“传道士”——JamesWard看来,Flex高级开发员的市场需求非常大,学习Flex能让你拥有极具市场竞争力的开发技能。
理由四:
更高的业务效益回报
总体上,开发企业web应用不是个轻松的活,这基本上是众所周知的事实。
Flex和BlazeDS提供的不仅仅是功能强大的开发工具,而且开发技术本身相对也非常简单。
开发效率可以得到大幅度的提升,产品因此可以很快推向市场。
Flex和Flash带来的用户体验也相对更有魅力,对增加流量、提高用户转化率(conversionrate)很有帮助。
很经典的一个例子是Borders连锁书店。
他们最近发布了带有“魔法书架”的新网站,这个网站采用Flash接口来模拟书籍借阅的过程。
Borders发现这一模拟借阅非常明显地提到了用户转换率:
“借助这个Flash驱动的接口,用户可以浏览书籍、DVD和CD的封面,用户转换率比其他没有此项功能的网站高出62%”。
理由五:
Flex是第一个专门为创建UI而设计的语言
大部分语言都不是在第一时间设计其对UI的支持。
Java中Swing包的实现刚好是个很好的证明。
也就是这个原因,很多像捆绑数据这样的简单动作在Swing当中的实现就非常痛苦。
用Swing最大的问题在于,要想提高开发效率就必须要对其API了如指掌。
Flex刚好相反,它是专门为创建webUI而设计的。
正如BruceEckel所说,Flex是第一个针对UI开发的领域特定语言(DSL)。
用Flex构建UI比其它诸如JSP、JSF、Swing等技术简便得多。
语言本身糅合了数据绑定、事件处理、控件布局以及其它一些UI常用开发技巧,就算对语言没有深刻的理解也不会影响开发效率。
理由六:
编程风格近似于Java
你可以继续使用现有的Java开发工具来开发Flex应用。
当然也可以采用SDK中携带的免费命令行工具,AdobeFlexBuilder(一个Eclipse插件),或最近的IntelliJIDEA8。
Flex提供的是一个有状态环境,在这个环境中,数据从客户端加载。
这种编程模式更像是开发桌面客户端而非HTML编程,这种风格对于用过JavaSwing编程的开发员来说应该是相当熟悉。
Flex是MXML(类似XML的UI标记语言)和AdobeActionScript(面向对象的解析语言)的结合体。
鉴于这种结合方式,Flex编程与Java非常相似,因为两者用的都是熟知的面向对象的概念。
最理想的开发环境是把Flex应用创建在web部署文件夹下。
这样一来,每次更新应用之后都不需要重新部署,只要在浏览器下刷新一下就可以了。
用Flex和BlazeDS开发后,开发效率绝对比之前有很大的提升。
理由七:
BlazeDS可以在任何Java应用服务器上运行
BlazeDS目前已发布了多个版本,其中的turnkey版本还包含了为BlazeDS配置的ApacheTomcat。
本文中,我用的是二进制发布版本,其中含有一个WAR用来展示如何把应用部署到各种应用服务器上去。
不用这个WAR的话,你也可以从中提取JAR文件放到自己的项目中去。
关于安装BlazeDS的各种选项内容,可以参见BlazeDS的wiki。
这里举一个简单的例子,比方说要在已有的一个简单的苏打调配系统中应用BlazeDS。
你只要把JAR文件放到项目文件夹下,然后就可以在应用里直接用BlazeDS,可以部署到能够部署应用的任何地方。
在项目中添加BlazeDS,只需要完成下面两个步骤:
1.解压缩BlazeDSWAR文件的内容:
jarxvfblazeds.war。
2.把JAR文件都拷贝到项目的lib文件夹下:
cp-RWEB-INF/lib/sodaSample。
理由八:
可以在已有Java应用中运用
比方说这个简单的苏打调配系统,假设你想要扩展这个已开发好的服务,让其它Flex应用可以远程调用。
在现成的应用中配置BlazeDS的基本步骤有:
1.修改WEB-INF/flex文件夹下的BlazeDS配置文件
2.在该应用对应的web.xml文件里定义MessageBrokerServlet和session监听器
配置好BlazeDS之后,再把苏打调配服务添加到BlazeDS远程配置文件里,Flex客户就能远程调用了。
这个过程通过在配置文件里定义一个目的地(destination)、一个或多个信道(channel)来传输数据。
基本的AMF信道定义在services.xml文件里。
下面这段配置在remoting-config.xml里定义了目的地(destination):
<
destinationid="
sodaService"
channels="
my-amf"
>
<
properties>
<
source>
com.gorillalogic.sodaSample.SodaService<
/source>
/properties>
/destination>
通过在远程调用配置文件里定义端点(endpoint),Flex客户端就可以调用任何一个基本的Java服务。
要是想把Java数据模型也传送到Flex客户端的话,只要在ActionScript类中定义好两者间的映射:
[Bindable]
[RemoteClass(alias="
com.gorillalogic.sodaSample.SodaModel"
)]
这段代码告诉Flex,在远程调用的服务返回SodaModel的时候,把它映射到Flex的SodaModel。
本例中的Flex客户端显示的就是如何调用这个Java服务。
调用返回一个已经填写好预定信息的SodaModel:
publicfunctioncallSodaService():
void{
varsodaType:
String=type.text;
varsodaCount:
int=parseInt(cnt.text);
varflag:
Boolean=preOpen.selected;
remoteObject.getSoda(sodaType,sodaCount,flag);
}
privatefunctionresultHandler(event:
ResultEvent):
void{
varsodaModel:
SodaModel=event.resultasSodaModel;
Flex返回的结果是通用的result变量,可以直接映射到你的SodaModel。
这里我就不深入讨论怎么实现映射了,但其中值得提到的是要在编译配置里声明services-config.xml路径,像这样:
-localeen_US-services=/nsource/sodaSample/web/WEB-INF/flex/services-config.xml-context-root/
如果不添加这个路径的话,你的Flex客户端就没发找到Java服务。
同样的方式,你还能把一个对象从客户端传递回服务器端。
比如,你可以把一个空的sodamodel发回服务器(审校注:
原文这里写的是客户端,根据上下文判断这里应该是服务器端)。
理由九:
可以通过Java来扩展和修改BlazeDS
假如你想添加特殊的日志来记录苏打调配服务被调用的情况,那么你可以扩展标准的Java适配器来添加日志功能。
首先,添加一个继承了JavaAdapter的Java类:
importflex.messaging.services.remoting.adapters.JavaAdapter.
publicclassTimingJavaAdapterextendsJavaAdapter{
其次,重载invoke()方法:
publicObjectinvoke(Messagemessage){
RemotingMessageremotingMessage=(RemotingMessage)message;
Stringoperation=remotingMessage.getOperation();
Stringdestination=remotingMessage.getDestination();
Logger.info("
calling"
+operation+"
ondestination"
+destination);
Objectdata=super.invoke(message);
returndata;
这个方法中,你可以看到调用之后的操作和调用的目的地(destination)。
这种方法也能用来处理其它一些问题,比如记录向服务器发送调用需要多长时间。
理由十:
HTML和JSP也能调用BlazeDS
从HTML和JSP也能调用BlazeDS,这种调用有几种不同的实现方式,比如通过BrowserManager或fflashVarsf来实现。
Flex应用能够读取由HTML页面设置的fflashVarsf。
比方说你想要通过HTML页面来发送你的用户名和准备预定的苏打类型,你可以在HTML页面这样设置flashVars:
objectid='
SodaSample'
classid='
clsid:
D27CDB6E-AE6D-11cf-96B8-444553540000'
codebase='
height='
100%'
width='
paramname='
src'
value='
SodaSample.swf'
/>
flashVars'
username=ryan&
type=coke'
embedname='
mySwf'
src='
pluginspage='
flashVars='
/object>
然后,在Flex应用中,你可以通过读取应用参数来获取这些变量:
varusername:
String;
if(Application.application.parameters.hasOwnProperty("
username"
)){
username=Application.application.parameters.username;
理由十一:
Flex和BlazeDS的数据传输性能远胜于其它Ajax解决方案
目前使用的远程过程调用(RPC)都默认选择AMF二进制协议。
AMF是个开放的标准,而且相当快。
JamesWard曾举例比较过多种远程调用解决方案。
尽管其它Ajax技术——比如Dojo——已经能够快速处理几百行的数据,但是用Flex和BlazeDS的话可以轻松搞定成千上万行。
(请参考JamesWard'
scensus,可以了解下各种不同的RIA数据加载技术的测评。
)
理由十二:
Java客户端能够直接调用BlazeDS
最新发布的BlazeDS当中含有一个Java的AMF类,通过这个类,你可以在Java客户端直接调用BlazeDS服务器。
对于单元测试和加载测试来说,BlazeDS的这种调用方式非常实用。
理由十三:
Spring下也能用
Adobe和Spring互相联手,尝试将双方项目集成起来。
他们发布的第一个Spring–BlazeDS集成版本就向大家展示了他们的良苦用心。
SpringBean能够以远程服务的方式被调用,因此可以清除很多重复的配置文件。
更多这方面的相关信息,可以参考该项目的主页。
结论
开源的BlazeDS创建在Java基础上,无论是对新的还是已有的Java服务器项目来说都是个很好的选择。
Flex、BlazeDS技术能够提供高性能的远程通信,支持Flex和Java间的对象映射,因此是RIA开发的理想选择。
Flex和BlazeDS的开发新手,如果曾经是Java开发员的话,会发现整个开发过程效率非常高,而且很容易掌握。
Flex加BlazeDS还是开发大型Java企业应用的理想选择。
我们组开发的上个项目中,应用涉及到50多个不同的界面,而且服务器和客户端之间需要规律性地互传几千行的代码。
这类应用几乎没法通过传统的Ajax技术来实现。
但是在引入了Flex和BlazeDS之后,我们在年内就发布了第一个版本。
看,这就是这对动态组合为你的应用开发项目带来的过人之处。
阅读英文原文:
13ReasonsforJavaProgrammerstoLearnFlexandBlazeDS。
注释:
你应当对这些技术有些基本的了解。
关于BlazeDS的一些基本指南有:
“BuildingWebandDesktopApplicationswithBlazeDSandAMF”和“BlazeDS30-minutetestdrive”。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@。
也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。
∙本文所属的特别专题为RIA
∙浏览更多RIA相关内容在:
∙该专题中的其他最新内容
oDojo:
不容忽视的RIA框架
o基于AdobeAIR的社交应用开发及案例研究
27条回复
关注此讨论回复
不看好!
发表人陈建闽发表于2009年5月18日上午5时14分
Re:
不看好!
发表人李天发表于2009年5月18日上午5时25分
发表人林冲发表于2009年5月18日下午10时55分
发表人binzhang发表于2009年8月10日上午3时6分
发表人林冲发表于2009年5月18日下午10时43分
发表人林冲发表于2009年5月19日上午3时22分
发表人shenbona发表于2009年5月30日上午8时55分
发表人涛陈发表于2009年5月20日下午11时55分
不好用发表人ShineJimmy发表于2009年5月18日下午9时0分
不好用发表人林冲发表于2009年5月18日下午10时58分
看过blazeds的源代码再决定把。
发表人TTT发表于2009年5月19日上午1时10分
非常有兴趣尝试一下发表人shaostone发表于2009年5月19日上午8时56分
非常有兴趣尝试一下发表人陈建闽发表于2009年5月19日下午8时56分
maybe发表人-博文1公子发表于2009年5月19日下午10时15分
maybe发表人ZhuangJohnny发表于2009年5月20日上午12时38分
maybe发表人binzhang发表于2009年8月10日上午3时11分
flex太简单发表人wangxin发表于2009年5月26日上午3时57分
flex前景光明发表人胡顺风发表于2009年5月27日上午1时39分
Flex不看好发表人tangdaibing发表于2009年5月29日上午10时16分
说实话,说不好用的,肯定是flex完全没入门的发表人qili发表于2009年5月31日下午9时32分
Flex发表人fanfan发表于2009年6月1日下午9时44分
Flex发表人LinMagix发表于2009年6月25日上午3时21分
Flex发表人binzhang发表于2009年8月10日上午2时55分
另一个编程玩具吗发表人WangLei发表于2009年7月6日上午4时45分
基于RIAFlexFlash平台开发的进销存企业信息管理系统开发经验发表人tangusoft发表于2010年2月23日下午11时20分
基于RIAFlexFlash平台开发的进销存企业信息管理系统开发经验发表人胡元龙发表于2010年12月5日下午7时23分
基于RIAFlexFlash平台开发的进销存企业信息管理系统开发经验发表人胡元龙发表于2010年12月5日下午7时24分
按日期倒序排列
1.返回顶部
2009年5月18日上午5时14分发表人陈建闽
目前不看好,开发上不是很简便!
重复写代码!
回复
2.返回顶部
2009年5月18日上午5时25分发表人李天
不看好,企业应用基本没有用的。
。
3.返回顶部
不好用
2009年5月18日下午9时0分发表人ShineJimmy
感觉在编程方式以及实际的使用上并不友好。
4.返回顶部
2009年5月18日下午10时43分发表人林冲
重复写代码?
如果配置上的重复,我建议你去看看spring-flex这个项目,文章上也写有。
如果是代码的重复追求完全工业化的生产方式,去看看spring的mvc框架。
剩下来唯一的重复就是一个javapojo对应一个aspojo的问题。
本人觉得根本就不是一个问题。
看看dto模式再回头想这个问题吧
5.返回顶部
2009年5月18日下午10时55分发表人林冲
企业应用完全好使。
本人以前公司已经完全使用flex来做企业级开发(公司规模300人)。
因为flex,以前写js写到焦头烂额的情况已经不复存在。
做flex就像做c/s项目,地球人都知道c/s比b/s开发得快,容易。
6.返回顶部
不好用
2009年5月18日下午10时58分发表人林冲
使用任何一种新的,不同以前使用习惯的语言。
都是有阵痛的。
但想想往后的收益,你就知道这是值得的。
程序员应该都是杂学家,不单单是flex,有时间任何先进的语言工具都玩一下,pythonruby等等。
编程是一理通百理明的
7.返回顶部
2009年5月19日上午1时10分发表人TTT
写的实在是。
只是证明AMF比其它解决方案快。
比比hessian或者其它的amf或者binary解决方案吧。
8.返回顶部
2009年5月19日上午3时22分发表人林冲
写错,应该是去看看flex的mvc框架
9.返回顶部
非常有兴趣尝试一下
2009年5月19日上午8时56分发表人shaostone
非常有意思。
UI使用flex实现,后台java来做,是不是一个非常完美的组合呢?
10.返回顶部
非常有兴趣尝试一下
2009年5月19日下午8时56分发表人陈建闽
不完美!
不抗压!
11.返回顶部
maybe
2009年5月19日下午10时15分发表人-博文1公子
如果真那么强,应该搞个好IDE,目前我用了好几个版本的eclipse都装不上破flex插件的
12.返回顶部
maybe
2009年5月20日上午12时38分发表人ZhuangJohnny
你装不上就说Flex破,那我可以说你垃圾不呢?
13.返回顶部
2009年5月20日下午11时55分发表人涛陈
你先用了再说吧,什么不看好,用么没用过,乱说
14.返回顶部
flex太简单
2009年5月26日上午3时57分发表人wangxin
flex太简单,可定制性不高,不适合创建复杂界面
15.返回顶部
flex前景光明
2009年5月27日上午1时39分发表人胡顺风
就像JVM之余java,可以让java无限的发挥它的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学习 flex java 十三个 理由