作者:吳祐賓
IntraWeb(以下簡稱IW)是Delphi裡繼WebSnap後另一個網站設計解決方案。
許多Delphier認為IW不是個一回事。
不過如果IW真的這麼糟,能從3.x發展到現在的XIV,直接說它不堪使用也未免太過武斷。
今天為了證明IW實用性而找了一個專案來嘗試看看。
就以陳惟彬老師的ASP.NET會計系統來體驗試作。
ASP.NET會計系統程式設計 2002 陳惟彬著 |
為什麼要使用這本書?
- 這套系統是以ASP.NET 1.1 VB語言進行開發,有以下和IW共同的特色:
1.頁面設計採絕對定位,和Delphi VCL Form設計方式相同。
2.全面使用ASP.NET元件,剛好和IW元件形成對照組。
2.全面使用ASP.NET元件,剛好和IW元件形成對照組。
-
考量Delphier的
不良習慣,限縮設計的手段:
1.全程不使用任何已知的HTML, CSS, JavaScript。
2.付費可以省工,TMS for IntraWeb參戰。
2.付費可以省工,TMS for IntraWeb參戰。
專案開發環境:
- Delphi XE
- FireBird database 1.5 embedded (.Net framework not need!)
- IntraWeb XIV 14.0.23
- TMS IntraWeb Component Pack 5.4.1.1
整個專案所需要的檔案 |
IntraWeb 會計系統主畫面 |
新增子會科程式畫面 |
與 VCL Form 設計比較不同的地方是:
1.為了配合AJAX(Asynchronous JavaScript and XML),在IW元件中,或多或少都有提供OnAsync事件,而要使用OnAsync事件時,必須要注意搭配元件的刷新。
以「新增子會科程式」為例,當TIWDBAdvWebGrid允許Async Edit時,就必須在.OnAsyncEdit事件寫上TIWDBAsyncNavigator元件變更處理,否則便出現 Grid 在編輯狀態,但Navigator卻沒有變化的搞笑情形。
2.TIWDBGrid和TDBGrid很像,但編輯功能還需要綁定其它TIWDBxxx元件。
3.新增功能:
A.TIWDBGrid:無此功能,必須另外設計新增畫面。
B.TIWDBAdvWebGrid:有新增功能,非常接近TDBGrid體驗。
4.TIWDBAdvWebGrid內建就有和ASP.NET Grid相同的分頁功能,這是DBGrid沒有的功能。
開發心得:
在開發時間緊迫的情形下,最終還是放棄OnAsync事件的使用。
開發過程中全都使用Delphi程式,開發習慣並沒有因為是網站開發而有所改變。
IW元件功能和VCL元件相比,功能性相對較差,不足的地方還需要額外程式處理,一樣全面使用Delphi Code。
TDataSet存放在Web Server上,這先天的限制使 IW 註定不能承受太大量的使用者負載,但卻能做到很複雜的商業運算。當然也可以不使用TDataSet,這樣就不需使用DB Aware元件,就像不使用DBGrid而使用StringGrid一樣,但相對的,就必須在程式上多費點苦心。
畫面很陽春,和VCL一樣,沒有內建 OS Style 的 IW 畫面實在太復古。
開發過程中全都使用Delphi程式,開發習慣並沒有因為是網站開發而有所改變。
IW元件功能和VCL元件相比,功能性相對較差,不足的地方還需要額外程式處理,一樣全面使用Delphi Code。
TDataSet存放在Web Server上,這先天的限制使 IW 註定不能承受太大量的使用者負載,但卻能做到很複雜的商業運算。當然也可以不使用TDataSet,這樣就不需使用DB Aware元件,就像不使用DBGrid而使用StringGrid一樣,但相對的,就必須在程式上多費點苦心。
畫面很陽春,和VCL一樣,沒有內建 OS Style 的 IW 畫面實在太復古。
結語:
系統本身雖尚未完成,但初期開發結果能充分使用TDataSet的功能,所以完成整套系統只是時間上的問題,不會有無法做完的情形,何時才能完成?等我空閒一點再說吧。 ^_^
可以看demo嗎?
回覆刪除不錯哦,請問大大目前開發進度如何?IW的開發效率如何?
回覆刪除IW封裝和支援的程式遠比 UniGUI 和 Raudus 要來得好
刪除Chart 和 Report 都有 3RD 支援
IW 開發上並不如後兩者來得好,後兩者明顯更貼近 VCL for Web 開發
另一缺點是,ISAPI 的更新也是 Delphi 的痛點之一
http://tools.hotzsoft.com/HZApp/PTL02U05?ID=Prd_WPC
這套產品的設計方式真的很棒,Delphi的缺點都改進了!
目前 IntraWeb 專案開發是停擺的狀態,所以有時間再接續囉
請問你知道intraweb的apache application要怎麼佈署嗎?
回覆刪除How to install a Delphi Webservice ISAPI module on Apache 2.3
刪除這篇應該能回答你的問題 ^_^
我重新試著做成isapi
刪除發現IW只有Ultimate有支援isapi
詳情請見:
Feature Matrix And Supported enviroments
我使用Raudus開發資訊系統,相當好用,但是它似乎只支援.exe檔及apache的so檔,isapi不支援很殘念!!
刪除