2013-01-24 120 views
10

對於我的組織,我正在評估我們下一個項目的RICH技術。 我們目前正在使用grails 2.1.0,對此非常滿意,特別是groovy和gorm,我們希望保持這一點。這個想法是用一些RICH框架/庫擴展Grails。目前我正在評估:ZK的grails插件,Vaadin的grails插件,knockoutjs,angular.js,ember.js。帶有Vaadin插件的Grails,它是正確的選擇嗎?

我已經收到了與ZK合作的同事們的反饋,他們的結論是:很酷但忘記了演出,每當你在客戶端做某事時,ZK都會去服務器。

我的問題是:這是否也適用於Vaadin(Grails插件)?它如何與沉重的單頁面應用程序發生反應? Bambi呢?這可以成爲一個選擇嗎?

論文grails + Vaadin是我們需要的:我們要編寫groovy/java,而不是xml,當然不是javascript。這是正確的選擇嗎?

我知道我的問題是非常通用的,但我只是在開始評估... 感謝您的關注!

+0

ZK沒有去每個請求的服務器。這是我的演示,它使用了很多客戶端代碼來提高性能:http://zello.herokuapp.com/。 披露:我是ZK插件作者。 – chanwit

+0

謝謝!我一定會向評估ZK的同事報告。 –

+0

沒問題。忘了告訴你用戶名和密碼。它是「演示」和「演示」。 – chanwit

回答

6
  1. Vaadin與Groovy和Grails完美協作。您可以使用Grails.get()方法獲取服務(實際上是spring beans),並通過Grails.i18n()方法進行本地化。因爲所有的代碼都將用Groovy編寫,而不是Java,它將變得不那麼沉重(少量代碼行等等)。
  2. Vaadin不會在服務器上執行用戶操作。你可以通過在任何組件上設置setImmediate(false)來影響它。
  3. 當你在Vaadin中製作複雜的應用程序時,你需要小心你在頁面上放置了多少個組件。如果您期望在單個頁面上會有數千個組件,那麼瀏覽器渲染器在處理它時會遇到性能問題(當然渲染速度取決於您的計算機硬件)。更多提示是here
  4. 我推薦 - 嘗試在Vaadin和假數據庫中構建UI。然後查看性能,然後切換到真實數據庫。通常人們會指責Vaadin,但問題出在別處,例如在數據庫中,索引,一次加載到很多項目...
  5. 如果你不想玩JavaScript,那麼我認爲knockoutjs,angular.js,ember.js不在遊戲中。
  6. 您需要知道,您是否需要Vaadin components。我真的建議嘗試一下,並在Vaadin做出概念驗證。如果沒有,Vaadin 7簡化了integration with JavaScript!因此,您可以輕鬆地將Vaadin服務器代碼與任何JavaScript庫(例如高圖表等)集成。
  7. 您將需要得到你的容器延遲加載(check this
  8. 我想你應該Vaadin 7開始(這裏是一個tutorial
  9. 會有在Vaadin 7多表現optimalisations(7.0.1版本或7.0.2)
+0

非常感謝! 我有一個戰略問題:插件的成熟程度如何,長遠來看如何?我不想冒險採用一年內將停產的技術...... 我在第6點非常執着。我按照教程和例子玩。我有問題,但爲此我將創建一個單獨的問題。 –

+0

Vaadin插件實際上只有三件事:將Vaadin依賴關係添加到Grails項目中,提供對bean的訪問(get(SomeService))並通過方法i18n(「key.to.value」)提供對本地化文件的訪問。我不認爲插件上會有什麼會造成麻煩。自上週以來,更多信息在http://vaadinongrails.com –

+0

它會更大,如果它可以處理scss編譯(生產environement發現問題=> [鏈接](http://stackoverflow.com/questions/20777850 /的grails-SCSS編譯要求的換產-ENV) –