昨天对WEBFORM和WEBSERVICES调用作了测试。见相应文章。http://blog.csdn.net/chengg0769/archive/2007/12/21/1957303.aspx
QQ群请加: 6539042(powerbuilder11&SQL)
鉴于目前客户对B/S的热衷和迷信,以及自身的尝试,有如下计划:
PB11-WEBFORM后续测试的问题
1.服务器端虚拟目录的操作。
2.打印问题(这个客户可能觉得很麻烦。
3.export to xls问题
4.PB11不支持的特性怎么改变编程方式
5.使得代码更简捷,避免页面回调
6.开发思路的转变
7. .NET的结合
8.一套软件是否作双版本的发行。
9.对IIS,.NET发布和管理针对客户管理员的培训问题。(比c/S发布更麻烦一点。目前C/S直连对管理员的麻烦在于安装和升级,安装建议客户管理员用远程桌面作远程安装,而升级用PB作的自动升级来满足。)
10.作一个完整的小项目转移到WEBFORM的工作。并解决出现的问题,让客户在安装C/S客户端有困难的的地方测试使用。总结经验。
11.响应速度的提升。
PB11-WEBSERVICES后续测试的问题
1.授权和安全问题
2.完整的一个小项目的移植和测试。
3.开发思路,模式的转变。
PB11新功能的学习计划:
对PB11新版本中的新功能加以学习。
框架的构建开发思路应转变到框架重用和面向对象:
由于IDE的思维惯性,很多人接触到pb,vb,delphi这样的“方便”工具,成天就是画板画界面,然后习惯性编码。而如果代码越写越多,人也越来越累。这时,再导入框架重用和面向对象的强制转变是必要的。
比如在save时,需要update()=0 ,然后提交并提示,否则回退,并提示。我们算这里代码15行。则如果一个系统有100个界面是这种编辑界面,则要重复写1500行。如果你写10个这样的软件,就需要简单重复一万多次。如果有这么多的时间,怎么不可以在有一些处理的经验以后将其封装呢。比如:
gf_editwindow_save(datawindow dt,transaction sqlcx,string message_title,string,ok_msg,string,err_msg)
每次调用时,只需要一句就可以了。
从以往的三套软件开发中,已经在框架重用,函数重用,uo自定义类(或叫对象)中大大获益,最近一个工单系统,只用两周就基本构建完毕。后续是将更多重用,或者会重复编码的地方封装作重用。如:
droplistdown通过表,datastore,datawindow,数组,文字串,ini文件等来填充。
myDropListDown.of_fill_list(string table_name,string col_name1,string col_name2);
myDropListDown.of_fill_list(string datastore_name,int col_1,int col_2);
myDropListDown.of_fill_list(string str_format); 等等。
最近学习c++和j2se进一步明确了OOP的观念。以前才入门PB时,只是一味写代码。后面写的越多,越发现重复,现在是可以开始学习封装和重用的时候了。
//---------------------------------------------------------------------------------------------------------------------------
比如:建立一个standard v-class myDropListDown,写入一个function
/*interface:
publice int of_fill_list(readonly string ls_formatted_string)
rc: 0=正常 -1=字符串为空 -2=格式不对
formatted string : "1|中国;2|美国;3|加拿大;4|澳洲;5|英国;"
为何用竖线分隔呢,因为我已经有针对下拉列表,
和列表框的遍历检查选择项的函数了。
竖线以后在listbox,ddlb中作ID的name的分隔
*/
if isnull(ls_formatted_string) then return -1
int len_str
int k
string item_str
string char_a
len_str = len(ls_formatted_string)
for k = 1 to len_str
char_a = mid(ls_formatted_string,k,1)
if char_a<>";" then
item_str +=char_a
else
this.additem(item_str)
item_str = ""
end if
next
return 0
//-----------------------------------------------------------------------------------------------------------------
则我们在调用时,只是很简单写:
ddlb_country.of_fill_list("001|中国;002|美国;003|加拿大;004|英国;005|法国;|006西班牙") 多简单。
如果你封装了引用ds来填充,那也是很简单,只要这样:
ddlb_country.of_fill_list(ds_country_condition,1,3) 看多简单。
另外在BBLB,LISTBOX也可以写好遍历查找哪些项被选择,从而返回一个array[ ]然后,对数据框可以传入array[ ]作参数,方便。
//-----------------------------------------------------------------------------------------------------------------
大量重复的代码的归类抽象,封装到自定义类里面。
对数据框的大量操作,一些可抽象的常用动作可作到一个standard-datawindow_control里面。以后使用,只要直接用就可以了。
对数据的常用操作。如insert,modify,delete,check,savaas,export-xls,print等。再作更简捷的封装。作到最小化代码。提高开发效率。(比如:每次save数据时,对update()的返回值,sqlca.sqlcode的检查,commit,rollback等都是重复的用到,如果不进行封装,真的显得开发太低级重复。比如在这个过程规定一个抽象过程checkvalid()对界面录入数据检查,实际上后面使用时,根本不用来考虑代码要怎么写,至少知道应该写checkvalid()这个过程或者忽略,封装的作用也把以前的代码编写最好的思路,方法,逻辑性甚至设计框架都整和到了一起。)
为以后开发小型的收费管理,客户管理,简单流程管理,微型行业管理软件作一些积极准备。
##另外再看看<<powerbuilder 彻底研究>>,<<pb消息机制>>等书,适当了解包括com+,automation这些。其实很多PB的技术实际上根本就没有得到运用就过时了。pb还没有找到一个像datawindow一样长盛不衰的好的方案。我们也难于找到一个学习的准则。到底学什么,不学什么。像web技术本身在企业运用方面,mis,erp等开发中开发者本身就没大的需求,根本没热衷的理由。而电子商务这些开发不是pb该干的事。
关于代码重用的话题有文写的很好。我测试过com+但ole automation没测试成功。
http://blog.csdn.net/daixf_csdn/archive/2004/11/06/170039.aspx
在现在面向对象的编程的时代,代码重用是个永远值得讨论的话题,关于PB代码的重用,不少人都有提过,不过我觉得有些观点是不适当的,如何提高PB代码的重用性,我谈谈我的看法.
首先说的应该就是如何在PB程序内部实现代码的重用.这个相信大家都比较熟悉,那就是面向对象编程的3个关键:继承,封装,多态.相信用过PB一段时间的人都熟悉如何做到这3点,继承,封装不说了,多态也可以通过函数重载的方式实现.
上面说的是在一个程序项目中如何重用代码,就是说这些代码都是源代码.那对于非原代码的已有PB代码资源如何利用呢?
最常用的应该就是如何利用PBD了.
在开发环境中包含PBD应该是最常用的方法,也就是说,将PBD库包含到PB的开发环境的Library List中,这个时候,就可以象调用pbl中的对象一样,调用PBD中的对象和函数的功能了.这个时候,PBD除了无法看源代码之外,其他方面和PBL没有什么不同,编译整个应用的时候,他们也将参与编译.
第二中应用方式,应该就是不将PBD包含到项目的Library List中,而是在程序运行的时候将PBD包含进来,使用的是PB的GetLibraryList,SetLibraryList的功能.这个方式对完全独立的PBD特别适用.
第三种方式就比较少用,那就是用PB的Automation Server,首先将PB程序编译成Automation Server的PBD,然后在其他程序用OLE对象对它进行操作.对于PB程序,调用它是没有必要的,因为完全可以用上述的其他方式调用,更加简单,效率更高.但是它的好处是这个PBD可以被VC++,VB,BCB等调用,因为OLE的支持是大部分开发工具都支持的,这样就可以将PB开发的程序重用到其他语言开发的程序中.
第四种方式比Automation Server更加先进一点,那就是用COM/COM+组件.COM/COM+组件技术将会渐渐取代OLE技术.同样COM组件可以被其他语言的程序所重用,同时COM+组件还可以实现远程调用,从而构建3层应用程序.
最后,如果你使用EAServer开发3层应用的话,可以将PB代码发布为EAServer组件来调用.
终上所述,PB的代码资源早已经不是只能被本身所利用,通过众多的方式,它能够很好的被其他语言利用,我想大家对它的片面看法也应该改改了.