PowerBuilder編程新思維6.5:外傳1(PowerPlume的設計與規划)


PowerPlume(孔雀翎)開發交流群:286502392

 

<第五部分 Otherside 意外的寶藏>

秋鳳梧道:“孔雀翎並不是種武器,而是一種力量。”

“你雖然不必用它,但它卻可以帶給你信心。”

(引自古龍《七種武器》)

 

前言

本來這個系列一直在鴿,直到遇到了一位大佬:

 

 看到大佬這么有誠意的樣子,於是我可恥地同意了,之后大佬要我建群方便溝通,建了之后,為了方便群里的大佬們,我又連夜肝了這期博客。

 

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年的源碼更新服務。

至於進度,我盡量吧:)

 

<本節完>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM