2009-12-20 62 views
2

我是一個很長時間的Java Web應用程序開發人員, ,根據我的經驗,有兩種主要的Web應用程序構建方法。選擇Web應用程序方法的注意事項?

第一種方法是使用來自客戶端和服務器之間的技術,如Struts,SpringMVC,JSF等等。

第二個是使用主要運行在Flex,Swing(web start),JavaFX等客戶端上的技術。

我知道這兩種方法會在這裏呆很長時間,我知道每種方法都有其優點和缺點。

我真的很想知道你什麼時候喜歡使用他們每個人? 在選擇另一個時應該考慮什麼?在安全性,應用程序類型,無狀態/狀態,數據庫調用或其他任何方面說出您想到的任何內容。

看看有哪些不同的方面會很有趣。

回答

4

基本上,區分是在'瘦'和'胖'客戶之間的區別。

兩個

胖客戶

  • 機會的一些優點和缺點,以推動更多的處理邏輯到客戶端,減輕服務器資源。這也可以導致更好的用戶體驗,因爲GUI可以同時執行更新任務。
  • 便於客戶端運行離線
  • 可以是更容易實現更豐富的更復雜的GUI功能
  • 但也可以是難以在不同的客戶端類型重新使用邏輯(例如桌面&移動)
  • BUT可能更難以編碼,需要比通用客戶端/服務器Web開發更多的專業技能,有時意味着更多的應用程序邏輯被編碼到客戶端,從而減少關注的分離。
  • 但通常是專有的(例如,柔性)
  • 但也很難暴露數據網絡爬蟲

瘦客戶機

  • 能GUI開發權交給一個獨立的專家小組代碼,而業務邏輯編碼上服務器端由另一個專家團隊(儘管當然,這很大程度上取決於所討論的應用類型以及邏輯位置)
  • 編碼技能更容易獲得(對於客戶端和服務器)
  • 促進跨越不同的GUI類型或API
  • 數據可以很容易地接觸到網絡爬蟲
  • 在服務器端再利用業務邏輯,但圖形用戶界面可以在用戶體驗費用少的互動往往
  • BUT通常不能跑線

Chrome等功能更強大的瀏覽器的問世,正在模糊兩者之間的界限。

一般來說,我會假定默認情況下總是基於瘦客戶端的解決方案,在服務器上有業務邏輯,除非需求另有規定(如高級多媒體或處理需求或特定的UI外觀和感覺設計選擇動畫)

+0

我同意。默認值應該很小,但如果用戶長時間與用戶界面進行交互(通常不是網絡應用領域),執行圖形操作(如照片編輯等),那麼我會推薦胖子,或者您需要HTML/CSS/Javascript不可行或不切實際的交互性。如果你發現自己這樣做,你應該問1)這是必要的,2)這是更好的桌面應用程序,而不是一個Web應用程序。 – jeffa00 2009-12-20 10:52:20

+0

同意。 Java Applets雖然使用類似的技術模糊了這一邊界,但它們具有桌面應用程序的許多功能,但它們具有通過Web提供的便利。 – Joel 2009-12-20 13:41:59

1

我的建議是避免在所有情況下插件。不要將Java,Flash或Silverlight插件用於Web應用程序。你正在爲一個受傷的世界而努力。如果你想構建一個富客戶端,請使用生成JavaScript的東西。如果你喜歡Java,請使用GWT。如果Java不是你的一杯茶,那麼看看JavaScript工具包,比如ExtJS,Dojo,Sproutcore。

我看到的取捨方式:

瘦客戶機(普通HTML):

  • 潛在上升空間:更容易適應於各種瀏覽器和設備
  • 潛在上升空間:更好地爲低帶寬設備
  • 下行:UI控件的豐富程度較低
  • 下行:往返時間​​會殺死「流量」。如果用戶希望在您的應用中長時間工作,這種方法將無法正常工作。

富客戶端(GWT或JS工具包):

  • 潛在上升空間:服務器端可以實現只是一個乾淨的API
  • 潛在上升空間:UI設計更容易實現,更豐富的
  • 潛在上升空間:您可以圍繞慢速往返時間計劃您的設計(「離線」是一個慢速往返時間的極端情況)
  • 缺點:需要單獨的前端用於移動設備和低功率瀏覽器
  • 缺點:低帶寬將使加載這麼慢的用戶一走了之

我的應用程序,我屬於正視到豐富的客戶端陣營。但是,我不會爲「公共」互聯網製作應用程序。

相關問題