PowerBuilder 11 (以下简称 PB )出来有一段时间了,但很多用户对 PB11 的到底有哪些进步还不是很清楚,由于对 PB11 缺乏了解和信心,目前用 PB11 做出像样应用的用户不多,这确实非常遗憾,这里我讲一下我对 PB11 的重要进步和一些不足的理解,希望能给一些还没有接触 PB11 或正在观望的用户一些参考意见。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

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<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3.1