• PowerBuilder编程新思维6.5:外传1(PowerPlume的设计与规划)


    PowerPlume(孔雀翎)开发交流群:286502392

    前言

    本来这个系列一直在鸽,直到遇到了一位大佬:

     看到大佬这么有诚意的样子,于是我可耻地同意了,之后大佬要我建群方便沟通,建了之后,为了方便群里的大佬们,我又连夜肝了这期博客。

    PowerPlume的由来

    从我写下《PB编程新思维》这个名字开始,已经过去了十年时间。在这期间,由于我的工作完全与PB无关,所以只能在业余时间心血来潮式的搞一搞。从一开始,文章完全只是一个目录,到慢慢积攒到一些心得,最后开始编写代码,写到现在内容已经跟当初预想的面目全非了。

    我的想法很简单,就是针对PowerBuilder的缺点来改进,针对优点进行强化。

    替代突出弱点:

    突出弱点:

    1. 非常匮乏且难扩展的基础库
    2. 非常原始且封闭的交互界面
    3. 非常脆弱的源代码保护机制

     替代方案:

    1. 使用脚本引擎替代扩展功能(PbniLua)
    2. 使用自绘界面替代传统界面(PbniDui)
    3. 使用原生编译替代伪码编译(PbniStl)

     这三种替代方案给PB注入了新活力,至少从一个有明显弱点、古老的工具,变成了一个比较可靠、现代的开发工具。

    升级核心价值:

    替代了弱点当然还不够,升级一下核心价值,提高PB的竞争力。

    核心价值:

    1. 成熟的所见即所得界面设计
    2. 方便的多种数据库检索更新
    3. 独特的DataWindow数据展示

     升级方案:

    1. 自动生成代码以及更换DW主题(CSS)
    2. 升级REST与BS两种三层架构(Lua/Web)
    3. 使用网页窗口丰富数据窗口(Wui)

     引入CSS,算是把PB从原始社会进化成了现代社会。引入REST接口进一步加强了与主流工具的联系,最后使用Web窗口重写DataWindow,彻底把PB与Web联系在了一起。

    废弃低效方案:

    在PowerPlume的演进过程中,对于一些有趣但价值不高的内容,进行了更改和舍弃。

    废弃方案:

    1. PowerHttpd 网页应用服务器
    2. PowerNative 手机应用开发
    3. PowerDriver 测试驱动(Selenium)

    废弃原因:

    1. PB本身的多线程功能很弱,而应用服务器对性能要求很高,与其开发低质量的应用服务器,还不如放弃,而Rest接口的引入也彻底废弃了PB应用服务器。
    2. 同样的道理,也放弃了对手机应用开发的支持。
    3. 最后,测试工具对PB的支持有限,最大的限制是不支持DW,这就限制了PB工具90%的功能了。所以一直想做一个Selenium Driver来支持PB。仔细研究之后,发现这是一个力气活,工作不复杂但很多。明明是厂商自己的责任,没理由替它累死累活。再加上AirTest这个基于图像识别的测试工具的出现,彻底打消了我的念头。

     更改方案:

    1. PowerProvider 三层服务器ADO支持
    2. PowerEngine 3D游戏引擎支持
    3. PowerReact 2JS编译器

      更改原因:

    1. 定制ADO驱动,来支持三层服务器这个方案已经有成熟产品,我就不讨论了。但PowerPlume用REST接口来替代了这个方案。
    2. 在PB的支持游戏引擎是我很早就已经研究并实现了,却一直不能落地的功能。因为开发一个界面所用的精力太大,很少人有预算来做这样的投入。所以使用Web替代了这个功能,不是Web开发的精力少了,而是可能性更多了。
    3. 而一个与PB兼容的开源2JS编译器,也只是一个想法而已,毕竟那是别人的饭碗。把PB代码转换成其它语言,需要开发的东西太多了,没有足够的吸引力。所以改为WebDW方式。

    PowerPlume的博客大纲

    第一部分 Inside 无形的枷锁

    PB实在太古老了,长久的积淀变成了沉重的包袱,像是一个无形的枷锁制约着工具的发展。

     PowerBuilder编程新思维1—扩展(Lua)

     PowerBuilder编程新思维2—嵌入(多线程)

     PowerBuilder编程新思维3—适配(GraphQL)

     第二部分 Outside 哭泣的小丑

    这是一个看脸的时代,PB无论怎么努力打扮,在别人眼中就是一个小丑。这位哭泣的小丑,怎样努力才是未来?

     PowerBuilder编程新思维4—钩挂(在DW中显示,打印)

     PowerBuilder编程新思维5—包装(用DirectUI美化界面)

     PowerBuilder编程新思维6—装饰(用最简单的方式做框架)

     第三部分 Backside 纯黑的噩梦

    安全像一个纯黑的噩梦,只给了PB开发者绝望。

     PowerBuilder编程新思维7—剥离(用CSS美化DW)

     PowerBuilder编程新思维8—克隆(ORCA有价值的用法,批量生成代码)

     PowerBuilder编程新思维9—切分(从逻辑上实现源码安全)

    第四部分 Frontside 失落的国度

     在前面,我已经竭力地展示了如何让技术升级,使用一个有接近20年历史(2003年推出的PowerBuilder 9.0)的编程工具开发具有现代感的应用程序。但是,事情到这里并没有结束,PB像一个曾经辉煌但已失落的国度,要想焕发新生,就必须回到主流的世界。

     PowerBuilder编程新思维10—增强(以DW的方式扩展WEB,PDF浏览)

     PowerBuilder编程新思维11—集成(Push实时消息推送)

     PowerBuilder编程新思维12—分享(使用Excel做报表)

     第五部分 Otherside 意外的宝藏

    记录开发过程和不起眼的,但是效果很好的创意

    PowerBuilder编程新思维6.5--外传1(PowerPlume的设计与规划)

    PowerBuilder编程新思维10.5--外传2()

    PowerBuilder编程新思维11.5--外传3()

    PowerBuilder编程新思维12.5--外传4()

    PowerBuilder编程新思维12.6--外传5()

     

    PowerPlume的后续规划

    组成部分:

    1. PbLua,内嵌脚本语言,轻量级多线程。
    2. PbDui,使用Duilib替代原生界面,美化界面控件。
    3. PbStl,使用CSS修改数据窗口,同时可防止反编译。
    4. PbWui,使用Web控件替代部分原生界面,同时支持三层模式。

    PowerPlume会作为免费框架,开放给大家使用,有条件的公司可以购买源码,会提供2年的源码更新服务。

    至于进度,我尽量吧:)

    <本节完>

  • 相关阅读:
    python制作一个塔防射箭游戏
    有两个链表a和b,设结点中包含学号、姓名。从a链表中删去与b链表中有相同 学号的那些结点。
    python实现一个简单的21点游戏
    C语音,函数padd的功能是调整pa指向的链表中结点的位置,使得所有x值为偶数的结点出现在链表的前半部,所有x值为奇数的结点出现在链表的后半部。
    scratch绘制特殊图形1
    验证哥德巴赫猜想,输出6-100之间的偶数等于两个质数之和
    写一函数check检测字符串中的左右括号数是否匹配
    C语言文件操作题,将整数1-10及其算术平方根存入文件,再读取出来显示在屏幕上
    湖南2020对口计算机32题第1、2、3小题
    基础
  • 原文地址:https://www.cnblogs.com/windfic/p/14613071.html
Copyright © 2020-2023  润新知