前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

本人拿50分来讨论pb的优劣,请尽量列举优缺点。 - CSDN论坛 - CSDN.NET --> 首页 论坛帮助 论坛牛人 论坛地图 CSDN > CSDN论坛 > PowerBuilder > 基础类 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 bpfrom 本人拿50分来讨论pb的优劣,请尽量列举优缺点。 [问题点数:50分,结帖人bpfrom] 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 只显示楼主 收藏 bpfrom bpfrom 等级: 结帖率:100% 楼主 发表于: 2002-01-23 20:22:42 分享到: 更多 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 回复次数:28 llitcwl llitcwl 等级: 结帖率:98.31% #1 得分:35 回复于: 2002-01-23 20:47:38 这几稿是去年我在PDRIVRE上贴的,现在做一些小的修改。 对PB的正面评价----我的PB观之一 PB是一个最快速的客户机/服务器开发工具,这一点已被无数次实践证实。 PB的快速来自以下几个方面: 一:数据窗口: PowerBuilder仍然具有最强大的报表功能,只有它具有可以直接在应用程序中使用的报表生成器。PowerBuild支持Crosstab、图形报表,nested报表以及其他一些吸引人的特性。 数据窗口将报表打、录入修改功能集成在一起,画好一个数据窗口同时就完成了数据的增、删、查、改、打功能,其效率比DELPHI等提高了几倍以上。 而且由于数据窗口将数据处理生成SQL打包,PB程序员不必象一些DELPHI程序员一样进行拼将SQL的处理(DELPHI的DBEDIT,DBGRID普遍不受欢迎)。 数据窗口有PB的属性表支持,在利用建模工具生成扩展属性,画数据窗口将以10秒单位计算工作量,而且利用它可以直接在应用生成报表。 二:代码继承(PFC或自定义基类库): PB对面向对象的继承、重载支持得很早,比VB在这方面强大了很多。 利用PB的代词(this、parent等)及数据窗口对象的内在属性,PB程序员可以很容易建立通用祖先模块。 而PFC提供了大量的附加功能,如果你怕PFC太过庞大,你也可以自己写一个基类库,现在我们公司就是这么做的。 三:建模工具: PB有一个同胞兄弟POWERDESIGNER,如果大家还没用过的话,那么你将浪费很多的时间在一些重复劳动上。 PD可以将数据库的属性生成到PB的扩展属性中,并可以直接生成应用。 如果是一些基本的数据操作模块,那么,在PDM设计完成后,不用进PB,在几分钟内,应用系统就已经完成了。 四:其他: 如SQL语句的内部嵌入等 小结: 所以,一个熟练PB程序员的工作效率等于三个DELPHI程序员两个VB程序员, 在开发数据库应用时,PB是首要选择。 从其最早版本开始,Powerbuider就把应用程序开发重心放在数据窗口上。 而DW的最大作用是解决了客户界面与后台数据库之间的可视连接。 由于Pb对数据窗口的依赖性,以及数据窗口本身的自顶向下继承模型决定了PB不适于组件重用的开发环境。 所以正如<我的PB观二>所述,我对PB的CTS开发不感兴趣。 但从另一方面来看,由于DW控件与DW对象之间的独立与内在联系规律,我们可以轻而易举地建立功能重用。 其他任何一种开发工具不可能生成如PB一般丰富的通用增、 删、查、改、打模块。 这更确立了PB在开发客户机/服务器应用方面的优势。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #2 得分:0 回复于: 2002-01-23 20:49:39 一:PB的开发速度是所有开发工具中最快速的 这在我的PB观之一中已有说明,不再重复。 二:PB的执行效率是所有开发工具中最差的。 在性能方面PowerBuilder与VB、DELPHI不在同一档次上。生成DLL慢先不说,它在客户机/服务器方式下执行还很慢, 在三层开发时更慢,而在Web应用中慢得令人认为它停止运行了。 ISAPI连接不工作,使性能问题更加糟糕。7.0版与6.0版相比没有明显的性能改善。 这我想这可能是和公司的技术积累有关。VB是MS的产品,自不必说,而DELPHI是Borland公司的孩子(想想我们十年前用的TC2.0吧), PB当年推出时POWERSOFT靠着数据窗口一举成名,当时,PB甚至还不能生成DLL。而SYBASE收购POWERSOFT后,也没有在这方面进行发展,到现在我们还要牢记发布时要带着PBVMX.dll等。 三:PB的三层及WEB开发 PB提供的WEB及三层开发除JUGUAR外我都曾用它开发过项目,下面是我的一些体会: PowerBuilder的物理分布是基于数据窗口的。数据窗口运行于每个用户的工作站上,它是综合了商务服务和用户服务的物理组件, 也是每个终端用户持续使用数据库资源的接口元件。在分布式环境下,诸如数据库连接之类的资源可以通过缓冲而得到更好的利用。 但PowerBuilder并没有提供这种缓冲机制。因而随着用户数量的增加,系统的效率会越来越差。 PB的WEB开发是一个PB提供的执行模块把Web服务器生成的ISAPI、NSAPI及CGI请求映像为PowerBuilder远端过程调用, 这些额外开销影响了服务器的性能。PowerBuilder应用程序的配置包括PowerBuilder小模块,即一个启动应用的小执行体, 一个真正应用程序代码的DLL,一个支持PowerBuilder Web库的DLL以及将它们组合在一起的一个pbweb.ini文件。 PB提供的三层开发利用插入件技术可以很方便地移植到WEB上,而且可以保留几乎所的PB功能。 三层开发加上CGI技术可以很方便生成纯WEB应用(主要是指DW的重用)。以上两种方案是最简单的PBWEB方案。 在利用DW DTC生成WEB DATAWINDOWS时,由于使用技术问题,PB实际上只能完成数据窗口的制作,其他工作是POWERSITE的事了 (虽然PB8将他们集成在一起)。 在利用JUGUAR时,无法生成中文,到PB8时,这问题也没有得到改善(不知是不是我的错,反在在装好PB8时,看着JUGUAR菜单上的方块, 我想可能是失败了)。 用PowerBuilder进行Web站点开发过于繁琐。只有Pb不允许在浏览器中进行调试应用程序,相反每个功能块都必须作为单独应用程序进行测试, 然后期望它能正确运行在Web浏览器中。配置后应用程序的性能是不可知的。 另外: PowerBuilder对流程的控制比Visual Basic还要差,调试器在多组件的环境中毫无用处。PowerBuilder中的调试方法一般是先在单用户 非分布的环境中测试组件(任何语言都可做到),然后期望它可以在分布式多组件的环境下正常工作(不是好的做法)。 PowerBuilder差劲的性能决定其在开发服务器应用时无大作为。在一个快速的客户端,可以花费一定的处理器周期运行PowerBuilder脚本, 但在一个需要为几百个用户并发服务的服务器上,不可能使用PowerBuilder。 PB Web方案的健壮性是可怕的,使用ISAPI时整个Web服务器经常崩溃。甚至在我们使用原来的CGI时,偶尔也会见到PowerBuilder CGI 模块出现保护错。 所以在一些关键业务WEB应用在用PB开发完成以后,我又用DELPHI重新写了一次。 四:PB的组件开发 PowerBuilder组件只对于其他PowerBuilder应用程序有用,在使用多种语言环境中,使用这些组件所受的限制将使其他一些优点变的没有意义。 组件不能静态键入,也不能被调试,用户只能在单独安装了PowerBuilder的机器上使用这些组件。 所以我对PB的CTS开发一直不感兴趣。 五:PB与其他技术的集成 PB与其他技术的集成一直不好。 先说API调用,在PB中没有已定义的WINDOWSAPI结构、枚举,不能定义嵌套结构,不能使用回调函数。 这在使用一些WINDOWSAPI时问题还不是很大,但在进行一些与硬件产品有关的开发时,那些厂商提供的SDK五花八门,PB就无能为力了。 再说OLE调用,在PB中没有对OLE语法的检查及提示,一切只是摸石头过河,还经常出错。 六:PB的技术前景 PB的发展到了一个关键时候,在现在三层技术及WEB开发渐成气候,面向对象设计成为潮流的时候,我们发现,SYBASE做得不能让我们满意。 如第三点所说的三层模式下的些缺点,PB不是一个好的三层开发工具。 在建模理论方面以前PD6对PB快速开发支持得很好,但从PD7以后,PD不能直接生成PB的数据窗口及应用, 只能从所谓面向对象设计原理出发生成USEROBJECT,功能弱地根本不能升级。 而面向对象设计中PB的数据窗口定位 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #3 得分:0 回复于: 2002-01-23 20:51:33 PB程序员的前途----我的PB观之三 一:PB程序员仍有价值 如我的PB观之一、二所说,PB真正的价值在快速开发客户机/服务器应用,而这些就已经能应付目前国内70%的项目。 所以我相信,只要能熟练掌握,并能发挥出PB的快速优势,那么,任何一个公司都会需要这样的程序员。 (如有想来福州工作的PB程序员可以和我联系weilong_chen@21cn.com) 比如说我们公司,所做的项目还是以定制软件为主,在这种情况下,PB是一个极具竞争力的工具,从公司角度考虑, 能快速完成项目是根本目的。项目开发周期承诺甚至影响到项目的获得。 二:PB程序员应注意的问题 PB的学习应该是一个扎实的过程,建议读一本全面介绍PB的书,这样你会更理解PB能做什么,又该如何实现。这是做一个PB 程序员必由之路。因此三天可以使用PB,但要真正精通一定是一个漫长的过程。 作为一名公司负责人,我可以更关注项目的执行,但是作为一名程序员,应更关注知识的全面化。所以在了解PB的同时, PB程序员还应注意以下几方面能力的培养: 1:数据库特别是SQL语句的理解。这是所有数据库开发人员应具备的基本素质。如果你只是利用PB进行数据操作而不 去学习SQL语句,那么有一天公司让你进行一个ASP开发或是转向其他工具,你会发现你突然变得如此困难。 2:建模工具的使用。建模工具对规范化软件设计有着非常重要的意义。推荐使用POWERDESIGNER,因为PD与PB在APPMODEL结合 地不错(指PD6),而这也是所有数据库开发的必由之路。 三:PB程序员应补充的知识 我发现一些PB程序员的知识面过于狭窄,离开C/S模式就无法工作,这是非常危险的。即使是PB自己也在不断进步,哪一天结束学习,就意味着结束了你的程序员生涯(虽然这未必是坏事)。 三层开发:虽然如第二篇所说,PB的三层开发存在许多问题,但在低负载情况下还是可以支撑的,而且对PB程序员来说 实现PB的三层开发一点也不困难 (不一定要看一些书上说的方法,可以考虑制作一个通用库,那么开发三层和两层在开发方法上基本没有区别,这些将在后续文章中进行介绍)。 WEB开发:PB的WEB开发比较可行的方法我个人认为是插入件技术+三层(胖客户机模式)和WEBPB(瘦客户机模式),开发 模式和三层结构差不多。这点高辉推荐使用SYBASE的EAS方案,我个人认为从技术上SYBASE准备不够(BUG太多),而且作为PB的C/S程序员 移植成本太大(那些除了DW基本上都与原来的PB没有太大的联系)。 花同样的时间,你完全可以了解MS的ASP、.NET。(这也是我最近转到CSDN的原因) 最后愿大家都有好心情。(全文完) 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 tangjianhua tangjianhua 等级: 结帖率:100% #4 得分:0 回复于: 2002-01-23 20:53:03 我本来想说几句,现在没话了 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 ferbruary ferbruary 等级: 结帖率:100% #5 得分:0 回复于: 2002-01-23 21:01:35 :) 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #6 得分:0 回复于: 2002-01-24 03:15:11 怎么都没人呢?我也睡了.... 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 fallstone fallstone 等级: 结帖率:100% #7 得分:0 回复于: 2002-01-24 08:32:03 我在看啊。好长,也蛮有意思。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 fancyd fancyd 等级: 结帖率:100% #8 得分:0 回复于: 2002-01-24 09:01:33 agree 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 byfq byfq 等级: 结帖率:100% #9 得分:0 回复于: 2002-01-24 09:17:07 说的不错 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 bpfrom bpfrom 等级: 结帖率:100% #10 得分:0 回复于: 2002-01-24 09:54:29 llitcwl(中国龙) ,说的非常好,倍感受益 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 Dreamaster Dreamaster 等级: 结帖率:100% #11 得分:0 回复于: 2002-01-24 10:53:19 pb三层效率不好吗?我70客户端,很快啊 我用 com+ 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 kkbgp kkbgp 等级: 结帖率:98.53% #12 得分:1 回复于: 2002-01-24 11:25:12 我个人认为pb好象不是很好,只不过上了贼船下不了了,公司很多系统都是用pb做的 不过好象pb入门起来还是比较快的 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #13 得分:0 回复于: 2002-01-24 11:32:40 to:Dreamaster(数字化生产队) 用PB就不要计较效率了,PB的效率不可能高到哪去。你的COM+用什么做组件服务器?说说你是怎么做的吧。稳定性好吗? 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 newskysoft newskysoft 等级: 结帖率:99.16% #14 得分:1 回复于: 2002-01-24 11:53:03 to: llitcwl 佩服佩服,这是迄今为止我所见到的对pb分析最深刻的一篇文章,大家交个朋友吧,我在广州 我的联系方式:newskysoft@163.com(有人反映这个email无效,实际上是由于163的性能问题造成的,多发几次就好了) 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #15 得分:0 回复于: 2002-01-24 11:56:19 to:newskysoft 我的邮箱:weilong_chen@21cn.com,chjcwl@pub5.fz.fj.cn 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 newskysoft newskysoft 等级: 结帖率:99.16% #16 得分:1 回复于: 2002-01-24 12:06:37 to:llitcwl 基本上我的开发模式和你一样,pb+pd+自己的基类 -> 两层的数据库应用程序,不过我不用pd生成代码。只要生成dw后,增、删、存、改、查、统计、打印等功能就可以从基类直接继承了。3层和web开发我从不用pb,实际上压根没考虑过pb的解决方案,一个系统能上到3层和web开发本身就对性能有很高的要求,性能奇差的pb当然不能被大家所采用(实际上我对sybase的技术能力有很大的怀疑)。而且在从简单的操作功能重用到业务逻辑重用的过程中dw是个鸡肋,丢也不是不丢也不是,这方面pb再也显不出优势了,所以只好另寻解决方案了。 当然做项目PB还是挺不错的。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #17 得分:1 回复于: 2002-01-24 12:11:59 to:newskysoft 广州好地方,我在福州,福建市场太小了。但现在去不了,公司在这,只能等我的公司发展吧。:-) 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 newskysoft newskysoft 等级: 结帖率:99.16% #18 得分:1 回复于: 2002-01-24 12:13:48 to:llitcwl 英雄不论出处,好公司迟早会做全国市场! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #19 得分:1 回复于: 2002-01-24 12:25:51 to:newskysoft 谢谢!!但是原始积累太困难了,没有很高利润支撑,老长不大。我现在开始理解马克思的资本论了.....:-) 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 smartdraw smartdraw 等级: 结帖率:100% #20 得分:1 回复于: 2002-01-24 12:51:39 ■■llitcwl(中国龙) ■■ 有见地,和你聊聊, qq:8621265 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 pn pn 等级: 结帖率:100% #21 得分:1 回复于: 2002-01-24 12:56:51 用什么语言编程并不是最重要的,关键是要有想法! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 ylg007 ylg007 等级: 结帖率:98.75% #22 得分:1 回复于: 2002-01-24 13:01:37 受教育。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #23 得分:1 回复于: 2002-01-24 13:11:10 smartdraw(修炼): sorry ,我没有QQ,看来不去搞一个是不行的了....:-) 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 liuchunyan44 liuchunyan44 等级: 结帖率:100% #24 得分:1 回复于: 2002-01-24 13:41:40 to:llitcwl(中国龙) 你的见地很好,我很有同感。不过你可不可以帮我把那个问题解决。就是我前两天的那个贴子,还没有解决,实在没有办法,我现在只好把它又放到PB7中运行了。(因为这个星期,客户就要用这个系统。)但是我仍然觉得PB8肯定比PB7好用。对于那个问题,我认为应该是某个地方的属性或是什么没有设对,但我试了好多次,例如SETREDRAW,可是还是不行。同样的程序,我在PB7下运行没有问题。还有这是不是PB8的BUG。 我的问题是:datawindow的TAB值设修改完后,再修改回来为什么数据窗口的某一行某一列仍能够获得焦点。即编辑框仍在数据窗口内,用retrieve()进行重新检索仍然没有改变, 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 liuchunyan44 liuchunyan44 等级: 结帖率:100% #25 得分:1 回复于: 2002-01-24 13:50:40 可以给我发emdil:liuchunyan44@163.com 如有解决方案,请与我联系。谢谢! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #26 得分:1 回复于: 2002-01-24 14:52:37 to:liuchunyan44(笨笨) 如果PB7中没问题那肯定是PB8的BUG,不过你不一定设TAB,COLUMN还有EDIT.DISPLAY ONLY,PROTECT两个属性可以作录入保护的,去试试吧: dw_1.Object.<Columnname>.Edit.DisplayOnly=1 dw_1.Object.<Columnname>.Protect=1 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 llitcwl llitcwl 等级: 结帖率:98.31% #27 得分:1 回复于: 2002-01-24 21:24:10 to:liuchunyan44(笨笨) 我试了好象都没问题啊 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 programbcb programbcb 等级: 结帖率:100% #28 得分:1 回复于: 2002-01-25 00:33:09 错误最是难免的,你的程序就没有BUG吗, 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 写出你眼中的IE11 赢取新年好礼! 勇敢写出你的爱 赢莫文蔚签名大礼 2014年4月微软MVP申请开始了! 陈勇- 敏捷开发现状及发展之路 CSDN高校俱乐部 高校全新改版邀你来学习和挑战 本帖子已过去太久远了,不再提供回复功能。 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace [关闭] [关闭]