Rich Client Fashion(转载)+乱弹

Rich Client Fashion

    JDK1.5和C# 2.0没有让人兴奋,即使再加上EJB3.0和WebForm 2.0,都没有Rich Client的大潮让人对明年抱有期待。
    Rich Client的Fashion里,XAML和XUL是基于特定浏览器的实现,flexLaszlo是基于Flash的实现,Spring和Eclipse也各有自己的一套。不过,XAML还处在单细胞状态,而且基于.Net;XUL就需要客户安装FireFox,而且似乎规模偏小,发展的空间不大。Flex版权太贵而且目前还太多Bug;而Laszlo出身不够高贵且小命掐在MM手里。Eclipse和Spring的rich client还没有试用但估计占有市场不易。
     可见2004年末一切都各有缺点还是乱势,因此只当没事发生继续等待不是什么罪过,现在项目中强行使用只会代价巨大,而且容易选型失误。
     但还是,忍不住热了一下身,同事试用Flex的时候,经常过去插上两脚。最后同事的小项目做完,自己也了解了Rich Client的实际东西,发现预热一下自己还是很重要的,明年的RIA潮流趋势、升级资讯一定会雪片般飞来,实践过的,就能实际的分析这些资讯,懂得其中的厉害。没有动手做过的就只能浑浑噩噩的人云亦云,或者自己袖手空谈了。

Rich Client的三个代表

     综合XUL和Flex,Laszlo,一个Rich Client的方案,一定要提供下面三样东西:
     1. 表现层的控件。
        不能再依靠Html的<Table>,<Div>慢慢画控件了,如C/S程序般直接提供应用的控件标记。
 
     2. 消息处理机制
         同样W3c DOM的消息机制是用于Web Site上的,应用必须有和C/S程序差不多的消息机制,虽然和W3c的可能差异不算很大。
 
     3. 与后台交互的能力
         form submit页面刷新的交互方式被千百人怒骂,所有做过Desktop开发的同志都觉得怎么B/S下交互这么麻烦。
         而Flex很有代表性的提供了三种交互方法:
         第一种是Web Service,最标准同样也是最麻烦,最增加开发工作量的方法。
 
         第二种是Http Request,类似xmlhttp,与第一种一样是面向过程的,前后台之间传输的经常是XML格式的数据,需要与对象相互转换。好处是额外的工作量比WS少,前台直接请求后台的.do即可,可以在Rich Client和普通Web Browser方案之间切换。
 
         第三种是Remote Object,这是最OO,最贴近C/S开发模式的方法,缺点是在服务器端用的是MM自己的AMF,所以要与Spring框架或者EJB打交道,就需要一个Proxy类来JNDI lookup(EJB) 或者BeanFactory.load()(Spring)。   

RIA相关技术介绍

Java:一些相当复杂的客户端应用程序(Oracle的JDeveloper,Eclipse)都是用Java编写的,这说明可以用Java来建立几乎任何一个能够想象得到的富客户端应用程序。到目前为止,Java已经出现几年了,并且完全支持创建基于窗体的用户界面。除了Java基础类(JFC/Swing)中的用户界面组件之外,开发人员还可以使用来自于Eclipse Project的SWT工具箱和许多第三方工具箱进行开发。对于图形来说,可以采用Java 2D API--一个非常完整且非常复杂的图形API。Java还具有对XML和Web服务无人匹敌的支持能力。你可以通过一个Web浏览器使用Java插件软件,或使用Java运行时环境中较新的Java Web Start技术来部署应用程序。使用Java建立富客户端程序的主要缺陷是它的复杂性(即使对简单的窗体和图形也要求编写非常烦琐的代码)。它的优点在于Java对Web标准的全面支持,及该语言和类库的深刻内涵。 

XUL:XUL(念作"zool")是一个基于XML的用户界面语言,它来自于Mozilla的开放源码项目。它可用于建立窗体应用程序,这些应用程序不但可以在Mozilla浏览器上运行,而且也可以运行在其他描述引擎上,如Zulu(一个Flash MX组件)和Thinleys(一个Java实现)。XUL描述引擎都非常小(100K以下),它可以使用XML数据也可以生成XML数据。同Java的情况一样,XUL也有一个非常大的用户团体,这个团体有大量的开放源工具,如Theodore ThinletEditor(见“下一步”)——一个使你能够以图形化方式布局用户界面,且可以生成相应XUL的Java应用程序。XUL的一个主要缺点在于它目前还没有获得一个主要商业实体的支持。XUL最大的优点在于它与Gecko引擎的集成(打开了通向大量Web标准的大门),以及与大多数其他XML用户界面描述语言相比它是一种非常具有表达力和简洁的语言。 

Macromedia Flash和Flex:Flash是一个已经成熟的商业产品,它可以在Web网页中引入交互式的图形界面。最近经过升级后,新版本包含了建立窗体风格的应用程序的功能。尽管Flash作为一个在Web上最广泛部署的前端技术还有争议(取决于所选用的Flash Player版本),但据称已经有98%以上的桌面系统都支持Falsh。由于用来创建动画式图形的Flash工具其功能十分强大和是可视化的(与之相反其它技术要求进行低级的图形编码),所以图形设计人员使用起来十分得心应手。Flah采用的脚本语言是ActionScript--ECMAScript 1.5的一个变种,该脚本语言又被称为JavaScript。Flex产品对Flash增加了一个XML描述语言,使得可以编译用户界面,并且能够用Flash Player来随时进行描述。Flex使得传统的开发机构能更好地了解和使用Flash。Flex和Flash的最大缺点在于对XML和Web服务等标准的支持很有限,而且作为应用开发工具的环境还不大成熟。Flex和Flash的优点在于它可以很容易的用来创建复杂的动画式显示,以及可以使用第三方附件。

Oracle Forms:Oracle Forms是用来构建以数据库为中心的互联网应用系统的一个成熟的商品化产品。通过Oracle Forms,你可以使用一个输出窗体模块文件的可视化设计器创建窗体。为了便于在该设计工具外部进一步进行处理,模块文件要么采用私有的FMT格式,要么采用XML格式。这些模块文件驱动一个描述窗体的Java运行时环境。除了所有窗体的标准窗口小部件之外,还可以通过集成附加的可插入的Java组件和一些定制的JavaBean来实现更多的功能性。Oracle Forms采用的脚本语言为PL/SQL,Oracle数据库也采用同样的脚本语言。Oracle Forms的一个非常有趣的特点就是,用来建立、编辑和编译窗体模块文件的Java API--开发人员可以通过创建脚本来生成众多的窗体应用程序,或者进行全局性的改动。Oracle Forms的主要缺点是,进行Web部署需要获得Oracle应用服务器的使用许可。它的优点是,它可以与Oracle数据库和Oracle平台的其他部分(如Single Sign-On(单一登录)和Enterprise Manager(企业管理器))紧密集成,对国际化的广泛支持,以及创建以数据为中心应用程序的极高效率。 


XAML:基于Longhorn的用户界面标记语言,XAML通过XML的语法,使用微软新的基于矢量的图形库(vector-based drawing library)Avalon。

Flex的最好参考资料      

       A. 入门文档:国内的文章比较难找,都是一些基础的应用。论坛与QQ群也是少有人回复。所以建议直接从MM的官方网站上下载参考手册:
          http://www.macromedia.com/support/documentation/en/flex/
 
       B. 提高文档:依然只有MM开发者网站上的东西值得学习:
           http://www.macromedia.com/devnet/flex/
            同事语,看完Best Practices  ,对Flex有了新的认识,里面的Sample都是很好。
            同时 Christophe Coenraets 和Matt Chotin的blog也应该经常阅读
 
posted @ 2004-12-01 16:55 dannyr|一个都不能少! 阅读(4474) 评论(4)  编辑 收藏 网摘 所属分类: Flex技术

  回复  引用  查看    
#1楼 2004-12-01 17:15 | 林怜悯的Blog      
还是第一次听说flex呵呵有意思
现在我在用xaml,非常兴奋
xaml是基于.net我不认为是什么缺点
基于.net是他的一大优点罢了
至于说还处于萌芽状态,我想flex?以及其他的,也差不多是这个样子了呵呵

  回复  引用    
#2楼 2004-12-25 11:36 | hotbar [未注册用户]
http://www.bstek.com 的extra应该算是rich client的一个解决方案,不过它是零客户端的!网站上有演示的
  回复  引用    
#3楼 2004-12-25 11:40 | hotbar [未注册用户]


1 EXTRA简介
互联网的快速发展和经济的全球化使得软件已深入、广泛地渗透到人类社会的各个方面,软件系统的应用规模和复杂程度迅速扩大。同时,社会对软件的需求也与曰俱增。当前,软件生产能力己难以满足社会对软件的巨大需求,软件产业迫切需要更优良的技术与支撑环境,以提高生产能力,适应社会发展的需要。
借此契机,Extra构件平台基于对web技术的高度概括,将零件、生产线和装配运行的概念付诸实践,为各行业目前的web应用开发提供高效、快速的web应用快速开发平台。
Extra构件平台是国际上第一个基于构件为核心的开发平台,同时Extra还是目前最快的web应用开发平台。Extra基于软件构件化、标准化、人性化、智能化;开发低成本、高效化、短周期;人员低要求。
Extra构件平台能够适应软件的不断变化,使软件开发做到所改即所见,是软件开发随需应变,从而使企业的IT系统更加具有生命力。
2 EXTRA开发效果

3 EXTRA特点
1. 项目开发高效化,快速开发,短周期,提高软件开发速度500%,缩短项目开发周期50%-70%,大大降低软价开发成本,同时软件开发人员数量可以减半!
2. 完全基于B/S技术,继承C/S优点,零客户端,解决目前.net和J2ee体系下面的开发工具的缺陷
3. 融合XML技术,用户不许懂XML,就可以借助我们的开发平台,开发出XML文件
4. 构件化,完全由构件组成的第一个开发平台,国内首创!
5. 标准化,界面层和应用层以及业务层和数据库层完全分开,特别适合团队和大型项目的开发
6. 开发,智能化的界面设计而无需编写复杂的代码,设计创建复杂的交互式web应用页面快速、简便
7. 独到的结构设计,系统具有更灵活的伸缩性
8. Extra继承并改善了以事件为基础的程序开发,使用户从C/S到B/S的迁移更加平滑和简单
4 EXTRA体系结构



5 Extra开发页面分析
Extra3.0(java版本)是基于构件技术,xml驱动的,下面的jsp页面无需编写一行代码,就可以实现非常复杂的表单,下面的有些功能,难以使用静态图片表示,这种开发方式,非.net和j2ee开发方式所能够比拟的。如下图:




6 Extra Dataset与.Net Dataset对比
.Net由于dataset运行在server端的原因,在client端无法实现rich client, 即使实现,也是由应用开发商自己实现,需要编写上千行的代码来控制复杂的表单,这是因为,当client的表单达到c/s结构下面的复杂程度时,Microsoft建议采用WinForm,因为.Net 适用于开发thin client方式的应用程序,所有的数据管理都是靠dataset和datasetreader来进行管理,同时.Net的组件都是基于server端的,而对于client端的组件,只能够是非数据组件,数据组件都是server端的,这样如果在客户端对数据控件进行管理,没有一个对象来进行管理,需要用户自己来处理,这个工作量可想而知。

Extra的dataset生命周期存在于server端和client端,对于server端的管理,不仅涵盖了.Net下面的所有功能,而且其它扩展功能远远超过.Net,通过我们的开发手册,您会发现所有的extra对象都运行在一种模式下面,即s/c,包括server/client,两种方式,这样就增强了client端的数据处理能力。Extra的构件基于大型项目的需求,将各种组件进行封装。同时扩展了html的属性,如:<INPUT id="dropdown_3" attrib="editor" dataset="dataset_employee" datafield="birthday" dropdown_mode="date">, 这是.Net和J2ee下面没有的。Rich client是我们的一大特色,同时也是zero client。

由于web技术的页面刷新,导致用户和系统之间交互的效率大大降低,这势必影响到信息化应用效果,针对这种局面,Extra通过独特的Client端逻辑,在很大程度上减少页面的刷新次数,减少Client与Server的频繁通信。从而最大可能的降低页面刷新的频率,使的用户和应用系统的交互效率得到提高,对于应用中的数据主从绑定、页面之间的绑定,特别在大型基于web技术的ERP、SCM、CRM等,大量页面元素的处理时,尽显其无比优势。性能处理,采用分批下载技术,和特殊刷新机制。页面执行效果远胜于.Net

7 Extra的基本构件
虽然企业Web应用的形式多种多样,但其实各种应用之间仍然存在着许多共性。Extra正是抽象出这种共性而形成的一套产品。Extra包含了下面的一系列构件,这组构件不但使用简单而且能够满足几乎所有的Web应用的开发要求。
Dataset(记录集)
记录集是一种用于存储数据的非可视化对象。它提供了一系列方便使用的接口和功能,Extra的Dataset包含了下面的各项功能:
 提供对数据库中数据的访问接口。
 提供灵活的数据提交机制,方便的将对数据的修改更新回数据库。
 提供对数据字典的支持。
 提供各种记录级和字段级的数据校验规则。
 支持对大量数据的智能分批下载。
 支持记录集间的主从绑定、子记录实时下载。
 支持对记录的精确定位、模糊定位、过滤和排序。
 支持对StoredProcedure的调用。
 提供各种用户事件接口,以便用户自定义各种校验和提交规则。
Table(数据表格)
可与记录集进行绑定,用于现实和编辑记录集中的数据。数据表格拥有下列的主要功能:
 提供对各种数据的多样化显示,自动辨别数据类型并选择相应的现实方式。允许用户自定义数据显示方式。
 支持数据编辑功能。允许用户自定义编辑方式。
 支持各种常用热键。
 支持对统计栏的定义。
 提供各种用户事件接口,以便用户自定义各种表格特性。

图表 1 数据表格的运行效果图
Editor (编辑器)

图表 2 各种下拉框编辑器
可与记录集中的字段进行绑定,用于显示和编辑记录集中当前记录的字段值。编辑器的主要功能如下:
 提供各种表现形式,如:单行文本编辑框、多行文本编辑框、复选框、列表等。
 支持数据校验规则。
 支持mapValue。(mapValue是指利用值与显示值间的对照表,确定显示内容的技术。例如:根据逻辑值0和1显示“男”和“女”)
 支持各种下拉选单。如:静态下拉选单、mapValue选单、日历选单、SQL数据选单、模糊查询选单、记录集选单、自定义选单等。
DataPliot (数据导航条)

图表 3 数据导航工具条
数据导航条是一组可以对记录集中的记录和数据进行操作的按钮。导航条实现的功能包括:移动当前记录的一组按钮、用于对数据翻页的按钮、用于支持数据编辑的一组按钮。
DataLabel (数据标签)
可与记录集中的字段进行绑定,用于显示记录集中当前记录的字段值。同时,DataLabel也提供了用户自定义接口,用户可根据自己的需要确定DataLabel的数据显示方式。
FieldLabel (字段标签)
可与记录集中的字段进行绑定,用于显示记录集字段标题。FieldLabel不但提供了用户自定义接口,而且可以根据绑定字段的属性自动确定不同的表现形式。例如:当该字段是非空字段时,FieldLabel会自动以不同的颜色提示用户。
Tree (树状列表)
用于实现树状的数据展现形式。Extra的树状列表为了方便用户展示记录集中的数据,显现了许多特别设计的功能。Tree实现的功能包括:
 可以与多个记录集进行绑定并自动以树状的形式体现出来。
 支持对树结点的添加、删除和编辑。
 支持节点图标。包括常态图标、展开图标等在不同状态时自动切换图标的功能。
 支持右键点选和各种常用热键。
 提供完整的用户事件接口,使得对树德苏的使用可以更加灵活。

图表 4 强大的树状列表
TabPage (标签页)

图表 5 标签页效果图
用于实现类似普通视窗窗口中的标签业的构件。
Button (按钮)
用于实现含有附加功能的按钮。此按钮可与菜单进行组合绑定,并支持类似复选框的按下功能。
Menu (菜单)
可与任何一个页面可视对象进行组合,作为Popup时的菜单使用,又可与按钮进行绑定作为普通菜单使用。

图表 6 按钮和菜单

8 附件一:传统CS结构的程序开发效果:

图片来源:http://www.24ins.com
9 附件二:使用Extra 开发的BS结构的程序开发效果


  回复  引用    
#4楼 2004-12-25 11:41 | hotbar [未注册用户]


1 EXTRA简介
互联网的快速发展和经济的全球化使得软件已深入、广泛地渗透到人类社会的各个方面,软件系统的应用规模和复杂程度迅速扩大。同时,社会对软件的需求也与曰俱增。当前,软件生产能力己难以满足社会对软件的巨大需求,软件产业迫切需要更优良的技术与支撑环境,以提高生产能力,适应社会发展的需要。
借此契机,Extra构件平台基于对web技术的高度概括,将零件、生产线和装配运行的概念付诸实践,为各行业目前的web应用开发提供高效、快速的web应用快速开发平台。
Extra构件平台是国际上第一个基于构件为核心的开发平台,同时Extra还是目前最快的web应用开发平台。Extra基于软件构件化、标准化、人性化、智能化;开发低成本、高效化、短周期;人员低要求。
Extra构件平台能够适应软件的不断变化,使软件开发做到所改即所见,是软件开发随需应变,从而使企业的IT系统更加具有生命力。
2 EXTRA开发效果

3 EXTRA特点
1. 项目开发高效化,快速开发,短周期,提高软件开发速度500%,缩短项目开发周期50%-70%,大大降低软价开发成本,同时软件开发人员数量可以减半!
2. 完全基于B/S技术,继承C/S优点,零客户端,解决目前.net和J2ee体系下面的开发工具的缺陷
3. 融合XML技术,用户不许懂XML,就可以借助我们的开发平台,开发出XML文件
4. 构件化,完全由构件组成的第一个开发平台,国内首创!
5. 标准化,界面层和应用层以及业务层和数据库层完全分开,特别适合团队和大型项目的开发
6. 开发,智能化的界面设计而无需编写复杂的代码,设计创建复杂的交互式web应用页面快速、简便
7. 独到的结构设计,系统具有更灵活的伸缩性
8. Extra继承并改善了以事件为基础的程序开发,使用户从C/S到B/S的迁移更加平滑和简单
4 EXTRA体系结构



5 Extra开发页面分析
Extra3.0(java版本)是基于构件技术,xml驱动的,下面的jsp页面无需编写一行代码,就可以实现非常复杂的表单,下面的有些功能,难以使用静态图片表示,这种开发方式,非.net和j2ee开发方式所能够比拟的。如下图:




6 Extra Dataset与.Net Dataset对比
.Net由于dataset运行在server端的原因,在client端无法实现rich client, 即使实现,也是由应用开发商自己实现,需要编写上千行的代码来控制复杂的表单,这是因为,当client的表单达到c/s结构下面的复杂程度时,Microsoft建议采用WinForm,因为.Net 适用于开发thin client方式的应用程序,所有的数据管理都是靠dataset和datasetreader来进行管理,同时.Net的组件都是基于server端的,而对于client端的组件,只能够是非数据组件,数据组件都是server端的,这样如果在客户端对数据控件进行管理,没有一个对象来进行管理,需要用户自己来处理,这个工作量可想而知。

Extra的dataset生命周期存在于server端和client端,对于server端的管理,不仅涵盖了.Net下面的所有功能,而且其它扩展功能远远超过.Net,通过我们的开发手册,您会发现所有的extra对象都运行在一种模式下面,即s/c,包括server/client,两种方式,这样就增强了client端的数据处理能力。Extra的构件基于大型项目的需求,将各种组件进行封装。同时扩展了html的属性,如:<INPUT id="dropdown_3" attrib="editor" dataset="dataset_employee" datafield="birthday" dropdown_mode="date">, 这是.Net和J2ee下面没有的。Rich client是我们的一大特色,同时也是zero client。

由于web技术的页面刷新,导致用户和系统之间交互的效率大大降低,这势必影响到信息化应用效果,针对这种局面,Extra通过独特的Client端逻辑,在很大程度上减少页面的刷新次数,减少Client与Server的频繁通信。从而最大可能的降低页面刷新的频率,使的用户和应用系统的交互效率得到提高,对于应用中的数据主从绑定、页面之间的绑定,特别在大型基于web技术的ERP、SCM、CRM等,大量页面元素的处理时,尽显其无比优势。性能处理,采用分批下载技术,和特殊刷新机制。页面执行效果远胜于.Net

7 Extra的基本构件
虽然企业Web应用的形式多种多样,但其实各种应用之间仍然存在着许多共性。Extra正是抽象出这种共性而形成的一套产品。Extra包含了下面的一系列构件,这组构件不但使用简单而且能够满足几乎所有的Web应用的开发要求。
Dataset(记录集)
记录集是一种用于存储数据的非可视化对象。它提供了一系列方便使用的接口和功能,Extra的Dataset包含了下面的各项功能:
 提供对数据库中数据的访问接口。
 提供灵活的数据提交机制,方便的将对数据的修改更新回数据库。
 提供对数据字典的支持。
 提供各种记录级和字段级的数据校验规则。
 支持对大量数据的智能分批下载。
 支持记录集间的主从绑定、子记录实时下载。
 支持对记录的精确定位、模糊定位、过滤和排序。
 支持对StoredProcedure的调用。
 提供各种用户事件接口,以便用户自定义各种校验和提交规则。
Table(数据表格)
可与记录集进行绑定,用于现实和编辑记录集中的数据。数据表格拥有下列的主要功能:
 提供对各种数据的多样化显示,自动辨别数据类型并选择相应的现实方式。允许用户自定义数据显示方式。
 支持数据编辑功能。允许用户自定义编辑方式。
 支持各种常用热键。
 支持对统计栏的定义。
 提供各种用户事件接口,以便用户自定义各种表格特性。

图表 1 数据表格的运行效果图
Editor (编辑器)

图表 2 各种下拉框编辑器
可与记录集中的字段进行绑定,用于显示和编辑记录集中当前记录的字段值。编辑器的主要功能如下:
 提供各种表现形式,如:单行文本编辑框、多行文本编辑框、复选框、列表等。
 支持数据校验规则。
 支持mapValue。(mapValue是指利用值与显示值间的对照表,确定显示内容的技术。例如:根据逻辑值0和1显示“男”和“女”)
 支持各种下拉选单。如:静态下拉选单、mapValue选单、日历选单、SQL数据选单、模糊查询选单、记录集选单、自定义选单等。
DataPliot (数据导航条)

图表 3 数据导航工具条
数据导航条是一组可以对记录集中的记录和数据进行操作的按钮。导航条实现的功能包括:移动当前记录的一组按钮、用于对数据翻页的按钮、用于支持数据编辑的一组按钮。
DataLabel (数据标签)
可与记录集中的字段进行绑定,用于显示记录集中当前记录的字段值。同时,DataLabel也提供了用户自定义接口,用户可根据自己的需要确定DataLabel的数据显示方式。
FieldLabel (字段标签)
可与记录集中的字段进行绑定,用于显示记录集字段标题。FieldLabel不但提供了用户自定义接口,而且可以根据绑定字段的属性自动确定不同的表现形式。例如:当该字段是非空字段时,FieldLabel会自动以不同的颜色提示用户。
Tree (树状列表)
用于实现树状的数据展现形式。Extra的树状列表为了方便用户展示记录集中的数据,显现了许多特别设计的功能。Tree实现的功能包括:
 可以与多个记录集进行绑定并自动以树状的形式体现出来。
 支持对树结点的添加、删除和编辑。
 支持节点图标。包括常态图标、展开图标等在不同状态时自动切换图标的功能。
 支持右键点选和各种常用热键。
 提供完整的用户事件接口,使得对树德苏的使用可以更加灵活。

图表 4 强大的树状列表
TabPage (标签页)

图表 5 标签页效果图
用于实现类似普通视窗窗口中的标签业的构件。
Button (按钮)
用于实现含有附加功能的按钮。此按钮可与菜单进行组合绑定,并支持类似复选框的按下功能。
Menu (菜单)
可与任何一个页面可视对象进行组合,作为Popup时的菜单使用,又可与按钮进行绑定作为普通菜单使用。

图表 6 按钮和菜单

8 附件一:传统CS结构的程序开发效果:

9 附件二:使用Extra 开发的BS结构的程序开发效果






标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2004-12-02 08:36 编辑过
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接: