關于視圖層技術的選擇,很多年來,也是爭議頗多的一個話題。對于選擇.NET技術的公司來說,這個問題還是很好選擇的,跟著微軟就可以了。微軟陣營的問題是選擇太少,出了問題不知道怎么辦,只能網上找控件,碰到收費的控件,又愛又恨,最后還是放棄,不了了之。痛恨微軟和別人的不開源,自己的代碼卻從不給人看,這是微軟陣營的特點。
如果說微軟陣營抱怨封閉不開源,選擇太少的話,那么J2EE陣營最大的問題則是選擇太多了,不僅普通程序員無法從紛繁復雜的各類開源框架中做出正確的選擇,即使對于系統架構師這類老手,從數十種開源框架中,找到符合自己公司和項目特點的那個,也是相當撓頭的。
比如說現在最流行的Ajax開源框架JQuery,僅最基本最常用的DataGrid控件,解決方案就有十幾個。如何從這十幾個DataGrid控件中選擇最合適的一個,也就是所謂的“銀彈”,是相當的痛苦啊。當然,開源的源代碼也多得是,可惜的是絕大部分程序員從來不看別人的源代碼,雖然張口閉口大家都在談著Struts、Spring、Hibernate,有幾個人把他們的源代碼讀過一遍?甚至開發文檔閱讀過一遍?
下面教給大家一個框架的秘訣,如果自己實在不知道如何選擇,那就遵循兩個原則:一是是否得到IBM、Oracle、微軟這類大型軟件公司的支持;二是別問為什么,就選擇大家最常用的,隨大流就可以了。
對于UI這一層的選擇,J2EE陣營有3類選擇。
(1)Ajax:包括JQuery、ExtJs以及ZK等Ajax框架。國內的用友、金蝶、阿里軟件等和其他一些傳統管理軟件轉過來的公司,一般會采用ExtJs作為自己視圖層解決方案。
(2)Flex:Flex最終生成的還是Flash,Flex的出現,是真正的富客戶端解決方案(RichInternetApplication)。界面基于標準的XML標簽,非常華麗,再加上功能強大的ActionScript,不僅適用于傳統MIS開發,而且還可以開發網絡游戲,像著名的網絡游戲開心農場,就是基于Flash開發的。
不過,Flash也面臨巨大的挑戰。首先是沒有得到風頭正猛的蘋果公司的支持,Flash在移動開發領域,也遇到了強大的阻力。如果說蘋果公司只是給了Adobe背后一刀,尚未傷其筋骨的話,那么微軟在最新的技術路線圖中,則明確表示IE9也將不再支持Flash,那么微軟會不會給Adobe致命的一擊?微軟和蘋果的理由是它們都將只支持HTML5.0。
(3)JSF:JSF一般在大公司使用,比如Oracle經典的J2EE開發框架。不過,在國內由JSP轉向JSF的公司并不多見。
這里給個建議,對于進銷存MIS系統的開發,如果考慮跟以前的兼容,首選是ExtJS,其次是Flex,最后是ZK和JBoss的企業級開發框架Seam,而對于網站類開發,則只選擇JQuery就可以了。
為什么選擇Flex作為自己的UI層技術解決方案呢?首先可以排除的是JSF,JSF僅有少數公司在用,JSF是用Swing的解決思路去解決Web難題,Swing首先就在桌面領域敗給了SWT,在Web領域,這個失敗的技術架構,同樣也沒有得到大家的認可。
那么在ExtJs和Flex之間如何選擇呢?之所以選擇Flex,是因為Flex支持Restful風格的技術架構。Flex跟后臺的通信機制,事實上有3種:
RemoteObject、WebService和HttpService組件。第三種HttpService組件,就是Restful風格的。采用Restful后,后臺接收數據的代碼跟前臺技術無關,這套代碼同樣可適用于ASP、JSP、PHP,只要它們支持Restful就可以了,真正可以做到mushup(混合語言)編程,這就是我所說的自己的“銀彈”。當然,選擇ExtJS你可以選擇JSON格式的數據進行前后臺通信。
如果IE以后真的不支持Flash了,這個還真的是一個問題,好在我們的架構,跟視圖層無關,視圖層是隨時可以替換掉的,目前來看,只有Flex對Restful支持得最好,所以我們選擇Flex作為自己的技術解決方案,而且不存在瀏覽器不兼容的問題。
IE、Chrome以及Firefox等主流瀏覽器都是支持Flash的,而且Adobe也做了一個Flash轉化為HTML格式的工具,Flash一樣可以在iPAD上運行。
以上就是關于關于視圖層技術架構的選擇問題上的介紹,希望對大家有幫助,如果對此有什么疑惑,歡迎咨詢優匠科技!