豬兒笨笨的文檔

          主要是個人的一些思考和技術文章,還有許多翻譯的文檔

           

          免費發(fā)布《Wicket開發(fā)指南》一書(266頁)

          最近完成了一本關于Wicket的書
          感于自己得益于許多開源軟件,以及許多的免費書籍,所以這本書也免費開放。
          該書266頁,約18萬字。
          現(xiàn)在全部發(fā)布在網(wǎng)上,大家可以免費瀏覽。
          我很喜歡Wicket這個框架,也希望有越來越多的開發(fā)人員使用這個框架。

          我把前兩節(jié)放在下面作為介紹。
          因為書的內容比較多,而且GoCom答應提供空間和論壇,所以我也不好在這里直接上傳,請諒解,而且GoCom也答應提供PDF版本下載,我也會在元旦前后更新此書,然后免費提供給所有人員。

          你可以在http://gocom.primeton.com/這個地址查看該書(謝謝普元的GoCom提供的空間和論壇)
          (感覺有點做廣告的嫌疑)

          你也可以在這個論壇上提出問題,我會盡快回復
          http://gocom.primeton.com/modules/newbb/viewforum41.htm

          One World,One Dream。

          ?

          Wicket前生后世篇 ?
          Wicket是什么?簡單點說,它就是一個基于Java的Web開發(fā)框架,與Struts,WebWork,Tapestry相類似。其特點在于對Html和代碼進行了有效的分離(有利于程序員和美工的合作),基于規(guī)則的配置(減少了XML等配置文件的使用),學習曲線較低(開發(fā)方式與C/S相似),更加易于調試(錯誤類型比較少容易,而且容易定位)。如果你不對微軟并不反感,可以把它看作Java平臺上的ASP.NET。
          ?Wicket現(xiàn)在是Sourceforge上一個非常活躍的項目,開發(fā)源碼基于Apache協(xié)議(也是最寬松,對商業(yè)最友好的的源碼協(xié)議),項目位于http://wicket.sourceforge.net,另外它還有一個獨立的域名網(wǎng)站http://www.wicketframework.org/。最新的消息則是,Wicket已經(jīng)成為Apache孵化器中一個項目,可以通過http://incubator.apache.org/projects/wicket.html來訪問。但SourceForge上的網(wǎng)站仍然可以訪問。
          ?Wicket出現(xiàn)時,著名的J2EE網(wǎng)站TSS(即http://www.TheServerSide.com,以后簡稱TSS),對該項目也進行了討論,有一段曠日持久的論戰(zhàn)(地址:http://www.theserverside.com/news/thread.tss?thread_id=28162:),論戰(zhàn)主力當然就是Wicket的主要作者Jonathan Locke和Tapestry的作者Howard Lewis Ship ,爭論的內容十分廣泛,從URL的格式到系統(tǒng)結構,從擴展性到界面開發(fā),如果有時間的話,我盡量將其中部分內容翻譯過來,還是很精彩的。(TSS上很多的討論都非常精彩,如果英文好的話,建議經(jīng)常上去看看,國外的牛人就是多啊。有時候我也覺得很奇怪,這些人都不用睡覺的嗎,看他們的帖子,完全覆蓋了24小時,感覺他們的老板真是寬容啊)。
          ?Wicket的作者中有幾個是原Sun公司Swing小組的開發(fā)人員(現(xiàn)在可能大部分已經(jīng)不是了),因此Wicket的框架中帶有濃厚的C/S色彩。而他們的開發(fā)計劃中,還包括了Swing,F(xiàn)lash平臺的支持,也就是說使用Wicket不僅可以可以輸出Html,而且可以支持Swing和Flash,不過和朋友經(jīng)過討論后,覺得這個計劃看起來有一點不切實際,畢竟Html,Swing,F(xiàn)lash之間的差別還是很大,恐怕想要無縫移植,還是有點難度的。單是一個JavaScript,恐怕就夠頭痛了。
          ?Wicket帶有強烈C/S結構的UI色彩,這一點有助于美工和程序人員的分工,與Delphi的開發(fā)方式非常類似(Delphi使用.frm文件保存UI控件的定義,而用.pas文件存儲代碼,從而對控件進行操作)。Wicket則是使用Html描述UI,并將具有特殊標記的Html元素定義為UI控件,在java文件中則直接使用代碼操作這些UI控件,控制其輸出及行為,樣式等。這一點和Tapestry,以及.NET平臺上的ASP.NET極為相似,也怪不得與Tapestry的作者爭論了這么久,畢竟兩者的用戶群有很多的重復。其實從結構上看來,無論是Tapestry,ASP.Net,Wicket估計都借鑒了Applet平臺上的WebObjects,還有Delphi。(不要忘了,Delphi的創(chuàng)建者Anders Hejlsberg就是.net框架的架構師,所以C#和Asp.net怎么看都帶著Delphi的影子。
          ?Wicket目前最新的版本是1.2.2版,已經(jīng)支持了AJAX,但感覺這個框架的發(fā)展時間畢竟還是短了一點,盡管設計思想很不錯,但還是有許多問題存在的,包括控件的數(shù)量,BUG較多等,希望2006年它可以盡快的成熟起來。
          ?
          關于重新發(fā)明輪子的爭論
          ?談到Wicket,恐怕第一個感覺就是在Java的Web開發(fā)中又多了一個輪子,這一點國內外的程序員好象都是一樣。
          ?有一個國外的Blog專門寫了一篇關于輪子的文章,說明了重復發(fā)明輪子的必要性。我個人對于這種輪子是持一種歡迎的態(tài)度,因為沒有人會去寫一段功能完全一樣的東東,總是要修正了原有輪子的不足,這樣就不能簡單當作一種重復。
          ?即使是功能重復,就不需要輪子了嗎?JSP能完成Struts到所有功能,而Tapestry能做到的,Struts也全部可以做到,但Struts,Tapestry就不需要了嗎?Struts的MVC結構比JSP更加優(yōu)秀,在很大程度上減輕了開發(fā)人員開發(fā)量,而Tapestry基于組件的開發(fā)方式,則是開創(chuàng)了一種新的Web開發(fā)方式,對于多語言的支持也有了新的方式。以往開發(fā)多語言頁面時,往往使用properties保存字符串資源,但是頁面通常都沒有什么變化。而Tapestry可以通過不同的Html為不同的國家指定不同的頁面。
          ?Wicket吸收了Tapestry的一部分內容,但我最喜歡的就是,它是基于規(guī)則的,而并非XML配置的方式,這不僅有利于程序員學習,對系統(tǒng)的維護及開發(fā)規(guī)范都很有效,畢竟XML的編寫并不見得就比寫一段程序來得更容易。(這里插一句題外話,我覺得XML文件用來表示數(shù)據(jù)和資源,而不是行為,更不是業(yè)務,所以對于XML我只用來存放多語言資源或者用來做數(shù)據(jù)交換。象Spring這種大量使用XML方式,我并不欣賞,Spring也意識到了這一點,在2.0版本中努力的簡化Xml的配置,但是并不盡如人意)。如果使用簡單的規(guī)則來配置或者管理一個系統(tǒng),用戶就會很容易的查找到自己需要的內容。而通過配置文件,不管這樣的一個配置文件的結構如何好,也需要在其中查找自己需要的內容,開發(fā)效率肯定要低一些。
          ?因此對于這種有創(chuàng)新性的輪子,多幾個,或許Java世界可以跑得更快一些。
          ?去年就聽說不少Web框架的開發(fā)人員要聯(lián)合起來開一個Web框架,在Yahoo上還有一個討論組,上去看了一下。但是這個事件對我的第一感覺就是暈,第二感覺就是特別的暈,雖然目前Java世界的Web框架一通混戰(zhàn),但這樣一個聯(lián)盟,所給出的東西很可能是第二個EJB。

          posted on 2006-11-03 11:21 豬兒笨笨 閱讀(1941) 評論(1)  編輯  收藏 所屬分類: Java開發(fā)組件設計開源軟件Wicket

          評論

          # re: 免費發(fā)布《Wicket開發(fā)指南》一書(266頁)[未登錄] 2010-12-07 07:31 袁啟勛

          你好,感謝的這本書,最近也在研究wicket。  回復  更多評論   

          導航

          統(tǒng)計

          常用鏈接

          留言簿(18)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 德钦县| 家居| 淮北市| 安仁县| 平舆县| 祁阳县| 岚皋县| 杨浦区| 壶关县| 兴国县| 宜城市| 衡水市| 洛南县| 凤山县| 大埔区| 衢州市| 南华县| 蚌埠市| 华宁县| 芜湖市| 四会市| 新平| 南和县| 修水县| 华容县| 略阳县| 汨罗市| 南乐县| 镇平县| 青州市| 江油市| 安康市| 祁东县| 富源县| 天柱县| 吉水县| 蒙山县| 龙南县| 澄城县| 乐山市| 临颍县|