不論是以前的 Kylix 還是現在的 FireMonkey,主打的就是「每個平台都會有自己的原生碼」的應用程式。
而不像是 JAVA 般,以 JVM 的方式,在每個平台都有自己的虛擬機器代工來執行 Java 程式。
也不像是 .NET,以 .NET Framework 作為轉接器,讓每個語言都能在透過它在不同的 Windows 系統執行。
Delphi,總是以原生的方式,在世人的面前展露它利落的身段,而不是利用一層肥大轉接器的裙帶關係,或是一種緩慢及安全性有疑慮的虛擬機器,所帶給使用者那種痴呆煩悶的遲滯感覺。
在 Win32 下所帶給 Delphier 們即視、優雅、敏捷開發的娛悅感,卻在這世界轉向 Web 化後,一夕之間,變成所有 Delphier 的惡夢。
翻翻 Delphi 的歷史,為了網頁開發,它為了拉住 Delphier 的心,做出了以下的變化:
- WebBroker:自己刻 Web 服務
- InternetExpress:提供可視化的 Web 元件
隨著時間的推移,這兩套解決方案並沒有完全解決 Delphier 的 Web 障礙。
於是眾多地協力廠商也加入 Web 開發的戰線,因此有更多的產品問世了:
- IntraWeb
- UniGUI
- Raudus
- Kitto
這麼多的商品,看得是 Delphier 眼冒金星,老花眼都快提早來到了。
Delphi 在 Web 上,看似很多樣化的選擇,事實上,都是基於一個不願面對的真相,那個真相是:
全都是基於 Web Service 下的外掛程式!
也就是 IIS / Apache 裡,利用 DLL 成為它的外掛,完成 Web 資料的輸出。
因為只有一個 DLL,看起來很利落,沒有其它的 HTML / JavaScript / CSS 網頁檔案糾結,只要維護一個專案就好。
可是,有沒有想過一個問題:【DLL,它怎麼更新?】
我們必須在每一次更新,都必須把 IIS / Apache Web 服務器關閉,更新 DLL 後再重啟 Web服務器。
這聽起來很蠢。對吧!
無法即時更新小區塊語法事小,停機重開這問題才大,只要上線的人一多,影響的後果十分可怕。
這樣讓人沮喪的結果讓我不禁想起了一件事:
【FireMonkey 都可以編譯 iOS, Android, Mac OSx 多平台的原生碼了,為什麼網頁這件事情卻做不到?】
我抱著這樣的一個疑問過了好幾年,直到某天在 Google 上看到了一道署光:
Elevate Web Builder (以下簡稱 EWB)嚴格來說並不是屬於 Delphi 的 3rd party 元件,而是一套全新的 IDE,基於 Pascal + VCL framework,它的概念上如下圖:
EWB 所要表達的概念 |
將 Delphi 程式碼轉換成網頁程式碼……這不就達成了【網頁原生碼】的目標嗎!
多年來 Delphier 內心最深層的痛處,隨著這套產品的問世,這痛處一定會跟著消失的!
首先,先來看看這套 IDE 的介面吧!
EWB Design 介面 |
在 2016/01/15 的今天,EWB 版本是:2.04。
整體操作上完全和 Delphi 一模一樣,毫無違和感,在 Delphi 裡的設計概念完全可以在 EWB 上完全複製!
元件可以繼承,想要自訂功能和函式也沒有問題,EWB 都會完全按照 Delphier 的意志,完美地將 Pascal 轉換到網頁程式碼上。
有點可惜的是,EWB 目前對中文字型(double-wide characters)支援度還不夠,在編輯顯示上會有一半的文字無法看到,但在Browser裡都會正常顯示,如下圖:
EWB 上的第一個測試專案 |
EWB 的客服人員說明這個問題會在 2.5 版裡正式解決,敬請期待!
也因為測試版的關於,你會發現編譯的時候,在Output目錄裡看到 .js 及 .html 檔案稍閃即逝的情形,然而要保留產出的這兩個檔案,只能在正式版才能享受到囉!
有了封裝後的 JS 和 HTML 網頁檔案,這代表線上即時更新網頁成為可能,再也不用把網頁伺服器關掉重開啦!
再重複一次,可以線上即時更新網頁這件事,目前只有 EWB 可以做到,受夠以前用 Delphi 開發 CGI / ISAPI 那種外掛形式的網頁應用嗎?
用 EWB 來設計 Web Application 就對了!
另人期待的資料庫應用呢?
嘿嘿,在這邊就讓我賣個關子,先留給你們去研究吧!
我要來去玩 EWB 囉~~~!
See also:
Elevate Web Builder - Rapid Application Development
Elevate Web Builder - Roadmap
先問一下,是絕對位址定位嗎?
回覆刪除EWB 有支援 RWD(響應式)設計
回覆刪除我的意思是,元件是用TOP LEFT定位嗎?WIDTH有沒有支援50%這種的?
回覆刪除在 Delphi 的世界,沒有百分比定位的方式,會使用這套開發工具的 Delphier 可能也無法理解網頁設計的定位技巧。
刪除在 EWB 中,可以利用 Layout.Stretch (延伸)、Constraints(約束).Max.Width(Height),以及 Margins(邊距) 三個屬性的搭配,來完成相對定位的需求。
有關 Layout 在 EWB 和 CSS 不同之處,可以參考這篇:
刪除Layout Management
謝謝你提供的說明。這種用WIN FORM的方式來做WEB FORM,應該在細節調整時會格格不入吧。
回覆刪除EWB 的目標有顧及到 Web Application 在多平台調整和更新上的細節
刪除對Delphier來說是多少可以減輕些壓力
至於不是寫 Web Application?還是交給專業的從業人員吧。哈!
如果USER可以這麼寬容,程式人員日子就好過了。^_^
刪除看不懂要怎麼佈署?
回覆刪除會輸出 .html 和 .js 兩個檔案,但正式版才會保留,試用版只能看到它閃一下就刪掉了
刪除佈署方式就「直接放上 Web Server 目錄」就可以了
聽起來跟HTML5 builder差不多,兩者最大的差異在那裏?
回覆刪除H5B 核心是一種 PHP framework(後端) 和JavaScript framework(前端)
刪除而EWB是一種【Delphi到HTML5轉換器】,更特別的是,它最終產出是 html, js檔案,是能直接在 IIS/Apache 上佈署的檔案,和Delphi現在所有基於ISAPI發展的HTML5 framework完全不一樣。
聽起來跟HTML5 builder差不多,兩者最大的差異在那裏?
回覆刪除這麼多年了,直到現在才聽到這種產品,真高興,感謝您。
回覆刪除