2011-08-16 61 views
0

我需要開發一些非常簡單的Web應用程序,其中包含一些Ajax功能和GUI組件以及Java作爲服務器端語言。我的主要目的是學習某事設計Web應用程序,我可以利用當我開始找工作......我碰到了許多框架(RAP,Nice JSF implementations等),也有GWTJQuery 。我開始閱讀關於GWT的知識,它在開始的時候看起來很棒,但是視覺組件的數量有限。當你錯過了一個,用GWT編寫它比用JavaScript/JQuery編寫它要困難得多(例如sortable components)。 另外:日常開發中的RIA庫/框架

  • 如果JavaScript是很容易,爲什麼要學會API只是做翻譯? 主要論點似乎是,GWT對於不知道Java腳本的 的開發人員來說是非常好的,但是JS比GWT API和 配置更難以使用?

  • GWT也提供非常好的遠程過程調用和翻譯 對象到JS,但有很多庫,如DWR

  • 您也需要使用標準的servlet來e.g發送文件流的 用戶,所以你也需要把它保存到數據庫或作爲一個隱藏的XHTML文件,將它們提供給servlet的。

那麼我應該開始學習GWT嗎?這是真的廣泛傳播?或者,也許有Ajax支持的JSF實現在可用性方面優於GWT?我遇到的最大問題是,我無法想象如何解決GWT中的簡單問題,同時它們幾乎是JQuery的完整解決方案。將JavaScript本地代碼與GWT混合似乎也不是一個好選擇。

回答

2

與GWT合作時,它總是比現在更好地處理後面的事情。所以你必須學習HTML,CSS和JavaScript。也許你可以從瀏覽器前端技術知識少開始。但是,你會發現你需要知道發生了什麼。

所以問問自己。您的應用程序是否足夠大,以便能夠以複雜的GWT應用程序開始。另外,如果你是一個大型團隊並且熟悉JAVA,那麼Maven和Junit就可以感受到它。另一方面還有一堆小的(jQuery的)(backbone.js),中間的(mootools)或大的(extjs)JavaScript框架來構建RIA。

我從來沒有與JSF合作過,但所有使用過它的人都滿意,並不是很滿意。

畢竟我不認爲它是一個好主意,通過您的應用程序的當前功能集來選擇框架。由於這可能會改變時間,所以您將不得不稍後使用您不熟悉的技術來實現它。

注意,使用GWT的表格排序庫,以及:http://code.google.com/p/gwt-advanced-table/

+0

瞭解CSS + HTML + JavaScript不是問題。我想讓用戶按順序設置項目。 GWT甚至不提供拖放功能(僅適用於HTML5瀏覽器)。這裏有一個插件,但總的來說,這種組件沒有任何最新的項目。 – Damian

+1

這裏有一個lib:http://allen-sauer.com/com.allen_sauer.gwt.dnd.demo.DragDropDemo/DragDropDemo.html#FlowPanelExample。我們在一個大型項目中使用它,並運行良好。但是你是對的,GWT缺少對其他框架本身提供的功能的支持,或者對於特別是最新的html5功能的插件。 –

1

GWT包含了幾個獨特的功能,這使得它很難與其他框架進行比較。關鍵是GWT不僅僅是一個框架或庫 - 它是一個工具包。試想一下:

  1. 能夠使用的Java IDE的,並在開發過程中的調試器
  2. 自動生成不同的瀏覽器優化的Java的
  3. 優勢的代碼庫的組織編制腳本:OOP,包裝系統,檢查異常,編譯時類型檢查等。

這些功能使GWT適合於大型團隊構建的大型項目,這些大型項目應該在大型時間框架內進行增強和維護。當然,很多項目沒有這樣的要求,因此開發人員應該更重視其他考慮,如構件庫和學習曲線。