<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    豬兒笨笨的文檔

    主要是個(gè)人的一些思考和技術(shù)文章,還有許多翻譯的文檔

     

    置頂隨筆

    [置頂]發(fā)布基于Eclipse的數(shù)據(jù)庫(kù)建模及ORM框架代碼自動(dòng)生成插件(支持Hibernate,Ojb,IBatis等)

    下載地址

    (重要提示:如果安裝不成功,嘗試將feature文件夾刪掉)

    文件比較大,大概有近20M,使用Zip壓縮。

    現(xiàn)在發(fā)布的是Beta版,SourceForge上面的空間正在申請(qǐng)。
    發(fā)布的版本,支持Eclipse3.2和Eclipse3.3,需要GEF插件,可以在1.4及1.5下運(yùn)行(我只測(cè)試了Sun JDK1.4和JDK1.5的三個(gè)版本,并不保證所有的JDK都能運(yùn)行)。
    RCP版本正整理中,國(guó)慶前發(fā)布。
    如果有問(wèn)題,請(qǐng)留言

    以下是工具的介紹

    Aquarius ORM Studio介紹
     
        從事軟件開(kāi)發(fā)多年,感覺(jué)數(shù)據(jù)庫(kù)在整個(gè)軟件開(kāi)發(fā)過(guò)程中扮演一個(gè)不可或缺的角色。一旦一個(gè)業(yè)務(wù)項(xiàng)目進(jìn)入立項(xiàng)階段,需要支持哪些數(shù)據(jù)庫(kù)平臺(tái),如何使用該種數(shù)據(jù)庫(kù)平臺(tái)都將成為架構(gòu)師需要考慮的內(nèi)容,對(duì)于一般的開(kāi)發(fā)人員,則可能根據(jù)需要建立各種數(shù)據(jù)表,還可能需要通過(guò)反向工程來(lái)了解現(xiàn)有數(shù)據(jù)庫(kù)的架構(gòu),隨著ORM工具的流行,程序員還需要將數(shù)據(jù)表映射到類上,并保證兩者間的同步,過(guò)去幾年從事相應(yīng)工作的經(jīng)驗(yàn)告訴我,這既不是一個(gè)輕松的事情,更不是一件令人感覺(jué)愉快的事情。同時(shí)市場(chǎng)上有大量?jī)?yōu)秀的數(shù)據(jù)庫(kù)工具,從建模到分析,還有ORM,但可惜的是,大部分優(yōu)秀的工具都不是免費(fèi)的,就像最有名的PowerDesigner,其價(jià)格令我咋舌。象 PowerDesigner這么強(qiáng)大的工具,我只能用到其中一部分功能,卻要付出所有的價(jià)格,而且功能卻沒(méi)有滿足的我的需要。
        所以我萌生了根據(jù)自己的需求來(lái)開(kāi)發(fā)一個(gè)數(shù)據(jù)庫(kù) 工具的想法,并在接下來(lái)的兩年中付諸實(shí)施。這個(gè)工具我稱為Aquarius Orm Studio,Aquarius是水瓶座,我的星座,ORM是指這個(gè)工具的一個(gè)重要功能,Studio是個(gè)流行詞。
        這個(gè)工具可以完成以下功能:
    數(shù)據(jù)庫(kù)正向建模(支持?jǐn)?shù)據(jù)表,存儲(chǔ)過(guò)程,視圖),并生成相關(guān)DDL
    數(shù)據(jù)庫(kù)反向工程,支持從數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)表,存儲(chǔ)過(guò)程,視圖等數(shù)據(jù)庫(kù)元素
    支持多數(shù)據(jù)平臺(tái),包括Oracle,DB2,MySql,MsSql,Sybase,PostgreSql等
    生成測(cè)試數(shù)據(jù),可以根據(jù)數(shù)據(jù)庫(kù)模型生成測(cè)試數(shù)據(jù),方便進(jìn)行單元測(cè)試。
    生成相應(yīng)ORM代碼及配置文件,支持Hibernate3,OJB,IBatis及OpenJPA
    支持多國(guó)語(yǔ)言,包括中文(簡(jiǎn)體,臺(tái)灣繁體,香港繁體),英文,日文(謝謝Judy.Chang的日文翻譯)

    posted @ 2007-09-07 11:30 豬兒笨笨 閱讀(6103) | 評(píng)論 (42)編輯 收藏

    2008年11月24日

    Wicket1.3中Class熱加載--揭秘篇

         摘要: 文章《Wicket1.3中Class熱加載--使用篇》的姐妹篇。
    介紹Wicket1.3中如何實(shí)現(xiàn)類的熱加載功能,從而在修改類(包括添加或者刪除Field,Method)時(shí),無(wú)須重新啟動(dòng)服務(wù)器,即可生效。  閱讀全文

    posted @ 2008-11-24 11:44 豬兒笨笨 閱讀(1721) | 評(píng)論 (3)編輯 收藏

    2008年11月22日

    Wicket1.3中Class熱加載--使用篇

         摘要: 介紹如何使用Wicket1.3的類熱加載功能,從而在修改類(包括添加或者刪除Field,Method)時(shí),無(wú)須重新啟動(dòng)服務(wù)器,即可生效。從而提高Wicket開(kāi)發(fā)效率。  閱讀全文

    posted @ 2008-11-22 22:27 豬兒笨笨 閱讀(1973) | 評(píng)論 (2)編輯 收藏

    2008年7月4日

    數(shù)據(jù)庫(kù)建模軟件Aquarius Orm Studio發(fā)布正式版本

    Aquarius Orm Studio發(fā)布正式0.1版本,可以通過(guò)下面地址訪問(wèn)
    http://orm.aquatool.org/nl/zh/CN/index.html

    下面是它的基本功能介紹

    • 數(shù)據(jù)庫(kù)正向建模(支持?jǐn)?shù)據(jù)表,存儲(chǔ)過(guò)程,視圖),并生成相關(guān)DDL
    • 數(shù)據(jù)庫(kù)反向工程,支持從數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)表,存儲(chǔ)過(guò)程,視圖等數(shù)據(jù)庫(kù)元素
    • 支持多數(shù)據(jù)平臺(tái),包括Oracle,DB2,MySql,MsSql(支持2005),Sybase,PostgreSql等
    • 生成測(cè)試數(shù)據(jù),可以根據(jù)數(shù)據(jù)庫(kù)模型生成測(cè)試數(shù)據(jù),方便進(jìn)行單元測(cè)試。
    • 生成相應(yīng)ORM代碼及配置文件,支持Hibernate3,OJB,IBatis及OpenJPA
    • 支持多國(guó)語(yǔ)言,包括中文(簡(jiǎn)體,臺(tái)灣繁體,香港繁體),英文,日文(謝謝Judy.Chang的日文翻譯)
    • 支持生成Html格式的文檔,用來(lái)方便管理和歸類
    • 支持使用Velocity模板生成多種類型的文件


    它支持Eclipse3.2,Eclipse3.3,Eclipse3.4
    在網(wǎng)站可以下相應(yīng)的All-In-One版本(包含WTP),也可以下載相應(yīng)的RCP版本或者是相應(yīng)插件安裝包
    還可以通過(guò) http://orm.aquatool.org/nl/download/update 在級(jí)升級(jí)

    源代碼正在申請(qǐng)Google的代碼庫(kù),將于近期放出。
    開(kāi)源協(xié)議我還在考慮中,但個(gè)人使用肯定是永遠(yuǎn)免費(fèi)。

    如果有問(wèn)題,可以發(fā)站內(nèi)消息或者直接發(fā)Email到wl_95421@yahoo.com.cn與我聯(lián)系









    posted @ 2008-07-04 16:20 豬兒笨笨 閱讀(2361) | 評(píng)論 (4)編輯 收藏

    2007年11月2日

    發(fā)布基于Eclipse的數(shù)據(jù)庫(kù)建模及ORM框架代碼自動(dòng)生成插件的RC2版,支持配置文件的模板

    根據(jù)大家的意見(jiàn),對(duì)工具進(jìn)行了一些修正,添加了以下幾個(gè)主要的功能

    1. 數(shù)據(jù)表自關(guān)聯(lián)
    2. 支持配置文件使用模板(模板為Velocity)
    3. 提供了RCP版本
    4. 支持Eclipse3.3
    5. 更新了幫助文檔
    6. 支持圖片輸出
    7. 在Eclipse3.3中支持PNG輸出格式

     

    我自己已經(jīng)申請(qǐng)了一個(gè)域名,主機(jī)在國(guó)外,并逐步將自己的開(kāi)源產(chǎn)品及相應(yīng)的書(shū)放到上面,SVN的建立還在研究中。
    大家可以通過(guò)http://orm.aquatool.org/nl/zh/CN/來(lái)訪問(wèn)這個(gè)地址,上面有在線文檔,不需要下載軟件即可了解軟件。
    有興趣的朋友,可以通過(guò)下載RCP版本來(lái)試用,晚一點(diǎn)我會(huì)建立論壇及MailList,希望大家可以提供更多的意見(jiàn)。






    posted @ 2007-11-02 16:17 豬兒笨笨 閱讀(1302) | 評(píng)論 (4)編輯 收藏

    2007年9月7日

    發(fā)布基于Eclipse的數(shù)據(jù)庫(kù)建模及ORM框架代碼自動(dòng)生成插件(支持Hibernate,Ojb,IBatis等)

    下載地址

    (重要提示:如果安裝不成功,嘗試將feature文件夾刪掉)

    文件比較大,大概有近20M,使用Zip壓縮。

    現(xiàn)在發(fā)布的是Beta版,SourceForge上面的空間正在申請(qǐng)。
    發(fā)布的版本,支持Eclipse3.2和Eclipse3.3,需要GEF插件,可以在1.4及1.5下運(yùn)行(我只測(cè)試了Sun JDK1.4和JDK1.5的三個(gè)版本,并不保證所有的JDK都能運(yùn)行)。
    RCP版本正整理中,國(guó)慶前發(fā)布。
    如果有問(wèn)題,請(qǐng)留言

    以下是工具的介紹

    Aquarius ORM Studio介紹
     
        從事軟件開(kāi)發(fā)多年,感覺(jué)數(shù)據(jù)庫(kù)在整個(gè)軟件開(kāi)發(fā)過(guò)程中扮演一個(gè)不可或缺的角色。一旦一個(gè)業(yè)務(wù)項(xiàng)目進(jìn)入立項(xiàng)階段,需要支持哪些數(shù)據(jù)庫(kù)平臺(tái),如何使用該種數(shù)據(jù)庫(kù)平臺(tái)都將成為架構(gòu)師需要考慮的內(nèi)容,對(duì)于一般的開(kāi)發(fā)人員,則可能根據(jù)需要建立各種數(shù)據(jù)表,還可能需要通過(guò)反向工程來(lái)了解現(xiàn)有數(shù)據(jù)庫(kù)的架構(gòu),隨著ORM工具的流行,程序員還需要將數(shù)據(jù)表映射到類上,并保證兩者間的同步,過(guò)去幾年從事相應(yīng)工作的經(jīng)驗(yàn)告訴我,這既不是一個(gè)輕松的事情,更不是一件令人感覺(jué)愉快的事情。同時(shí)市場(chǎng)上有大量?jī)?yōu)秀的數(shù)據(jù)庫(kù)工具,從建模到分析,還有ORM,但可惜的是,大部分優(yōu)秀的工具都不是免費(fèi)的,就像最有名的PowerDesigner,其價(jià)格令我咋舌。象 PowerDesigner這么強(qiáng)大的工具,我只能用到其中一部分功能,卻要付出所有的價(jià)格,而且功能卻沒(méi)有滿足的我的需要。
        所以我萌生了根據(jù)自己的需求來(lái)開(kāi)發(fā)一個(gè)數(shù)據(jù)庫(kù) 工具的想法,并在接下來(lái)的兩年中付諸實(shí)施。這個(gè)工具我稱為Aquarius Orm Studio,Aquarius是水瓶座,我的星座,ORM是指這個(gè)工具的一個(gè)重要功能,Studio是個(gè)流行詞。
        這個(gè)工具可以完成以下功能:
    數(shù)據(jù)庫(kù)正向建模(支持?jǐn)?shù)據(jù)表,存儲(chǔ)過(guò)程,視圖),并生成相關(guān)DDL
    數(shù)據(jù)庫(kù)反向工程,支持從數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)表,存儲(chǔ)過(guò)程,視圖等數(shù)據(jù)庫(kù)元素
    支持多數(shù)據(jù)平臺(tái),包括Oracle,DB2,MySql,MsSql,Sybase,PostgreSql等
    生成測(cè)試數(shù)據(jù),可以根據(jù)數(shù)據(jù)庫(kù)模型生成測(cè)試數(shù)據(jù),方便進(jìn)行單元測(cè)試。
    生成相應(yīng)ORM代碼及配置文件,支持Hibernate3,OJB,IBatis及OpenJPA
    支持多國(guó)語(yǔ)言,包括中文(簡(jiǎn)體,臺(tái)灣繁體,香港繁體),英文,日文(謝謝Judy.Chang的日文翻譯)

    posted @ 2007-09-07 11:30 豬兒笨笨 閱讀(6103) | 評(píng)論 (42)編輯 收藏

    發(fā)布自己的一個(gè)Eclipse小工具插件,并為自己的數(shù)據(jù)庫(kù)建模插件作個(gè)預(yù)告

    我的主要工作是做Eclipse插件開(kāi)發(fā)
    在開(kāi)發(fā)中,遇到一些問(wèn)題,比較麻煩,象轉(zhuǎn)換文件編碼,或者替換文件內(nèi)容(Eclipse的雖然支持正則式,但只能替換成單行字符串,不爽)
    所以自己開(kāi)發(fā)一個(gè)小插件,放出來(lái),方便大家,支持以下功能:
    1、將指定的多個(gè)文件,進(jìn)行編碼轉(zhuǎn)換,如GBK->UTF-8(因?yàn)槲易霾寮_(kāi)發(fā)的時(shí)候,默認(rèn)是GBK,現(xiàn)在要發(fā)布源碼,國(guó)外的開(kāi)發(fā)人員,就有問(wèn)題,所以做了這個(gè)插件)
    2、對(duì)指定的多個(gè)文件,進(jìn)行替換,支持多行文本和正則式
    3、將指定的多個(gè)文件,恢復(fù)到最近一個(gè)版本。


    下載地址

    另外做個(gè)預(yù)告:
    本周內(nèi)將發(fā)布我的一個(gè)Eclipse數(shù)據(jù)庫(kù)插件(約100K行代碼),支持以下功能:
    1、數(shù)據(jù)庫(kù)正向建模(支持?jǐn)?shù)據(jù)表,存儲(chǔ)過(guò)程,視圖),并生成相關(guān)DDL
    2、數(shù)據(jù)庫(kù)反向工程,支持從數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)表,存儲(chǔ)過(guò)程,視圖等數(shù)據(jù)庫(kù)元素
    3、多數(shù)據(jù)平臺(tái),包括Oracle,DB2,MySql,MsSql,Sybase,PostgreSql等
    4、生成測(cè)試數(shù)據(jù),可以根據(jù)數(shù)據(jù)庫(kù)模型生成測(cè)試數(shù)據(jù),方便進(jìn)行單元測(cè)試。
    5、生成相應(yīng)ORM代碼及配置文件,支持Hibernate3,OJB,IBatis及OpenJPA






    以下是為IBatis生成的XML:

    <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"    "http://ibatis.apache.org/dtd/sql-map-2.dtd">
    <sqlMap>
     <sql id="selectUserWhere">
      <dynamic prepend="where">
       ..這里省略部分內(nèi)容
           </isPropertyAvailable>
       <isPropertyAvailable prepend="or" property="user_Or_NotNull_State"><![CDATA[STATE_C is not null]]>
       </isPropertyAvailable>
      </dynamic>
     </sql>
     <delete id="deleteUser" parameterClass="String"><![CDATA[
     Delete From demo.user_t
     Where USER_ID=#userId#
    ]]>
     </delete>
     <select id="getUserRolesByUser" parameterClass="String" resultMap="userRoleResult"><![CDATA[
     Select  USER_ID, ROLE_ID from demo.user_role_t
     
     Where USER_ID=#userId#
    ]]>
     </select>
     <select id="doCountUser" parameterClass="java.util.Map" resultClass="int"><![CDATA[
     Select count(*) From demo.user_t
     $Where$ $condition$]]>
     </select>
     <update id="updateUser" parameterClass="user"><![CDATA[
     Update demo.user_t SET  USER_ID=#userId# ,  USER_NAME=#userName# ,  PASSWORD=#password# ,  VALID_FROM=#validFrom# ,  VALID_TO=#validTo# ,  TITLE=#title# ,  DESCRIPTION=#description# ,  DOMAIN_C=#domain# ,  GROUP_C=#group# ,  ORDER_C=#order# ,  STATE_C=#state# Where USER_ID=#userId#
    ]]>
     </update>
     <insert id="insertUser" parameterClass="user"><![CDATA[
     Insert Into demo.user_t(USER_ID , USER_NAME , PASSWORD , VALID_FROM , VALID_TO , TITLE , DESCRIPTION , DOMAIN_C , GROUP_C , ORDER_C , STATE_C)
     Values(#userId# , #userName# , #password# , #validFrom# , #validTo# , #title# , #description# , #domain# , #group# , #order# , #state#)
    ]]>
     </insert>
     <select id="doSelectUser" parameterClass="java.util.Map" resultMap="userResult"><![CDATA[
     Select  USER_ID, USER_NAME, PASSWORD, VALID_FROM, VALID_TO, TITLE, DESCRIPTION, DOMAIN_C, GROUP_C, ORDER_C, STATE_C from demo.user_t
     
     $Where$ $condition$]]>
     </select>
     <select id="selectUser" parameterClass="java.util.Map" resultMap="userResult"><![CDATA[
     Select  USER_ID, USER_NAME, PASSWORD, VALID_FROM, VALID_TO, TITLE, DESCRIPTION, DOMAIN_C, GROUP_C, ORDER_C, STATE_C from demo.user_t
     
    ]]>
      <include refid="selectUserWhere"/>
     </select>
     <select id="selectUserByID" parameterClass="String" resultMap="userResult"><![CDATA[
     Select  USER_ID, USER_NAME, PASSWORD, VALID_FROM, VALID_TO, TITLE, DESCRIPTION, DOMAIN_C, GROUP_C, ORDER_C, STATE_C from demo.user_t
     Where USER_ID=#userId#
    ]]>
     </select>
     <select id="doDeleteUser" parameterClass="java.util.Map"><![CDATA[
     Delete From demo.user_t
     $Where$ $condition$]]>
     </select>
     <delete id="deleteUserByID" parameterClass="String"><![CDATA[
     Delete From demo.user_t
    ]]>
      <include refid="selectUserWhere"/>
     </delete>
    </sqlMap>

    posted @ 2007-09-07 00:19 豬兒笨笨 閱讀(1463) | 評(píng)論 (8)編輯 收藏

    2006年11月28日

    《Wicket開(kāi)發(fā)指南一書(shū)》在JavaEye提供PDF版本下載

    經(jīng)過(guò)一月的時(shí)間,在一些朋友的熱心幫助下,修正了一些問(wèn)題,現(xiàn)在發(fā)布正式的版本!
    希望大家喜歡Wicket這個(gè)框架!

    因?yàn)锽logJava有文件大小的限制,最大2M,所以只好將書(shū)籍放在JavaEye上
    大家可以通過(guò)以下連接下載PDF版本
    http://www.javaeye.com/topics/download/9acd675d-bebe-4e33-890f-af9f5f9ef8a2

    posted @ 2006-11-28 10:03 豬兒笨笨 閱讀(3429) | 評(píng)論 (7)編輯 收藏

    2006年11月5日

    《Wicket開(kāi)發(fā)指南》一書(shū)的代碼


    這里是《Wicket開(kāi)發(fā)指南》一書(shū)的代碼
    已經(jīng)整理完了
    代碼與書(shū)上基本一致,主要區(qū)別在于Page繼承自AbstractExamplePage而非WebPage。而且在每個(gè)Html頁(yè)面上多了一個(gè)mainNavigation,以提供View Source功能。,方便查看源代碼。

    這些源代碼不再需要額外的付出,任何人都可以下載,當(dāng)作《Wicket開(kāi)發(fā)指南》一書(shū)全文下載不方便的一些補(bǔ)償吧。

    下面是下載地址:
    http://gocom.primeton.com/modules/newbb/titleflat_5087_41.htm

    posted @ 2006-11-05 19:59 豬兒笨笨 閱讀(1843) | 評(píng)論 (7)編輯 收藏

    2006年11月3日

    免費(fèi)發(fā)布《Wicket開(kāi)發(fā)指南》一書(shū)(266頁(yè))

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

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

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

    你也可以在這個(gè)論壇上提出問(wèn)題,我會(huì)盡快回復(fù)
    http://gocom.primeton.com/modules/newbb/viewforum41.htm

    One World,One Dream。

    ?

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

    posted @ 2006-11-03 11:21 豬兒笨笨 閱讀(1938) | 評(píng)論 (1)編輯 收藏

    僅列出標(biāo)題  

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(18)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲日本va一区二区三区 | 日韩免费视频观看| 免费看无码特级毛片| 蜜桃传媒一区二区亚洲AV| 色播亚洲视频在线观看| 久久亚洲高清综合| 国产人成免费视频| 青春禁区视频在线观看直播免费| 国偷自产一区二区免费视频| 一级做a爰片久久毛片免费看| 欧美亚洲精品一区二区| 亚洲一区二区免费视频| 内射干少妇亚洲69XXX| 亚洲线精品一区二区三区 | 国产亚洲蜜芽精品久久| 国产亚洲国产bv网站在线| 亚洲日韩区在线电影| 国产亚洲精品a在线无码| 在线精品亚洲一区二区三区| 免费女人18毛片a级毛片视频| 妞干网手机免费视频| 成人性生交视频免费观看| 一本无码人妻在中文字幕免费| 亚欧在线精品免费观看一区| 国产一级片免费看| 久久er国产精品免费观看2| 一个人看的www免费视频在线观看| 羞羞视频免费网站在线看| 一二三区免费视频| 精品久久久久久国产免费了| xxxxx做受大片在线观看免费| eeuss免费影院| kk4kk免费视频毛片| 和老外3p爽粗大免费视频| 中文字幕无码免费久久9一区9| 国产无限免费观看黄网站| 久久久久久久久久免免费精品| 国产精品99爱免费视频| 日韩av无码免费播放| 久草免费手机视频| 亚洲视频免费在线播放|