- 相關(guān)推薦
論Delphi開發(fā)商品化軟件的優(yōu)點
1995年10月,當我們在考慮選擇哪種開發(fā)工具來開發(fā)新的Windows版本企業(yè)管理軟件時,有很多意見:VC++ 2.0,BC++ 4.5,VB 4.0,PB 4.0,F(xiàn)oxpro 2.5 for Windows和Delphi C/S。 由于以前我們的全部 DOS和Windows產(chǎn)品全是由Borland C++編寫的,徹底感覺過C++編寫大型應(yīng)用軟件的優(yōu)點和缺點---能解決 所有問題但投入代價太高!所以我們決定拋棄C++,另外選擇。為鄭重起見,我和幾個主力開發(fā)人員一起測試了其余的開發(fā)工具,最后幾乎全部決定采用一個很新的工具Delphi 1.0 C/S,當時考慮的因素如下:1.Delphi是唯一真正的編譯語言。由于大型通用軟件的速度要求較高,經(jīng)驗和測試表明PB,VB,Foxpro編寫的大程序較慢,Delphi的程序開發(fā)和運行時都很快。
2.Delphi C/S支持單機的dBase,Paradox數(shù)據(jù)庫和流行的關(guān)系數(shù)據(jù)庫,如Oracle,Sybase,MS SQL Server等。這樣,最后的系統(tǒng)可以在單機、Netware網(wǎng)絡(luò)文件共享方式和C/S條件下運行,擴大了企業(yè)使用范圍。
3.Delphi的Pascal語言是和C++是幾乎相同的面向?qū)ο笳Z言,非常好,習(xí)慣了C++OO 編程的高級C++程序員很容易接受。而且,Borland的Pascal一直非常好。
4.Delphi C/S有全部構(gòu)件的Source,可以在需要的時候修改和增加構(gòu)件。
現(xiàn)在,我們完成了一套龐大的產(chǎn)品"天心企業(yè)全能管理系統(tǒng)",是一套包含企業(yè)的財務(wù)管理、倉庫管理、銷售管理、應(yīng)收應(yīng)付帳款管理、報表系統(tǒng)、成本核算、生產(chǎn)管理、商場POS前后臺業(yè)務(wù)處理、工資考勤管理和結(jié)合Internet/Intranet的公文管理、報表查詢的完整系統(tǒng)。它是32位的應(yīng)用,運行于英文和簡體、繁體Windows 95/NT上,后臺支持各種數(shù)據(jù)庫連接,包括NT、95、Netware和Unix環(huán)境下的MS SQL Server、Oracle、Sybase、Informix、IBM DB/2、 Interbase、 Access、 Foxpro等。 系統(tǒng)規(guī)模龐大, 14M的源代碼由600多個Pascal文件和接近400個DFM文件構(gòu)成,包含自己開發(fā)和購買的40多個Delphi構(gòu)件以及4個Active X(OCX)構(gòu)件。
如此大規(guī)模的開發(fā)的順利完成,經(jīng)歷從Delphi 1.0 C/S升級到2.0 ,2.01C/S,使我們對Delphi 2.01 C/S Suite版本有了非常徹底的了解,下面就幾個比較突出的優(yōu)點談?wù)勎覀兊母惺堋?br />
1.幾乎完美的面向?qū)ο笳Z言和技術(shù)。
Delphi1.0的面向?qū)ο笠呀?jīng)非常徹底,但2.0更好,增加了可視的Form的繼承。這大大方便了類似數(shù)據(jù)輸入界面的管理,比如收款錄入和付款錄入界面,很多動作相同,于是可以先構(gòu)造一個Form作為基類,繼承下去兩個甚至多個界面,相同動作寫于基類中,不同的編寫于子類中。由于所有函數(shù)支持"虛函數(shù)"特性,對程序編寫和維護非常方便,大量類似的報表也采用了此技術(shù)。
考慮到系統(tǒng)中有大量的數(shù)據(jù)錄入動作,我們編寫了一個構(gòu)件,叫DBKey,專門解決界面數(shù)據(jù)和數(shù)據(jù)庫之間的動作。這樣,程序員只要考慮用戶輸入數(shù)據(jù)的正確性和關(guān)系,而不用考慮數(shù)據(jù)如何存入數(shù)據(jù)庫中和數(shù)據(jù)瀏覽、移動時的細節(jié)。如果數(shù)據(jù)進入數(shù)據(jù)庫時的請求出錯,構(gòu)件會自動Rollback還原到錄入狀態(tài),給出提示,使所有畫面的處理動作一致。每個數(shù)據(jù)錄入界面上都使用DBKey,還實現(xiàn)了很多細節(jié)的管理動作和打印動作。在輸入界面完成后,只要修改和增加DBKey的功能,全部界面都具有了相同功能。比如,我們的表單打印輸出就是在全部錄入界面完成后,才加入在構(gòu)件中的,于是全部界面都有了漂亮一致的打印輸出功能。
由于每個企業(yè)對報表輸出的數(shù)據(jù)要求都可能不一致,我們的報表輸出的也采用了一個專用構(gòu)件,程序員只要將需要的數(shù)據(jù)提交出來到一個臨時數(shù)據(jù)庫中就可以了。以后對數(shù)據(jù)的小計、合計、排序、增加自定義計算欄位、調(diào)整欄位順序、報表打印樣式、字體設(shè)計和將數(shù)據(jù)轉(zhuǎn)出為各種dbf,txt,Word,Excel文件或發(fā)電子郵件、傳真等功能都統(tǒng)一由構(gòu)件實現(xiàn)。這樣,使用戶的使用感覺非常一致;而我們的維護工作也變得非常簡單。
Delphi本身提供了一個很好的DBGrid,但我們在實際應(yīng)用中,發(fā)現(xiàn)缺少一個中國人很常用的雙層表頭功能,比如上層表頭為工資,下層為基本工資、加班工資、房屋補貼等。于是,我們繼承DBGrid派生了一個新的類,只編寫了200多行程序,就實現(xiàn)了此功能。
Delphi的對象技術(shù)還幫助我們完成了兩個高難度的工作:多語言支持和類似于Windows 95的桌面和菜單管理。我們的軟件可以自動和運行期間人工調(diào)整顯示的語言:大陸的GB碼、港臺的BIG5碼和英文,為外資企業(yè)提供了方便。我們的軟件由于功能很多,一般用戶可能不會全部使用,也有可能希望更改表示功能的桌面和圖標,重新根據(jù)部門安排和調(diào)整工作圖標,于是我們又編寫了一個構(gòu)件能將用戶重新設(shè)計的桌面、菜單保存起來,并對應(yīng)系統(tǒng)的具體功能。這樣,我們的系統(tǒng)就可以根據(jù)用戶的需求,隨意的修改和組合,可復(fù)雜也可以簡單。這樣的功能,用別的RAD工具實現(xiàn)起來就會非常困難。
2.完善的數(shù)據(jù)處理能力。
Delphi 2.0中,增加了Data Modules的概念,可以將數(shù)據(jù)包裝在一個模塊中,在系統(tǒng)啟動時或空閑時 將它打開,這樣,所有使用這些Table的模塊都可以公用它,避免重復(fù)打開和關(guān)閉。并且,由于所有數(shù)據(jù)Table位于一個模塊中,非常便于管理維護和遷移升級。
BDE的別名機制,使數(shù)據(jù)庫遷移變得非常容易,從Desktop轉(zhuǎn)為Client/Server只要改變和設(shè)置好別名就可以了。BDE本身附帶有Oracle,Sybase,MS SQLServer,Interbase和dBase,Paradox 的驅(qū)動 程序 ,可以直接連接上述數(shù)據(jù)庫,BDE 3.5又增加了Informix和IBM DB2的支持。通過對ODBC的支持, 又可以連接所有提供ODBC驅(qū)動的關(guān)系數(shù)據(jù)庫。Delphi提供了一個函數(shù),叫ISSQLBased,用于判斷當前數(shù)據(jù)庫是否是基于SQL數(shù)據(jù)庫的,為特別的需求提供了判斷方
法。
Delphi提供了非常方便的工具SQL Explorer,可以快速瀏覽各種數(shù)據(jù)庫服務(wù)器上的資料,如stored procedure等。另外一個工具是SQLMonitor,可以測試和優(yōu)化SQL查詢。還提供了一個數(shù)據(jù)搬遷工具,可以將數(shù)據(jù)從一個地點全部或部分搬遷到另外一種數(shù)據(jù)庫中。
BDE中,可以針對不同關(guān)系數(shù)據(jù)庫設(shè)置大量的相關(guān)參數(shù),調(diào)節(jié)處理性能。更提供了帶緩存的更新動作CachedUpdate,大大提高了交易處理能力,這樣,可以將多筆資料錄入修改放在緩存中,確認后,再一次性的更新數(shù)據(jù)庫。這個功能大大減輕了程序員保存臨時數(shù)據(jù)的負擔!
3.對標準技術(shù)的完整支持。
Delphi提供了Windows 32位特性的完整支持。用Delphi編寫multi-thread多線程的程序非常簡單, 系統(tǒng)提供了一個叫Thread Object的物件,只要新建一個Thread Object,然后給出Class Name, 就產(chǎn)生了一個繼承TThread的Class,在Execute中添入相關(guān)代碼,就完成了。我們的系統(tǒng)中就使用了multi-thread來提高系統(tǒng)的執(zhí)行效率,在空閑時,提前打開相關(guān)數(shù)據(jù)庫的Table。
Delphi 2.01升級后,提供了對Microsoft的Active X技術(shù)(OCX技術(shù)的改進)的支持, 可以在Delphi中 像使用標準構(gòu)件一樣使用ActiveX構(gòu)件,你可以直接購買別人開發(fā)的大量Active X(OCX)構(gòu)件直接 使用,比如像復(fù)雜得可以完全兼容Microsoft Excel 7.0的Formula One構(gòu)件,大量支持WWW瀏覽器技術(shù)的構(gòu)等。2.01版本中,還直接提供了一組Active X構(gòu)件,實現(xiàn)了對ftp,pop3,smtp,http,nntp等協(xié)議支持。這樣,在Delphi編寫的應(yīng)用程序中,就可以非常方便的進行Internet的訪問,如收發(fā)E-Mail,訪問Home Page和Download軟件升級版本。Delphi中,對OLE2的支持也是非常完整,由于增加了一種數(shù)據(jù)類型Variant,我們可以在程序中,對Word,Excel等OLE2對象進行操作,非常方便。
4.大量的第三方構(gòu)件產(chǎn)品和工具。
在Internet上,有全球大量的Delphi程序員編寫的構(gòu)件和范例程序。最有名的好象是DSP(Delphi Super Page,http://sunsite.icm.edu.pl/~robert/delphi//)和Delphi32(http://www.delphi32.com/)。前者是建立于Sunsite上的,位于波蘭,有成千個構(gòu)件和范例程序是Freeware和Shareware,可以免費或購買使用,幾乎各種專題都會涉及。比如,我們早期曾考慮編寫MAPI程序,結(jié)果去DSP上馬上就找到一大堆構(gòu)件和范例,還有Source,大大加快了開發(fā)速度;后來又有一次希望編寫TWAIN32的掃描儀接口,結(jié)果有一下就有3個構(gòu)件支持。于是,我們養(yǎng)成一個習(xí)慣就是當編寫一個特別功能的構(gòu)件時,先去Internet上找一找,幾乎每次都會有收獲。
還有大量的公司編寫的高水平的Delphi構(gòu)件,比如Info Power的一組DataControl構(gòu)件,水平非常高,很實用;大大有名的就是Delphi 2.0附帶的QuickReport構(gòu)件,我們購買了Source,寫得非常漂亮,能非常高效方便地處理較小規(guī)模的數(shù)據(jù),輸出報表,剛發(fā)表的2.0版本更好,能處理非常復(fù)雜和大量的數(shù)據(jù),使用更方便。
隨著我們產(chǎn)品開發(fā)的完成,我們非常慶幸當初選擇了Delphi作為開發(fā)工具,它幾乎全是非常徹底解決了遇到的問題,滿足需求非常徹底。當然,還有很多功能沒有談到,
比如,集成的PVCS的版本管理器,Visual Query Builder,打包的安裝程序工具InstallShield Express等等,非常方便。我們還試用了剛推出的Borland C++Builder,好象和Delphi是孿生兄弟似的,差別僅是語言分別為C++和Pascal,在Borland C++ Builder中可以直接編譯Delphi的代碼。如果你還想繼續(xù)使用C++,那選Borland C++ Builder好啦!
Delphi 3.0或Delphi 97據(jù)說即將推出,我們得到的資料說和nternet集成度進一步提高,F(xiàn)orm可以變?yōu)锳ctive Form,如果真是字面上的意義的話,也許不久我們的產(chǎn)品就可以在Internet上運行了。
【論Delphi開發(fā)商品化軟件的優(yōu)點】相關(guān)文章:
利用Delphi 3.0開發(fā)微機數(shù)據(jù)采集與處理軟件系統(tǒng)04-12
基于Delphi的VFW視頻捕獲程序的開發(fā)08-06
Delphi拖放編程08-06
基于DELPHI的鎳氫電池管理系統(tǒng)軟件設(shè)計08-06
論西部開發(fā)與合力引資08-12
DELPHI報表的動態(tài)生成08-06
論創(chuàng)造與創(chuàng)造力開發(fā)08-11
論創(chuàng)造與創(chuàng)造力開發(fā)08-17
軟件開發(fā)實習(xí)報告07-24