用JBuilder开发BS,莫若用CBX RIA框架。

CLXBase 2009-04-27 12:21:39
http://www.firebird.net.cn/upload/forum/2009425134618.jpg
CBX RIA框架:Delphi开发BS构架/SmartClient的利器
在当今的企业计算领域,各种大型商用软件系统、办公系统层出不穷,但是呈现出一个共同的趋势,那就是逐步向互联网靠拢,以互联网为默认的运行环境。传统的Web开发,包括J2EE、 Asp.Net、PHP、Struts,乃至构架在各种Web平台上的Ajax技术,都呈现出了不同的产品特色,Web系统的用户感受(User Experience),由最初的纯html为基础的简单Post/Get为主要机理的简单Web UI,到借助JavaScript的有一定交互性(Interactive)的Web UI,到后来的Ajax技术的广泛应用,这一过程体现的大趋势,就是在Web系统中,让用户界面(UI)达到的效果,越来越逼近客户端软件达到的程度,包括:数据传输速度、交互性、界面丰富性。
Ajax是刚刚成熟应用的Web技术,代表着Web开发的较高水准,把Web应用的用户体验推向了全面后台异步传输数据的高度,完全杜绝了Web界面数据更新带来的反复刷屏。但是,在纷繁复杂的企业应用中,人们希望实现更加复杂丰富的软件界面,并且软件的使用场景对开发技术有了更苛刻的要求,使得Ajax在企业应用的很多领域,仍然显得力量不足,具体而言,体现在如下几个方面:

UI 局限于浏览器的能力范围内,很难做出超出HTML对象能力之外的界面效果,尽管一些顶尖Web技术高手,通过拼凑的方法和书写复杂的JS语句,把多个不同的HTML对象粘和在一起,一定程度的模拟出了原先只有在客户端程序中才能达到的界面效果,但是界面的友好性仍然和本地Windows应用程序有较大差距;
基于JS的Web界面无法实现较高的执行效率,毕竟在浏览器中,一切脚本都是解释执行,其执行效率自然只有编译器语言的十分之一,甚至更低,因而常规的Web技术如果用来实现客户端算法,必将效率低下;
内嵌在Web中的JavaScript脚本,不能访问本地硬盘、设备,因此也就无法实现离线数据暂存,也不可能直接操纵API实现报表打印;
Ajax的机理都是围绕着浏览器的XMLHttpRequest对象,而其数据的取得、解析都是通过复杂的JavaScript来完成的,所以,目前的各种Ajax开发包都无法做到彻底的便捷,从而需要开发人员详细的了解整个Ajax的数据处理过程;
为了弥补上述的不足,Web开发领域涌现出了Rich Internet Application(RIA)的理念,就是,系统首次运行的时候,需要下载安装一个容器环境,通过安装浏览器客户端的扩展插件来扩展浏览器的能力,進而实现常规Web界面根本无法实现的UI,做出异常复杂的Web界面。目前常见的RIA技术解决方案包括: Adobe的Flash/Flex、MS的Silverlight、Sun的Java Applet、正阳公司的Appeon、以及CBX框架。虽然都是RIA解决方案,但是这些技术方案的侧重点是不同的。Flash和 Silverlight是侧重媒体呈现的,主要侧重于页面的视觉听觉特效的表现;Java Applet则是应用于通用Web扩展开发;而Appeon、CBX则是面向商用开发和企业应用。在其中,CBX框架有着自己的鲜明特色。目前企业应用开发领域有着大量的Web程序开发的需求,非常需要适用于企业应用开发的RIA框架,可是,适用于企业开发需求的可选技术方案却少得可怜。深圳的正阳公司正是针对这个需求,开发了一套基于PowerBuilder编程环境的RIA技术构架Appeon,将强大的Data Window 搬到了Web中,使得RIA的理念在企业领域得到了很好的应用。而今天我们的CBX框架,正是针对了这种类似的应用场景,充分吸取了Appeon的长处,摈弃其短处,推出了基于Delphi 7的、但功能更为强大的企业应用领域RIA技术方案。

CBX 具体是什么呢?CBX具体而言,是一套RIA构架的开发框架和解决方案,它属于众多RIA解决方案的一种,它的价值在于,能够将Delphi开发桌面程序的技术,用来开发运行在Web/互联网的应用,同时,实现了一系列的互联网自动部署功能,并完美的内嵌在了IE中。
RIA解决方案有3大核心要素:

客户端运行容器(宿主在特定浏览器)
服务器端部署环境
开发环境
CBX是一个完备的RIA应用开发框架,它充分的具备了这三大要素,包含:浏览器ao运行容器插件;宿主在IIS的应用服务器兼部署服务器;以Delphi 7为基础扩展而来的强大开发环境。
CBX的价值在于:

能够将Delphi7开发桌面应用的强大能力搬上了浏览器,远远超越基于Html乃至Ajax技术的Web开发技术的能力范畴,它意味着:几乎所有的VCL 控件都能直接用使用在Web客户端中;几乎所有的Windows API都可以在客户端调用;客户端代码执行效率达到了C++的级别;能使用客户端电脑的所有硬件资源。
具备一个简约而高效强大的服务器容器环境,能够用Delphi Midas的开发模式开发高效率的、能够穿透防火墙、在互联网上运行的应用服务器,天然集成无状态中间层业务对象的机制,系统层次简捷健壮,充分体现了三层构架的高性能,将三层构架系统的特性发挥到了极致;
CBX 具备高度开放的访问接口,天然面向和各种Web系统交互和集成,诸如:JSP、ASP、ASP.Net、PHP乃至静态html网页,开发者不仅可以将 CBX模块自如的嵌入到纯Web系统中,而且还能通过灵活的接口和CBX对象交互,让CBX充当各种纯Web构架方案的强有力补充,弥补纯html技术能力所不能及之处。

纯粹Delphi自身的多层框架的实现,几乎都只是达到了玩具的程度,也只能做做Demo给人看,真的到了实战场合,就会暴露出完全不可行:
1)COM+虽然好,却部署困难,难于管理,无法穿透防火墙,诚然有scktsrvr.exe或httpsrvr.dll这样的转接桥程序,却会因为多出一个数据转接口模块从而品质大为下降;
2)exe 形态的DCOM的Midas Server部署起来好一些,但是其稳定性、性能却比较低下,没有object pooling,是instance per connection的方式,几乎无法应对大量客户端的场合,而且往往很难直接使用,大多是配合scktsrvr.exe,用socket的方式连接;
3)Delphi 的Web Service只能说是“权宜之计”,是稍微可用一点的Delphi的互联网解决方案。不过,相比于其他的支持Web Service的开发平台,Delphi的Web Service毫无突出之处:开发方便性和性能,都不如Asp.Net;跨平台、绿色性、成熟性,不如Java及其一大堆基于Java的 Application Server。Delphi是个高效率的语言,可是在其自身的Web Service实现上,并没有作很好的优化。
4)IntraWeb也同样是一套玩具级别的开发平台,高不成、低不就,纵然发挥到了极致,不过是和asp.net差不太多。
5)直接用ActiveForm开发Web系统,这种方法不加变通的来用的话,几乎完全不可行,如果你的系统是一大堆每个1、2M的OCX文件,这将是一件多可怕的事情:每个模块都要注册,同时每个模块更新后,打开页面要等很长时间安装这个模块。
独头蒜的Delphi就是这么一个东西:貌似有很多路可以走,但实际上每条路都走不通。不过熟悉Delphi的人都明白,Delphi的好处并非是它提供了现成的好东西,而是用它能做出好东西来。Delphi的很多思想和模式是好的,只是实现的并不很到位,比如说Midas。实现的不到位,那我们自己来实现好了。
CBX RIA框架就是这么个东西,其实是发扬了Delphi的特色,同时又把欠缺的东西补齐了:
1、采纳一个强有力的Web Server(例如Apache或IIS)直接当作应用服务器
2、发挥优势,客户端用VCL,用bpl的机制给客户端减肥
3、中间层无状态,Pooling
4、直接采用http协议通讯,天然穿透防火墙
5、热部署程序模块,解决部署的麻烦
6、用一个小exe初始化程序,来初始化浏览器,绕开浏览器安全设定的麻烦。

CBX RIA框架几乎是国产多Delphi层框架中最好的一个,同时体现SmartClient和RIA思想。
CBX RIA Demo(需要客户端初始化):http://61.128.123.88/cbx/appsvr.dll/Splash.ao
有关CBX RIA的评论:http://www.firebird.net.cn/forum_view.asp?forum_id=2& view_id=2251
刚创建的CBX RIA讨论区
http://www.firebird.net.cn/forum_list.asp?forum_id=11

CBX RIA案例:
http://www.firebird.net.cn/forum_list.asp?forum_id=12


CBX RIA QQ群
第一群:53623431(已满)
第二群:16169282(已满)
第三群:63756040
第四群:64740999(已满)
第五群:511572126
第六群:64741149
第七群:8275666

CBX提供了免费全功能的开发版,加入群后,即可询问获取。

...全文
60 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复

还没有回复,快来抢沙发~

相关推荐
发帖
Java
创建于2007-09-28

4.7w+

社区成员

Java相关技术讨论
申请成为版主
帖子事件
创建了帖子
2009-04-27 12:21
社区公告
暂无公告