html5开发ria_用于RIA的JavaFX 2与HTML5
html5開發(fā)ria
這些天來,我們正在啟動(dòng)一個(gè)新項(xiàng)目,以實(shí)現(xiàn)Rich Internet Application(RIA) 。 第一個(gè)問題是:我們應(yīng)該使用哪些技術(shù)和框架? 后端將是Java或其他現(xiàn)代JVM語言,因?yàn)槲覀兪墙?jīng)驗(yàn)豐富的Java開發(fā)人員。 在大多數(shù)用例中,我們也更喜歡Web框架,該框架主要允許使用Java進(jìn)行編碼,因?yàn)槲覀冎械脑S多人僅具有有關(guān)HTML和JavaScript的基本知識(shí)。必須為即將到來的項(xiàng)目做出決定: 我們是否應(yīng)該使用HTML5或JavaFX 2實(shí)現(xiàn)Web客戶端? 如果您向Google請(qǐng)求“ javafx或html5”,則找不到太多信息。 在大多數(shù)情況下,您最終將在2011年的幾次IT會(huì)議上進(jìn)行一次演講:“移至客戶端:JavaFX和HTML5演講”。 這是Slideshare鏈接(來自JavaOne 2011): http ://www.slideshare.net/steveonjava/moving-to-the-client-javafx-and-html5。 因?yàn)榇搜菔疚母鍩o濟(jì)于事,所以我們看了一下優(yōu)點(diǎn)和缺點(diǎn),這些優(yōu)點(diǎn)和缺點(diǎn)在此博客文章中列出。
但是,讓我們從頭開始...
什么是富互聯(lián)網(wǎng)應(yīng)用程序(RIA)?
RIA沒有真正的定義。 因此,這是此博客文章的定義:
“豐富的Internet應(yīng)用程序提供具有動(dòng)畫,效果和多媒體功能的外觀現(xiàn)代的Web應(yīng)用程序 。 Web應(yīng)用程序幾乎無法識(shí)別為Web應(yīng)用程序。 沒有具有表單,下拉框或表格的經(jīng)典HTML用戶界面。 網(wǎng)絡(luò)瀏覽器的典型功能(例如書簽或前進(jìn)/后退導(dǎo)航)通常丟失/不需要。 有時(shí)(即,如果您使用Web框架而不只是HTML5),則必須安裝插件(例如Java Runtime Environment或Adobe Flash Player)。 Pokerstars( www.pokerstars.com )是RIA的一個(gè)很好的例子。”
備擇方案
在JVM環(huán)境中,可以使用幾種替代方法來實(shí)現(xiàn)RIA:
- 純HTML5 :很好的解決方案,但是您不能使用Java或其他JVM語言進(jìn)行編碼。
- Adobe Flash / Flex :已死! 甚至Adobe也轉(zhuǎn)向HTML5。
- Microsoft Silverlight : 死! 甚至Microsoft Windows 8也轉(zhuǎn)向HTML5。 (當(dāng)然,Silverlight并不是真正的JVM解決方案,但是您可以使其與JVM后端一起使用。為了完整起見,我將其添加到此列表中。)
- JavaFX :基于Java的解決方案(在將來替換為Swing)。
- JavaFX以外的其他JVM Web框架(JSF,GWT *,Wicket,Tapestry,Grails,Lift,“ You-Name-It”) :并非用于實(shí)現(xiàn)RIA。 是的,您可以使用這些框架實(shí)現(xiàn)RIA。 但是,發(fā)展是丑陋的,RIA也將是丑陋的。 那為什么要這么做呢? (請(qǐng)記住我上面對(duì)RIA的定義,然后再開始在評(píng)論中抱怨!)
* GWT還已經(jīng)對(duì)某些功能提供了很好的(實(shí)驗(yàn)性)HTML5支持: http : //www.google.com/events/io/2011/sessions/gwt-html5-a-web-developers-dream.html =>如果是Google繼續(xù)在GWT中添加對(duì)HTML5的支持,這在未來幾年中也可能是一個(gè)不錯(cuò)的選擇-您僅使用Java開發(fā),并且不需要瀏覽器插件,因?yàn)镚WT可以生成純HTML和JavaScript。 但是,也有傳言稱,由于Google的新語言Dart,GWT快要死了。 Google尚未對(duì)此發(fā)表評(píng)論,也未發(fā)布GWT路線圖。
因此,問題是何時(shí)使用JavaFX 2而不是HTML5來實(shí)現(xiàn)RIA(從Java開發(fā)人員的角度來看)? 如果您對(duì)HTML5或JavaFX不太了解,則應(yīng)在Wikipedia或google上查找其他文章。
什么是HTML5?
=> http://en.wikipedia.org/wiki/HTML5
重要提示:HTML5是HTML + CSS + JavaScript! 它為現(xiàn)代Web開發(fā)提供了多個(gè)下一代功能,例如離線存儲(chǔ)或應(yīng)用程序緩存。
什么是JavaFX?
=> http://en.wikipedia.org/wiki/Javafx
提醒:我們正在談?wù)揓avaFX 2.0。 與早期版本的主要區(qū)別在于JavaFX現(xiàn)在提供了Java API而不是新的編程語言(JavaFX Script)。 因此,對(duì)于Java開發(fā)人員來說很容易學(xué)習(xí)。
為什么選擇HTML 5 / JavaScript?
優(yōu)點(diǎn)
- W3C標(biāo)準(zhǔn)
- 這是未來–毫無疑問!
- 無需插件,可以在每個(gè)(受支持的)Web瀏覽器中使用
- 已經(jīng)有許多小部件和功能可用
缺點(diǎn)
- 使用HTML / JavaScript而不是Java進(jìn)行開發(fā)=> Java開發(fā)人員的主要缺點(diǎn)!
- 規(guī)格尚未最終確定(根據(jù)2014年之前的路線圖!)
- 并非所有瀏覽器都支持(尚未)
- 跨瀏覽器開發(fā)是必需的(jQuery或Dojo之類JavaScript框架可以解決此問題,但仍然會(huì)增加工作量)
可能,HTML5還有許多其他優(yōu)點(diǎn)和缺點(diǎn)。 但是,命名的名稱應(yīng)該足以決定何時(shí)使用HTML5或JavaFX。
為什么選擇JavaFX 2?
優(yōu)點(diǎn)
- 提供Java API =>利用您的Java技能并使用現(xiàn)有的JVM功能和庫(kù)
- 提供用于其他JVM語言的DSL,例如Groovy(GroovyFX)和Scala(ScalaFX)。 閱讀本文以了解如何使用現(xiàn)代JVM語言而不是Java來受益:“ JavaFX 2.0和Scala,如牛奶和餅干” => http://www.javacodegeeks.com/2012/02/javafx-20-and- scala-like-milk-and.html
- 可選:“布局”語言FXML以將UI定義從行為中分離=>在編程(使用Java)和布局(使用FXML)之間選擇自己喜歡的語言
- 后端和Web客戶端具有相同的開發(fā)環(huán)境(包括調(diào)試,重構(gòu)等)
- 沒有跨瀏覽器的問題
- CSS支持(如HTML)
- HTML和/或JavaScript可以集成在JavaFX應(yīng)用程序中
- Swing和JavaFX可以在同一應(yīng)用程序中使用,因此可以擴(kuò)展現(xiàn)有的Swing應(yīng)用程序
- JavaFX 2提供了一個(gè)統(tǒng)一的體系結(jié)構(gòu),可以編寫一次應(yīng)用程序,然后將其部署到各種上下文中(獨(dú)立的應(yīng)用程序,嵌入在Web瀏覽器中或通過Java Web Start運(yùn)行)。 將來會(huì)添加其他上下文(例如,在移動(dòng)設(shè)備上運(yùn)行相同的應(yīng)用程序)。
缺點(diǎn)
- 客戶端上需要Java Runtime Environment
- JavaFX只有一部分是開源的。 Oracle JavaFX運(yùn)行時(shí)和SDK將根據(jù)Java二進(jìn)制代碼許可繼續(xù)發(fā)行
- MacFX的JavaFX僅作為Developer Preview提供(GA計(jì)劃于2012年中推出)=>參見JavaFX路線圖
- JavaFX for Linux尚不可用(計(jì)劃在2012年第三季度開發(fā)者預(yù)覽版)
- 尚無關(guān)于JavaFX Mobile未來的信息(至少我沒有找到任何東西,如果有人有鏈接,請(qǐng)?zhí)砑釉u(píng)論!)
- 提供比HTML5更少的小部件和其他功能
- 盡管JavaFX是Swing的(未來)替代品,但由于幾個(gè)新概念,開發(fā)有所不同。 當(dāng)然,這是添加RIA功能(例如動(dòng)畫)的結(jié)果=>因此,這并不是真正的缺點(diǎn),并且Java開發(fā)人員學(xué)習(xí)一些新概念比學(xué)習(xí)HTML和JavaScript更容易
結(jié)論
HTML5和JavaFX 2都非常適合實(shí)現(xiàn)RIA,包括媒體,圖表,動(dòng)畫等。最終,它們都有不同的目標(biāo)受眾:
- 公共Web應(yīng)用程序應(yīng)使用HTML5來實(shí)現(xiàn),因?yàn)樵诖蠖鄶?shù)情況下,都不需要瀏覽器插件。 因此,即使對(duì)于Java開發(fā)人員,HTML5也無可替代。
- 在企業(yè)內(nèi)部,可能需要插件。 無論如何,Java可能已經(jīng)安裝在大多數(shù)計(jì)算機(jī)上。 如果所有必需的小部件和其他功能都可用,則JavaFX是企業(yè)應(yīng)用程序的更好選擇,因?yàn)镴ava開發(fā)人員可以通過在其著名的JVM環(huán)境中進(jìn)行開發(fā)來輕松實(shí)現(xiàn)RIA。
享受用HTML5或JavaFX 2實(shí)現(xiàn)RIA的樂趣。順便說一句:我們可能會(huì)選擇JavaFX作為我們的內(nèi)部項(xiàng)目,因?yàn)樗璧腏ava插件不是止步不前,而且大多數(shù)同事都是Java開發(fā)人員。
參考: 何時(shí)將JavaFX 2代替HTML5用于Rich Internet Application(RIA)? 來自我們的JCG合作伙伴 Kai Wahner在有關(guān)Java EE / SOA /云計(jì)算的博客上的博客。
翻譯自: https://www.javacodegeeks.com/2012/05/javafx-2-vs-html5-for-ria.html
html5開發(fā)ria
總結(jié)
以上是生活随笔為你收集整理的html5开发ria_用于RIA的JavaFX 2与HTML5的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果今天设计了Java:同步接口
- 下一篇: 宁国房产备案系统(宁国房产备案)