论坛首页 AJAX版

Flash RIA各种方案的讨论

浏览 19074 次
该帖已经被评为精华帖
作者 正文
最后更新时间:2005-03-29
laszlo3.0b2已经解决了中文问题的。

我最近也对基于flash的RIA非常非常感兴趣。碰巧前两天看了一下laszlo,还没有时间深入去研究它。不过我对laszlo并不很看好。原因:

1、虽然号称未来是XUL类型的RIA应用的天下,但是我最近对用XML描述界面的开发效率抱有极大的怀疑。UI类型的应用程序开发的成败历来取决于IDE的“所见即所得”的特性和方便的“拖拉”功能。在这一方面,除非laszlo开发出来类似Flash的开发工具,否则不会在未来的竞争中脱颖而出。

2、flash的标准掌握在Macromedia手中。

3、laszlo使用XML描述界面,使用Javascript处理事件。我没有看到laszlo具备良好的远程调用功能支持,这对于RIA应用来说是至关重要的。

目前我考察基于flash的RIA方案,标准就是两个:

1、远程调用功能支持
2、良好的IDE支持

目前来说,Macromedia显然都是具备的,客户端的IDE加上服务器端的coldfusion,或者Flex。当然Macromedia的方案缺陷就是商业授权费用比较高昂,并且也不是开放的。

我比较看好如下方式搭建的一套基于Flash的RIA:

客户端使用Macromedia Flash设计界面;事件响应和数据绑定使用ActionScript,可以脱离flash,在Eclipse+MTASC+ Flashout环境中像Java代码一样编辑和调试;
服务端使用基于HTTP的AMF协议的开源实现OpenAMF;

目前这样的架构是我比较感兴趣并且准备尝试的。
   
最后更新时间:2005-03-30
robbin 写道
laszlo3.0b2已经解决了中文问题的。

我最近也对基于flash的RIA非常非常感兴趣。碰巧前两天看了一下laszlo,还没
有时间深入去研究它。不过我对laszlo并不很看好。原因:

1、虽然号称未来是XUL类型的RIA应用的天下,但是我最近对用XML描述界面的开发效率抱有极大的怀疑。UI类型的应用程序开发的成败历来取决于IDE的“所见即所得”的特性和方便的“拖拉”功能。在这一方面,除非laszlo开发出来类似Flash的开发工具,否则不会在未来的竞争中脱颖而出。

2、flash的标准掌握在Macromedia手中。

3、laszlo使用XML描述界面,使用Javascript处理事件。我没有看到laszlo具备良好的远程调用功能支持,这对于RIA应用来说是至关重要的。

哈哈 真是深刻啊
我对Laszlo的研究也仅限于一天啊
不过对于R老大的疑问我也试着狡辩一下
1.IDE的确是非常非常重要的部分,实际上IBM的某些人已经给出了回答,据说是支持所见即所得(我还没看过)的LZX开发。
这里是下载地址http://alphaworks.ibm.com/tech/ide4laszlo
另外想想现在JSP开发中的情况吧,各种私有TAG严重影响页面显示,没有那种工具可以完美支持,但我们现在还不是开发的很好吗。
我以为RIA出现是因为HTML交互能力太弱,替代的交互方案如JS等都不完美,如果解决这个问题,即使IDE差点又有什么问题呢,反正不会比现在情况更差。

2.这是最值得担心的问题,同意。不过现阶段flashplay都是向下兼容的,影响范围有限。

3.很强大的远程调用能力吗?有,当然无比强大,甚至可以与WEBSERVICE直接组成系统。
但如果没有的话,也不会影响我现在的使用,使用XML与后台交互数据已经足够。当然使用js的确会影响数据的交互,比如安全问题。

我的观点是瑕不掩瑜,laszlo达到了RIA的主要目的,而且实现比较完整
其他问题都是可以解决的,
哈哈,特别是开源项目。
   
0 请登录后投票
最后更新时间:2005-03-30
关于laszlo的flash标准掌握在MM手中,其实laszlo已经开始将最终生成flash的部分分离了,下一个版本应该就会支持多种输出格式了,比如SVG等等
   
0 请登录后投票
最后更新时间:2005-03-30
Laszlo的flash部分只是使用了swf构建图形的部分,并没有使用Macromedia Flash中的高级功能,如ActionScript的AMF。
Laszlo的通信,在我最近的这个项目中,我是使用javarpc和spring的controller通信的。在examples里有一个javarpc包,里边有几个例子,我的做法也是无出其右的。可以完整地返回hibernate的pojo,只要申明objectreturntype="javabean"就可以了。
比如得到一个List的User,从remotecall的ondata中可以得到一个Array,你用Debug.inspect看他,就是一个个的User,你完全可以从arr[0].username得到这个User的用户名,等等。

另外,关于IDE,开始我也报以幻想,可不可以写一个,最后发现,最多最多也只能做到FlexBuilder的水平。
Laszlo完成一件事情,可选择的写法比Flex多
所以我还是老老实实用DTD验证的方式写。还是可以提高不少效率的。
   
0 请登录后投票
最后更新时间:2005-03-30
关于IBM的laszloIDE1.2
首先,它是不支持3.0+的。也不支持eclipse3.1。也不能和tomcat插件一起用。还会使用掉你几个快捷键,比如ctrl+alt+r;其次,你必须手工编译你的java部分,如果对一个.lzx编译,会导致cpu占用99%的,而且你可能不能使用ctrl+shift+f了;再次,他会给你自动部署,当然是以一种缺乏头脑的方式,所以你必须写ant脚本自己部署。
开始的一个月,我都是使用这个东东,导致我的效率十分低下,甚至我还没有开始写laszlo程序
而后来只是用tomcat插件和XMLBuddy,我一天就能写400行lzx
   
0 请登录后投票
最后更新时间:2005-03-30
我不是觉得Flex有多好,我比较倾向的方案是:

Flash + OpenAMF

既不使用Flex,也不是laszlo,在服务器端只有一个OpenAMF的lib,这种方式对于服务器端的侵入性是最低的,和你开发普通Java Web应用完全没有区别。就是引入了OpenAMF的一个jar,同时可以最大限度利用Flash强大的AMF通讯能力。

客户端使用Macromedia Flash画界面(这个可以由美工来做),使用Eclpise+Flashout plugin来写ActionScript(界面和代码分离,美工和程序员各行其是)

这种方式比用xml editor写界面强多了。
   
0 请登录后投票
最后更新时间:2005-03-30
b051 写道
关于IBM的laszloIDE1.2
首先,它是不支持3.0+的。也不支持eclipse3.1。也不能和tomcat插件一起用。还会使用掉你几个快捷键,比如ctrl+alt+r;其次,你必须手工编译你的java部分,如果对一个.lzx编译,会导致cpu占用99%的,而且你可能不能使用ctrl+shift+f了;再次,他会给你自动部署,当然是以一种缺乏头脑的方式,所以你必须写ant脚本自己部署。
开始的一个月,我都是使用这个东东,导致我的效率十分低下,甚至我还没有开始写laszlo程序
而后来只是用tomcat插件和XMLBuddy,我一天就能写400行lzx

首先感谢豆浆老大对我某些理解的澄清
另外可不可以豆浆老大将您实施Laszlo的过程总结一下
遇到的问题 感觉的缺陷 最佳实践
我写这个帖子目的也是想共享自己的经验
谢谢
   
0 请登录后投票
最后更新时间:2005-03-30
看了一下robbin谈到的架构的介绍,我还是有两点疑问,
1、角色真的能就此分离开吗?组件上的事件该怎么分呢?onmouseover归美工,oninit归程序员?laszlo在他的文档里也给出了不同角色应该就角色熟悉的laszlo部分,粗略看了一下除了Developer以外的人应该看的东西,两两都有交集的,但是觉得还算合理。不知道这种方案在应付大型的程序的时候该怎么办
2、laszlo,flex他们的初衷也不仅是让交互更友好吧?我想,以XML描述的方式让开发简化才是更重要的目的吧。
   
0 请登录后投票
最后更新时间:2005-03-30
robbin 写道
我不是觉得Flex有多好,我比较倾向的方案是:

Flash + OpenAMF
(界面和代码分离,美工和程序员各行其是)

这种方式比用xml editor写界面强多了。

保留的赞同R老大的话
赞同的是
1.界面部分与业务代码分离
2.美工和程序员各行其是
保留的是
1.LZX考虑了定义私有界面组件, 并可以容易的进行继承
这样的方式就好像是,模块式开发方法和OO的区别,这里纯FLASH是简单的
模块式开发方法,而LZX则可以利用可定制的组件优势。这个我还没说清楚。
我想应该在第二日里面说说。
2.还是那句话即没有IDE,没有所见即所得,即使用xml editor写界面,也绝对不会比现在那种私有TAG遍布JSP的情况更差。原因很简单现在开发瓶颈在于HTML+JS这种客户端界面表现力太弱,而不在于开发速度。如果有良好的私有组件,copy & pause很快就可以构建出系统。
   
0 请登录后投票
最后更新时间:2005-03-30
flybart 写道
首先感谢豆浆老大对我某些理解的澄清
另外可不可以豆浆老大将您实施Laszlo的过程总结一下
遇到的问题 感觉的缺陷 最佳实践
我写这个帖子目的也是想共享自己的经验
谢谢

1、在eclipse里建一个tomcat project
2、把lps和WEB-INF/lps(除了work)复制到你的项目
3、设定*.lzx以XMLBuddy打开,并且对canvas和library用lzx.dtd验证(PUBLIC Id: -//Laszlo Systems, Inc.//DTD LZX 2003/05//EN
SYSTEM Id: http://xxxx/lps-3.0b2/tools/lzx.dtd)
4、打开自动编译,打开一个浏览器
   
0 请登录后投票
论坛首页 AJAX版

跳转论坛:
JavaEye推荐