PowerBuilder 11(以下简称PB)出来有一段时间了,但很多用户对PB11的到底有哪些进步还不是很清楚,由于对PB11缺乏了解和信心,目前用PB11做出像样应用的用户不多,这确实非常遗憾,这里我讲一下我对PB11的重要进步和一些不足的理解,希望能给一些还没有接触PB11或正在观望的用户一些参考意见。
PB11取得的重要进步:
1、选择对.NET的全面支持,站对了队伍
PB11之前,PB做了大量对Java的支持的工作,努力想傍上Java这个神仙,可惜Java这个神仙不食人间烟火,而搞Java的都是一帮“贵族”,强调开源和免费,对开发效率似乎不是最看重的,而且Pb先后想从PowerDynamo和Powersite中找到突破口,结果都无功而返。
PB11这次终于站对了队伍,因为微软的.NET和PB一样,都是要追求开发效率,屏蔽开发细节,让开发人员把精力专注在业务需求的解决上,从而为企业创造更高的投入产出比,而PB11站在.NET的肩膀上来做,重点在数据库业务处理上发挥优势,这次终于修成正果!
2、可以快速开发数据业务处理的B/S应用
PB11开发.NET ASPX WebForm的B/S应用已经基本成熟,PB11.2以后引入了AJAX特性,使开发出的B/S应用Postback大量减少,用户体验得到改善,从而达到完全实用状态,我们的一些Partner已经用Pb11.5开发出像样的B/S应用。
当然,Pb11开发B/S应用,首先需要明确,只适合用于数据库业务系统的开发,如果你指望用来开发网站之类的,是明显不适合的;另外,如果你想让你的B/S应用更象Web应用,可以不用PB标准的窗口方式,而改用可视化对象动态创建的方式来实现页面切换,并且用链接代替按钮等多种策略。
3、可实现客户端应用的自动安装、自动更新
PB开发的C/S应用,客户端的安装和更新往往是一个繁重的工作,而这点正是B/S应用的优势所在(免安装、免更新),而PB11现在可以借助.NET的SmartClient技术,实现C/S应用客户端的网页启动、自动下载安装,自动版本更新,这样客户端应用的维护工作量大大减少,从而让SmartClient WinForm应用同时满足既好用又好维护的双重要求。
4、可快速开发基于IIS的WebService
PB11之前要开发WebService,只有先开发一个PB NVO组件发布到EAServer中,然后把组件(必须是无状态组件)发布成WebService(EasySoap标准),因为要用EAServer来支持WebService,如果只是做小规模的应用间集成,成本就不划算。而PB11已经可以开发基于IIS+.NET FrameWork2.0的WebService,开发和部署也非常简单,因此PB11为开发应用间集成提供了一个低成本的解决方案。
5、可快速开发.NET Assembly, PB和VS.NET互操作
PB11可以通过开发PBNVO而发布成.NET Assembly(程序集),Assembly有点类似于WIN32中的DLL,但是完全OO(面向对象)的方式。PB11开发出的.NET Assembly,可以在PB(.NET Target)里面调用,也可以在VS.NET里面调用,因此非常适合用于封装通用功能、业务逻辑等。
另外,PB11里面还可以直接调用VS.NET提供的大量的系统级Assembly,或者VS.NET里面开发出的Assembly,这大大的扩充了PB的功能(比如,可以用.NET 里面的HashTable来实现Cache),而在PB11之前,只能用DLL或PBNI技术来扩充PB的功能,DLL和PBNI都是比较难用的,容易出错的方法。
6、.NET WebForm和WinForm可以访问J2EE服务器
PB11实现了从.NET访问J2EE服务器的简单方法(IIOP),从而使实现一种完美的架构成为可能:客户端采用.NET技术+服务端采用EJB技术,这是一种兼顾客户端快速开发,美观实用,和服务端稳定可靠,易于扩展双重优势的架构,通常在PB11之前,主要是通过IIOP.NET这个开源的产品来实现.NET和J2EE之间的桥梁的。
PB11尚有不足的地方:
1、.NET WebForm下JavaScript优化受限
目前Pb11.2以上版本已经引入了AJAX技术,页面的Postback大大减少了,但DataWindow的优化,需要借助编写JavaScript或对象的HTML属性来解决,但,其实还有很多的交互是可以通过JavaScript来实现的(比如,界面按钮状态控制、数据输入检查等),而这些可能的优化措施,PB11目前还没给出途径(至少没这方面的资料)。
2、.NET WebForm下不支持ActiveX控件
目前的PB11.x不支持在.NET WebForm中嵌入ActiveX控件,这就为要开发能和本机交互的Web应用造成了较大的难度,好在一般的数据库应用这方面的需求还不是很突出。
3、.NET WebForm下文件上传和下载不完善
目前PB11提供的文件上传和下载为了强调安全性,结果导致没法将上传的文件,直接通过URL地址在各用户之间进行共享以供下载,这导致了较大的麻烦,目前只有通过将上传的文件存入数据库的Blob中,然后其他用户再从Blob中取出的办法,或者通过COM+或EAServer这种具有服务器控制权限的程序来实现文件的移动存储来实现,比较繁琐;当然你也可以自己来用VS.NET重写一个文件上传和下载的功能,同样比较费事。
4、需要一个有效的开发框架来发挥出威力
PB11提供了很多很好的新特性和功能,但要发挥出这些功能和特性的威力,还有需要做相当的工作,单就一个开发新的B/S架构应用,就面临着要如何才能开发出“像样”的B/S应用呢?看起来想Web应用,而不是象C/S应用在浏览器里面跑呢?另外,.NET访问J2EE服务器虽然提供了一个实现的基础技术,但要构造出这样的应用,还有相当的路程要走。
还好有PB11.5的完美搭档PBntierBuilder3.1出现!PBntierBuilder是从2001年开始研究的,如今已经非常成熟,PBntierBuilder被Sybase公认为PB里面最完善的多层开发框架,集成、封装和发展了PB的多层分布式技术和PB11.x各项最新技术,采用PB11.5+ PBntierBuilder3.1可以开发出各种你需要的架构的应用,具体详情浏览www.yuanqitech.com 或 本博客下一篇文章“PB11.5的完美搭档:PBntierBuilder
评论