APEX
總體來說,APEX是我見過最便捷最高效的開發框架,用起來比PHP還舒服。上手簡單,學習成本極低,曾經有個做行政的小女生,在我指導下兩天就可以開發出簡單的審批管理站點。如果企業要做一些內部應用,APEX是上上之選。
相比起我用過的其他框架,有兩個特點是APEX獨一無二的:
在線編輯,無桌面IDE。
使用SQL和PL/SQL語言開發。
下圖是APEX開發界面:
APEX依靠數據庫來執行業務邏輯及生成html頁面。頁面的各種布局、控件模板是存儲在數據庫裡的,一個Oracle數據再加一個http server就它所有的東西了,如果使用數據庫的PL/SQL Gateway,甚至連獨立的http server都不需要。所以物理上APEX就是Oracle數據庫的一部分,最近版本的Oracle數據庫都帶有APEX,默認情況下會隨數據庫一起安裝。
APEX沒有專門的數據訪問層,數據操作直接用SQL。一方面是簡單,另一方面因為是數據庫環境中在線開發,可以直接讀取數據庫對象,SQL大多是半自動化生成。後台業務邏輯用PL/SQL實現,Oracle的package足夠強大,實在不行Oracle數據庫還帶有jvm,寫java代碼也行;或者它也支持web service,可以調用外部模塊。
UI方面,非常的MVC化。M包括保存數據的item,V用html模板生成布局和控件,C負責計算、驗證、數據處理、導航等。APEX界面元素包含了常用的list、form、chart、button及各種輸入控件,並且可以自己建plugin,或者用第三方的plugin,甚至可以加入extjs這種js框架。但作為便捷框架,我不提倡做深度自定義開發。form + list其實已經能滿足絕大部分應用了,像Siebel這種大型系統的 applet也就那麼幾種。
下圖是APEX應用樣式:
APEX還帶有幾十種打包的應用程序,比如項目管理、issue跟蹤、報表等,可以快速部署。
費用方面,APEX本身不需求額外的license,如果采購了Oracle的數據庫,就可以直接用APEX。如果沒有,APEX還支持Oracle XE數據庫。