2009-07-04 38 views
5

我應該建立後臺目的的Web應用程序和主要先決條件之一,是一個很好的UI。你會爲後端Web應用程序做什麼:Flex,GWT,JQuery?

在服務器端,我將使用Java很可能的Spring框架,這取決於我將使用的客戶端。

我認爲主要有客戶端3種選擇:

  • 一個 「正常」 的Web應用程序,這意味着JSP頁面,使用jQuery框架。在這種情況下,我將使用完整的Spring特性,完整的MVC模式等。我已經使用了Spring和JQuery兩年了,所以我非常瞭解這些技術。但是我也知道,實現一些效果非常複雜,涉及很多JavaScript代碼,特別是在處理Ajax調用和頁面結構的動態更改時。
  • Flex的加載項,如BlazeDS的使用Spring集成。我沒有使用Flex的經驗,我只是閱讀了一些關於它的文章和教程,但我真的很想學習一些新東西:-)
  • Google Web Toolkit,可能有類似gwt-ext的東西。沒有經驗,但我很喜歡學習。如果我需要的話,這裏有很多支持,但我認爲我會努力在同一個項目中維護Spring MVC和GWT,但我認爲它不是那麼容易,但有一些模式需要遵循。

你有什麼建議嗎?

在此先感謝

回答

5

我覺得你完全可以推遲的選擇,如果你的分區你的應用程序爲獨立的服務和視圖層。獲得後端的權利,您可以隨意交換視圖技術。

至於選擇,選擇一個你和你的團隊最熟悉的。最重要的考慮因素是支持和維護。我相信,所有這三個人都可以用足夠的努力和拋光來滿足你的需求。

我個人的選擇將Flex和BlazeDS的春天。這很性感。

+0

+1對分區的好建議。 – 2009-07-05 01:27:24

+0

是的,謝謝你在分區方面的好建議!我已經在考慮 – emas 2009-07-05 13:31:02

2

Flex是適合你的目的,我會說。使用MXML,創建具有動態結構更改和效果的優秀用戶界面非常簡單。既然你在發展的早期階段是也,我建議你考慮使用Flex的即將推出的版本,先前名爲Gumbo代碼的好處。

Gumbo提供了大量的歡迎更新,特別是在設計部門。例如,使用FXG創建具有動態外觀的引人注目的UI,現在更容易了,FXG是一種用於文本定義圖形形狀的標記。 FXG也是一項關鍵技術Flash Catalyst,一種用於將設計轉換爲實際代碼的工具。儘管Catalyst目前可能無法用於生產質量代碼,但在創建原型時肯定非常有用。

當然,在任何設計中,前端技術的選擇都不應該與後端耦合,以便您能夠交換前端層。

+0

真的很有趣,我沒有找到任何關於下一個Flex版本的信息,我一定會考慮如果我去參加Flex – emas 2009-07-05 13:35:07

3

這一切都歸結爲三點:

  1. 你建立什麼類型的應用程序?
  2. 什麼是技術技能你熟悉和舒適的遷移你的技能,如果有必要嗎?
  3. 您的基礎設施的技術要求是什麼?

如果應用程序的功能是推動這項技術,那麼你必須確定一個增強的基於超文本應用程序是否適合您的需要(AJAX,XHTML),或更多富媒體技術是否更合適,這樣的作爲Flash Platform(Flex是其中的一部分)。

#2和#3通常是相似的,因爲它們考慮到了您團隊的現有技能和基礎設施。如果您的應用程序要求可以使用任一種技術部署應用程序,那麼您需要判斷技能組和基礎結構支持的具體情況:如果您已經在使用Java,並且您的團隊主要在AJAX方面有經驗,那麼就使用它;如果你的團隊在Flash/Flex和LCDS/FMS方面有更多的經驗,那麼就使用它。但我認爲這是一個巨大的誤解,認爲基於Flash Platform的RIA可以像構建AJAX的RIA一樣構建而只需很少的體系結構更改,或者您可以「將應用程序劃分爲單獨的服務和視圖層...」你可以隨意交換視圖技術。「我的朋友是災難的祕訣。構建Flash平臺/ Flex應用程序意味着後端是客戶端應用程序的從屬服務器,而不是其他方式,因爲應用程序智能大部分駐留在客戶端。如果你像一個AJAX應用程序一樣構建一個Flex應用程序,那麼你將得到一個完全架構的混亂,我已經看到它發生了很多次。訣竅是知道控制器/服務的哪些部分保留在客戶端上,以及哪些部分保留在服務器上。

因此,在回答你的問題時,你必須問自己是哪個驅動這個應用程序的發展 - 功能集或你知道如何使用的技術?人們經常混淆這兩者,造成不必要的個人偏見而贊成其中一種或另一種實施。

+0

我認爲這是一個很好的方法,謝謝。從來沒有任何Flex經驗,我會在接下來的幾天嘗試構建一些原型。 – emas 2009-07-05 14:17:28

0

如果您的主要先決條件之一是一個好的用戶界面,那麼確保您找到某種設計者來幫助您。幾乎可以用任何語言構建一個良好的用戶界面,所以它不是確定這一點的框架。

我推薦GWT優於其他兩個,因爲沒有其他原因,我覺得它是最適合我的。你的旅費可能會改變。

爲了天生,春天?我不想開始一場火焰戰爭,但真的,爲什麼有人會這樣做呢?將項目切換到更標準的技術,如普通的EJB3/JPA業務層,輕量級Web層和GWT客戶端,您將會更加快樂。代碼會少一些,維護起來會容易得多,你不必擔心那些彈簧注入/攔截怪異。春天到底是什麼Struts是前端,陳舊,笨重和舊;)

+0

我不認爲Spring是「笨重和古老」的,當構建一個wep應用程序時它確實很有用,但是也許你將它與GWT一起使用,它會引入更多複雜度 – emas 2009-07-05 14:01:51

1

我不得不不同意Rusty的春季評估。它不斷更新,它有很大的權力。

話雖如此,我是GWT的忠實粉絲。我不能說它比其他任何技術都好,但我喜歡它。

這種取決於你需要多少馬力。如果你只有一百個用戶,這沒什麼大不了的,但如果你有一個龐大的用戶羣,你需要考慮更大。在這些情況下,GWT可能工作得很好,但我所做的大項目是其他技術。

我目前的愛好項目是http://penwag.com。我使用GWT作爲前端和後端,使用Hibernate + MySQL作爲持久性。整個事情運行在tomcat下,託管在rapidvps.com服務器上,擁有(!)128M保證內存和100MHz CPU。

如果需要,可以使用GWT跟隨MVC或MVP模式。但是,如果您使用GWT,那麼最好還是採用MVP方法,因爲它比MVC更能讓您更好地分離問題。

任何猜測您的用戶羣有多大?

編輯:

這裏有一個gallery of GWT應用BTW。

1

這可能與duffymo的答案相同,但值得重複:保持客戶端與服務器的不可知性。

在我當前的項目中,我們在客戶端和服務器之間有一個JSON REST接口。這允許我們擁有儘可能多的不同客戶端實現。面對面,服務器可能完全從Java更改爲.NET,並且只要數據API保持不變,客戶端都不會在意。

這種環境也可以幫助純數據測試。您可以通過來回饋送JSON來測試客戶端和服務器(實時和獨立)。

相關問題