Oracle免費的便捷Web應用開發架構

來源:互聯網
上載者:User

標籤:

Oracle免費的便捷Web應用開發架構

APEX

總體來說,APEX是我見過最便捷最高效的開發架構,用起來比PHP還舒服。上手簡單,學習成本極低,曾經有個做行政的小女生,在我指導下兩天就可以開發出簡單的審批管理網站。如果企業要做一些內部應用,APEX是上上之選。

相比起我用過的其他架構,有兩個特點是APEX獨一無二的:

  1. 線上編輯,無案頭IDE。
  2. 使用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資料庫。

 

 

 

ADF

第一次接觸ADF大概是08年,ADF 11g剛推出的時候。當時看了它的一個視頻教程,被驚到了。至於為什麼被驚到,各位看看下面的視頻。

如視頻展示,ADF有兩大特色:

一是豐富的RIA組件,ADF有上百種UI組件。順便說一下,我不是專門做前端的,接觸過的RIA架構套件括ADF、RichFaces、ExtJs、Dojo、JQuery UI等,但能給我驚豔感的只有ADF和ExtJs。也不是說其他的架構不好,只不過是後來視野開拓了,也就沒啥感覺了。

二是可視化、聲明式的開發方式,說白了就是在JDeveloper這個IDE中拖拖控制項就能自動組建組態檔案和代碼。除了複雜的邏輯處理要寫代碼外,ADF將頁面設計、導航、模型層資料繫結、資料持久層的操作都實現了控制項化。在ADF之前,類似的技術我只做過ASP.NET開發,記得當年.Net 3.5剛用上Linq to SQL時還興奮了好一陣,後來用上ADF,才知道一山還有一山高。

ADF的技術架構分三部分,如:

ADF最上面的是ADF Faces和ADF Controller,這部分是基於JSF的技術。ADF Faces有上百種UI組件,大量使用了Ajax特性;組件內的facet嵌套其他組件可以添加更多功能;提供用戶端和服務端API。ADF Controller對JSF Controller進行了擴充,首先是Task Flow增強了JSF導航控制,其次還對JSF的Lifecycle和Managed Bean Scope進行了增強。

ADF最下面是ADF Business Components(簡稱ADF BC),負責商務邏輯及ORM。

ADF Controller和ADF BC之間是ADF Model。ADF Model將ADF BC封裝後暴露給UI使用,實現資料控制和資料繫結。除了ADF BC,ADF Model還支援EJB、Web Service等。

ADF使用類似AM-MVC的模式,在現在看來還是相當先進的。配合JDeveloper,開發過程極其流暢,確如我最初看到的教學視頻那樣,有些應用幾乎可以做到無代碼開發。

雖然ADF看上去似乎很美好,但我用下來覺得坑也不少。第一,ADF算是比較複雜的架構,它自身的文檔就有上千頁,但還不夠,還需要瞭解一些JSF的基礎知識。它屬於那種表面上看上去很傻瓜,走下去才發現岔路越來越多,需要很長時間邊學習邊摸索,才能形成正確的開發模式和規範,即所謂的best practice。第二,對Java EE新版本支援問題。ADF是基於JSF的(ADF BC不算),但還停留在十年前JSF 1.2的時代,申明式開發大量使用xml設定檔(Java EE 6基本只用Annotation),還在使用JSF Managed Bean(Java EE 6是CDI Bean)。儘管ADF自成體系,但Java EE 6、7陸續加入的新功能和先進的開發模式都沒法用上,實在是可惜。第三,ADF的開發環境還有待改進,JDeveloper佔用資源比較多,特別是可視化的編輯介面,複雜的頁面用i7的cpu還會卡頓。第四,還有bug。儘管這幾年經過11g、12c中間好幾個版本,但bug還是有。最新的12.1.3我還碰到了,甘特圖的子任務顯示問題,浪費了兩天時間,無果,最終放棄。

所以,對想嘗試ADF的朋友,我的忠告是堅持用上兩個月,再判斷它是否適合你。學習ADF另一個好處就是以後可以做Oracle其他應用的開發,Oracle已經把ADF作為它戰略性開發架構,很多產品線已經替換成了ADF樣式的介面。比如說SOA Suite中的Human Task就需要用ADF開發。

費用方面,ADF本身是免費的,但它只能部署到Weblogic,Weblogic不是免費的(跟APEX一個道理)。如果你想部署到免費的Application Server,比如Glassfish、Tomcat,用ADF Essential,ADF Essential閹割了Security這塊,需要找自己解決或找第三方的方案。此外,還有個開源的、簡化版本的ADF Faces捐獻給Apache MyFaces。

ADF有三個比較有特色的兄弟,順便介紹下:

1. JHeadstart – 根據模板產生ADF程式,簡化開發工作。特別適合那些對介面設計沒啥經驗、太多組件導致選擇恐懼症的人。

2. ADF Desktop Integration(簡稱ADF DI) - 前端這部分不用ADF Faces的Web介面,而是作為一個外掛程式整合到Excel中,類似於C/S架構。因為企業內部有很多資料處理的工作,Excel比Web介面有優勢。

3. Mobile Application Framework(簡稱MAF) - hybrid行動裝置 App開發架構,支援iOS和Andriod系統。跟IBM Worklight的hybrid架構類似,MAF應用像原生應用安裝在裝置上,但內部打包了一個JVM執行Java代碼,用行動裝置內部的瀏覽器顯示UI,用Apache Cordova調用裝置內部的網路攝影機、GPS等服務。

 

 

 

分類: Web標籤: Oracle, APEX, ADF

Oracle免費的便捷Web應用開發架構

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.