javascript
在Vaadin和JSF之间选择
我一直在與JSF + Primefaces自從一年前,當(dāng)我開始這個(gè)項(xiàng)目士管理 ,Web應(yīng)用程序設(shè)想來(lái)管理用戶群體或社區(qū)集中于知識(shí),某個(gè)域的成員都在不斷分享信息和參加社會(huì)和教育事件。 JSF是一個(gè)標(biāo)準(zhǔn)Java框架,用于使用完善的開發(fā)模式為Web應(yīng)用程序構(gòu)建用戶界面,并基于許多先前存在的Java Web開發(fā)框架的經(jīng)驗(yàn)構(gòu)建。 它是基于組件和服務(wù)器端用戶界面的呈現(xiàn),將經(jīng)過預(yù)處理的基于Web的內(nèi)容(例如HTML,JavaScript和CSS)發(fā)送給客戶端(Web瀏覽器)。 我對(duì)這項(xiàng)技術(shù)的經(jīng)驗(yàn)可在java.net上公開獲得。
同時(shí),我有機(jī)會(huì)創(chuàng)建了一個(gè)概念驗(yàn)證(PoC)來(lái)比較JSF和Vaadin,以幫助開發(fā)人員和建筑師在其中之一之間做出決定。 Vaadin是RIA的Web應(yīng)用程序框架,與其他Javascript庫(kù)和基于瀏覽器插件的解決方案相比,它提供了可靠的服務(wù)器端體系結(jié)構(gòu)。 業(yè)務(wù)邏輯在服務(wù)器上運(yùn)行,同時(shí)基于Web瀏覽器完全呈現(xiàn)基于Google Web Toolkit(GWT)的更豐富的用戶界面,從而確保流暢的用戶體驗(yàn)。
PoC的結(jié)果令人驚訝地有趣:)最終提出了兩種技術(shù),而不是淘汰其中一種。 我發(fā)現(xiàn),在瀏覽可用的書籍,文章,博客和網(wǎng)站時(shí),盡管能夠?qū)崿F(xiàn)各種Web應(yīng)用程序,但是每種技術(shù)都具有針對(duì)特定類型的應(yīng)用程序進(jìn)行了優(yōu)化的特殊功能。 實(shí)際上,如果我們發(fā)現(xiàn)JSF對(duì)于某種類型的應(yīng)用程序更好,那是因?yàn)槭褂肰aadin花費(fèi)相同的時(shí)間和代碼。 反邏輯也是正確的。 為了理解這一點(diǎn),我們必須訪問對(duì)Web應(yīng)用程序有直接影響的兩個(gè)基本概念:
- 使用情境認(rèn)為誰(shuí)將會(huì)運(yùn)行的應(yīng)用程序,用戶插入的環(huán)境 ,以及用戶與交互設(shè)備的用戶 。
- 信息體系結(jié)構(gòu)再次考慮應(yīng)用程序的用戶 ,他或她所從事的業(yè)務(wù)領(lǐng)域以及該領(lǐng)域中管理的內(nèi)容 。
在下面的圖中注意,在這兩個(gè)概念中,用戶始終是關(guān)注的焦點(diǎn)。 這是因?yàn)槲覀冋谠u(píng)估對(duì)用戶與Web應(yīng)用程序交互方式有直接影響的兩個(gè)框架。
訪問上面的概念,我們有:
環(huán)境
某些應(yīng)用程序僅供內(nèi)部使用,例如Intranet上可用的那些,其他應(yīng)用程序由外部用戶使用,例如公司網(wǎng)站。
內(nèi)部應(yīng)用程序的用戶更為同質(zhì)且數(shù)量有限,這意味著UI可能會(huì)稍微復(fù)雜一些,以允許更快的用戶交互。 這就解釋了Microsoft Office與Google Docs之爭(zhēng)。 在辦公室環(huán)境中,最后一個(gè)功能尚不完全可以接受,因?yàn)樗墓δ苌儆贛icrosoft Office。 另一方面,它更復(fù)雜且更昂貴。 但是,使用有限數(shù)量的用戶使用大量功能使培訓(xùn)部分有一些額外的成本可以從生產(chǎn)力功能中獲利,這是可以接受的。
公司網(wǎng)站針對(duì)無(wú)限制環(huán)境中的異構(gòu)用戶。 不可能對(duì)所有這些人進(jìn)行培訓(xùn),因此需要具有簡(jiǎn)短且不言自明的交互作用的更簡(jiǎn)單的用戶界面。
考慮到環(huán)境,我們建議Vaadin用于有限環(huán)境中的同類用戶,而JSF建議用于無(wú)限環(huán)境中的異構(gòu)用戶。
設(shè)備
不同的設(shè)備會(huì)分解多套UI組件,這些組件旨在從小屏幕到大屏幕都看起來(lái)不錯(cuò)。 幸運(yùn)的是,這兩個(gè)框架都有支持從常規(guī)臺(tái)式機(jī)到移動(dòng)設(shè)備的所有屏幕尺寸的組件。 問題在于,不同的設(shè)備帶來(lái)了不同的連接能力,應(yīng)用程序應(yīng)準(zhǔn)備好應(yīng)對(duì)短帶寬和降低的傳輸速率。 在這種情況下, Vaadin似乎更適合于多種設(shè)備,只要設(shè)備的種類不是那么廣泛,因?yàn)橛脩艚缑媸鞘褂肑avaScript在本地呈現(xiàn)的,并且具有更豐富的Ajax支持以優(yōu)化應(yīng)用程序的交換。服務(wù)器上的數(shù)據(jù)。
業(yè)務(wù)領(lǐng)域
原則上,高質(zhì)量的UI框架(例如JSF和Vaadin)可以實(shí)現(xiàn)任何業(yè)務(wù)領(lǐng)域。 問題是團(tuán)隊(duì)對(duì)技術(shù)的經(jīng)驗(yàn)如何,或者掌握技術(shù)的學(xué)習(xí)曲線有多小。 業(yè)務(wù)與時(shí)機(jī)有關(guān),提供最佳生產(chǎn)力的技術(shù)必將獲勝。 如果您的團(tuán)隊(duì)以前有過Swing的經(jīng)驗(yàn),那么Vaadin是自然的選擇。 如果以前的經(jīng)驗(yàn)是更多面向Web的,可以處理HTML,CSS和Scripts,那么建議使用JSF。
內(nèi)容
內(nèi)容是在Vaadin和JSF之間進(jìn)行選擇的非常相關(guān)的標(biāo)準(zhǔn)。 如果應(yīng)用程序需要處理任何類型的大量?jī)?nèi)容,例如較長(zhǎng)的文字描述,視頻,演示文稿,動(dòng)畫,圖形,圖表等,那么建議使用JSF而不是Vaadin,因?yàn)镴SF使用Web內(nèi)容呈現(xiàn)策略來(lái)獲利從網(wǎng)絡(luò)瀏覽器支持的所有內(nèi)容類型中提取,而無(wú)需其他插件或標(biāo)簽 。 只有通過使用插件才能在Vaadin上獲得對(duì)多種內(nèi)容的支持,在使用前必須對(duì)其進(jìn)行單獨(dú)評(píng)估。
用戶
最后,但并非最不重要的是,我們有了用戶,這是選擇UI框架時(shí)最重要的標(biāo)準(zhǔn)。 我們將強(qiáng)調(diào)兩個(gè)方面:
總而言之,不是丟棄這些框架之一,而是在公司的體系結(jié)構(gòu)選擇中同時(shí)考慮兩者,而是訪問上述標(biāo)準(zhǔn),以確保您使用正確的技術(shù)來(lái)實(shí)現(xiàn)預(yù)期的解決方案。 應(yīng)用這些標(biāo)準(zhǔn)的一種簡(jiǎn)單方法是根據(jù)項(xiàng)目的特征為每個(gè)標(biāo)準(zhǔn)分配權(quán)重。 設(shè)定哪種技術(shù)適合每個(gè)標(biāo)準(zhǔn); 并總結(jié)每種技術(shù)的權(quán)重。 權(quán)重最高的項(xiàng)目選擇了要使用的技術(shù)。
參考: Hildeberto博客上的JCG合作伙伴 Hildeberto Mendonca在Vaadin和JSF之間進(jìn)行選擇 。
翻譯自: https://www.javacodegeeks.com/2012/02/choosing-between-vaadin-and-jsf.html
總結(jié)
以上是生活随笔為你收集整理的在Vaadin和JSF之间选择的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate缓存级别教程
- 下一篇: 将Spring集成到旧版应用程序中