powerbuilder還有用么?
powerbuilder是一個圖形化的應用程序開發(fā)環(huán)境。使用powerbuilder可以很容易地開發(fā)和數(shù)據(jù)庫打交道的商業(yè)化應用軟件。powerbuilder開發(fā)的應用軟件由窗口構成,窗口中不僅可以包含按鈕、下拉列表框及單選按鈕等標準的windows控件,還可以有powerbuilder提供的特殊的控件。這些特殊控件可以使應用軟件更容易使用,使應用軟件的開發(fā)效率更高。例如,數(shù)據(jù)窗口就是powerbuilder提供的一個集成度很高的控件,使用該控件可以很方便地從數(shù)據(jù)庫中提取數(shù)據(jù)。
商業(yè)化的軟件開發(fā)要求有很好的移植性。powerbuilder既可以跨平臺開發(fā),也可以發(fā)行跨平臺軟件。例如,在windows95下開發(fā)的程序,可以不修改源程序而形成unix下的執(zhí)行文件或macintosh下的執(zhí)行文件。在開發(fā)小組中,不同成員可以使用不同的開發(fā)環(huán)境,但由于powerbuilder的支持,在不同的開發(fā)環(huán)境下看到的共享powerbuilder對象是相同的,所以仍可以同時開發(fā)同一個應用程序。
隨著internet的普及,開發(fā)internet應用的需求激增。powerbuilder8.0及時地強化了web開發(fā)功能,并提供了一些配套的開發(fā)工具,使powerbuilder程序員不用再學習其他的開發(fā)工具就能開發(fā)基于web的應用。
1.2.1畫筆
powerbuilder開發(fā)環(huán)境由一系列的畫筆(painter)組成。畫筆就是完成一定功能的工具,比如窗口畫筆定義窗口對象,用戶對象畫筆定義用戶對象,數(shù)據(jù)窗口畫筆定義數(shù)據(jù)窗口對象以及庫畫筆完成應用庫的增加、刪除和修改等。開發(fā)人員可以通過打開、新建相關對象進入到相關的畫筆中,這點和powerbuilder6.5版本以前的有所不同。在畫筆中通過簡單的鼠標操作就能設計、建立和測試相關的powerbuilder對象。畫筆中包含很多畫筆工具,用來完成該畫筆的功能。這些功能都是和具體的畫筆相關的。
如圖1-1所示是各個畫筆構成的主操作環(huán)境中的工具條,相關術語稱為powerbar,它是由很多圖形化的小圖標構成的,每個小圖標代表一種或者一類功能。將鼠標在該小圖標上停留片刻后,鼠標旁邊會顯示圖標的名稱,窗口底部的信息提示欄(microhelp)中顯示該圖標功能的詳細描述。
1.2.2事件和腳本
powerbuilder應用程序是事件驅動的。字符環(huán)境下的程序一經(jīng)運行,用戶就不能控制程序的執(zhí)行流程了。其中也有一些有限的提問,但程序的執(zhí)行流程是確定的。而powerbuilder應用程序的執(zhí)行流程是根據(jù)運行時事件的發(fā)生情況來決定的。用戶可以單擊按鈕,選擇菜單,也可以在數(shù)據(jù)窗口中輸入數(shù)據(jù),這時都會觸發(fā)相應的事件。事件什么時候觸發(fā)取決于事件的定義。powerbuilder為很多控件(control)預先定義了大量事件,這些事件的觸發(fā)時機已經(jīng)定義好了。開發(fā)人員需要掌握這些事件的觸發(fā)時機,才能決定自定義事件的觸發(fā)時機,才能知道在哪些控件的哪些事件中編寫腳本。
每個事件的發(fā)生都得滿足一定的條件,除了掌握事件的觸發(fā)時機外,還要清楚事件是在哪個(或哪些)控件上發(fā)生的。觸發(fā)條件通常是用戶的動作,當有什么動作時什么事件才發(fā)生。有些腳本也可以觸發(fā)其他事件,例如,在一個按鈕的clicked事件中打開另外一個窗口時會觸發(fā)另外一個窗口的open事件。事件是屬于特定控件的。例如,按鈕可以單擊,觸發(fā)clicked事件;而窗口上的線控件(line)的單擊就沒有什么意義,所以線就沒有clicked事件。
腳本(script)是由powerscript的命令、函數(shù)、語句及sql語言等組成的命令集合,用來響應事件,做相應的處理工作。例如,可以在窗口的打開事件中編寫腳本,在檢索數(shù)據(jù)窗口中顯示數(shù)據(jù);在編輯框中可以編寫腳本來校驗用戶的輸入數(shù)據(jù)是否符合特定的要求,比如是否是數(shù)字等。腳本和事件的關系是,腳本的執(zhí)行最終依賴于事件,沒有不通過事件的觸發(fā)就可以執(zhí)行的腳本。
1.2.3函數(shù)
powerbuilder提供了大約600個內置函數(shù),這些函數(shù)是構成腳本的基本元素。函數(shù)一般都是針對特定的對象操作的,例如,getitemstring是用來從數(shù)據(jù)窗口中讀取string類型的字段的取值的,它不能用來操作其他的對象;函數(shù)finditem是從列表框、下拉列表框、圖形列表框及圖形下拉列表框等對象中查找字符串的,不能用來從數(shù)據(jù)窗口中查找。powerbuilder是面向對象的,因此具有多態(tài)性,很多函數(shù)都有多種格式。例如,經(jīng)常用來顯示信息的函數(shù)messagebox有4種格式,系統(tǒng)會自動識別使用哪種。
程序員可以自己定義函數(shù),不僅邏輯結構清楚,方便重復調用,而且有利于程序的封裝。可以定義多個同名但不同參數(shù)的函數(shù)。自定義函數(shù)和內置函數(shù)的使用一樣,在函數(shù)的作用域中的任意腳本里都可以調用自定義函數(shù)。自定義函數(shù)還可以調用本身,以編寫遞歸程序。
1.2.4庫文件
powerbuilder對象,如菜單、窗口、數(shù)據(jù)窗口和用戶對象等都保存在庫文件中。庫文件的后綴是pbl。使用普通的編輯器無法查看其中的內容,使用powerbuilder的library畫筆可以打開它。在開發(fā)環(huán)境中,powerbuilder從庫文件中檢索所需要的對象。
一個應用中可以有多個庫文件,這時應該設置應用的搜索路徑。可以根據(jù)對象的使用頻率或者功能的不同將對象放在不同的庫中。例如,將報表的相關對象放在report.pbl庫中,將查詢相關的對象放在query.pbl中。這些不同庫文件的組織策略應根據(jù)個人開發(fā)方便和系統(tǒng)的執(zhí)行性能來確定。
1.2.5創(chuàng)建執(zhí)行文件
應用程序開發(fā)完畢后,可以使用powerbuilder提供的工具創(chuàng)建執(zhí)行文件,交付給用戶安裝盤。powerbuilder提供打包應用程序的簡單方法,方便快捷地創(chuàng)建商業(yè)化的安裝盤。安裝界面是用戶接觸應用程序的第一步,第一印象的好壞很重要,反映出開發(fā)人員對自己的客戶重視程度。無論如何,提供給用戶一個漂亮的安裝界面,這肯定是沒錯的。