2011-01-11 66 views
0

我正在開發一個自定義的Web本體編輯器(類似於由GWT構建的http://webprotege.stanford.edu/)。我的後端將是Java + Spring + Hibernate,域模型是Java。我的前端將像WebProtege那樣需要廣泛的RPC調用。很明顯,我應該使用GWT,因爲我可以參考WebProtege開源代碼。但是,由於公司政策,我也會考慮Flex。Flex vs GWT

我知道Flex可以通過BlazeDS使用AMF(Is there a Flex equivalent of GWT-RPC?)遠程調用Java後端方法。我已閱讀GWT vs Flex vs ?的討論。如果我可以做出充分的決定,我會和GWT一起去。 GWT strengths喜歡支持從左到右的字符,支持iPhone/iPad,體積更小,支持JSON開箱即用,支持打印並不是我項目的重要考慮因素。

除了GWT支持Java泛型,enum;域對象可以與GWT客戶端和服務器共享;編碼更加無縫......任何人都可以建議其他強大的理由,我應該只使用GWT?我有很多Java經驗,但GWT和Flex都是我的新手。

謝謝。

更新:我的管理層決定與Flex一起去,因爲我沒有堅定的理由堅持使用GWT。如果您有關於如何使GWT獲得更多RIA市場的建議,請訪問我的另一個post

+1

一個小點:你說,「很顯然,我應該使用GWT,我可以指的是開放源代碼。」爲了記錄,Flex也是開源的,它的所有代碼都可以用於閱讀,如果需要的話,還可以進行修改。 – 2011-01-11 09:59:01

+0

對不起,我的意思是我可以參考Web Protege的源代碼。在我的問題中更新。 – 2011-01-12 01:31:28

回答

1

我已經評估了Flex和GWT,對於我們的項目,至少我們選擇了使用Flex。使用BlazeDS與Java集成使得事情變得非常快,在互聯網上可以找到很多圖表,這些圖表會給你提示有多快,這是我們的主要標準之一。即使直接處理XML,當從客戶端到服務器來回傳輸數據時,Flex的速度也要比GWT快一個數量級,而BlazeDS使其速度更快。我認爲它歸結爲Flex客戶端運行在Flash VM中,並且GWT正在Javascript解釋器中運行。如果您使用的是Chrome,那麼性能可能會很接近,但我不知道,但是如果您沒有運行Chrome,那麼我認爲Flex的性能表現非常好。我已經在Flex中完成了JSON,還有幾個庫可以讓你在json.org上做到這一點。 Flex/Actionscript中還有一個「歷史」庫,允許您處理返回按鈕問題。總而言之,如果您需要支持不支持Flash的平臺,那麼它們都是很好的解決方案,那麼GWT就是明智的選擇,但除此之外,我可以說我們有一個非常成功的使用Java/Spring/Hibernate的Flex應用程序後端通過BlazeDS支持數百個同步用戶,並且速度與桌面客戶端/服務器應用程序速度相媲美。

我會在這裏添加一些背景。我們被控用Windows Server/Server應用程序替換性能大致相當,可配置性更高,桌面上沒有配置,併成爲「Web應用程序」的應用程序。我們踢了Java applets,.Net 1點擊安裝,GWT和Flex。基於易用性和性能之間的平衡,我們在用戶桌面上需要使用Flash的其他原因以及坦率的政治原因(java haters;)我們選擇了模塊化Flex應用程序。現在一年多了,90多個基於用戶角色的動態配置模塊,我認爲它非常成功。

但是,當然,因人而異;)

0

我有機會使用兩者。就我個人而言,我發現很難將自定義GWT內置組件與Flex進行比較。我可能錯了,因爲我在使用GWT時沒有創建任何自定義的GWT組件。

另一方面,在Flex中創建自定義組件非常簡單。 GWT MVP 2.0以簡單的方式支持瀏覽器歷史記錄處理,因此您可以使用瀏覽器向前和向後按鈕來瀏覽您在Flex中不可用的訪問過的頁面。

當我使用Spring Roo來生成GWT以及Flex客戶端時。 GWT的代碼比Flex代碼冗長得多,難以修改和擴展。

隨着服務器端的Flex和Spring Roo,我可以花更多的時間來裝飾UI。客戶端框架有更多的選擇來組織Flex中的代碼,例如Mate,Parsely等。不要誤解我的意思,GWT MVP也是一個很好的框架。

這取決於你自己決定。