豬兒笨笨的文檔

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

           

          2006年11月3日

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

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

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

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

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

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

          數據庫建模軟件Aquarius Orm Studio發布正式版本

          Aquarius Orm Studio發布正式0.1版本,可以通過下面地址訪問
          http://orm.aquatool.org/nl/zh/CN/index.html

          下面是它的基本功能介紹

          • 數據庫正向建模(支持數據表,存儲過程,視圖),并生成相關DDL
          • 數據庫反向工程,支持從數據庫導入數據表,存儲過程,視圖等數據庫元素
          • 支持多數據平臺,包括Oracle,DB2,MySql,MsSql(支持2005),Sybase,PostgreSql等
          • 生成測試數據,可以根據數據庫模型生成測試數據,方便進行單元測試。
          • 生成相應ORM代碼及配置文件,支持Hibernate3,OJB,IBatis及OpenJPA
          • 支持多國語言,包括中文(簡體,臺灣繁體,香港繁體),英文,日文(謝謝Judy.Chang的日文翻譯)
          • 支持生成Html格式的文檔,用來方便管理和歸類
          • 支持使用Velocity模板生成多種類型的文件


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

          源代碼正在申請Google的代碼庫,將于近期放出。
          開源協議我還在考慮中,但個人使用肯定是永遠免費。

          如果有問題,可以發站內消息或者直接發Email到wl_95421@yahoo.com.cn與我聯系









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

          發布基于Eclipse的數據庫建模及ORM框架代碼自動生成插件的RC2版,支持配置文件的模板

          根據大家的意見,對工具進行了一些修正,添加了以下幾個主要的功能

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

           

          我自己已經申請了一個域名,主機在國外,并逐步將自己的開源產品及相應的書放到上面,SVN的建立還在研究中。
          大家可以通過http://orm.aquatool.org/nl/zh/CN/來訪問這個地址,上面有在線文檔,不需要下載軟件即可了解軟件。
          有興趣的朋友,可以通過下載RCP版本來試用,晚一點我會建立論壇及MailList,希望大家可以提供更多的意見。






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

          發布基于Eclipse的數據庫建模及ORM框架代碼自動生成插件(支持Hibernate,Ojb,IBatis等)

          下載地址

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

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

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

          以下是工具的介紹

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

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

          發布自己的一個Eclipse小工具插件,并為自己的數據庫建模插件作個預告

          我的主要工作是做Eclipse插件開發
          在開發中,遇到一些問題,比較麻煩,象轉換文件編碼,或者替換文件內容(Eclipse的雖然支持正則式,但只能替換成單行字符串,不爽)
          所以自己開發一個小插件,放出來,方便大家,支持以下功能:
          1、將指定的多個文件,進行編碼轉換,如GBK->UTF-8(因為我做插件開發的時候,默認是GBK,現在要發布源碼,國外的開發人員,就有問題,所以做了這個插件)
          2、對指定的多個文件,進行替換,支持多行文本和正則式
          3、將指定的多個文件,恢復到最近一個版本。


          下載地址

          另外做個預告:
          本周內將發布我的一個Eclipse數據庫插件(約100K行代碼),支持以下功能:
          1、數據庫正向建模(支持數據表,存儲過程,視圖),并生成相關DDL
          2、數據庫反向工程,支持從數據庫導入數據表,存儲過程,視圖等數據庫元素
          3、多數據平臺,包括Oracle,DB2,MySql,MsSql,Sybase,PostgreSql等
          4、生成測試數據,可以根據數據庫模型生成測試數據,方便進行單元測試。
          5、生成相應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">
             ..這里省略部分內容
                 </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 豬兒笨笨 閱讀(1475) | 評論 (8)編輯 收藏

          《Wicket開發指南一書》在JavaEye提供PDF版本下載

          經過一月的時間,在一些朋友的熱心幫助下,修正了一些問題,現在發布正式的版本!
          希望大家喜歡Wicket這個框架!

          因為BlogJava有文件大小的限制,最大2M,所以只好將書籍放在JavaEye上
          大家可以通過以下連接下載PDF版本
          http://www.javaeye.com/topics/download/9acd675d-bebe-4e33-890f-af9f5f9ef8a2

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

          《Wicket開發指南》一書的代碼


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

          這些源代碼不再需要額外的付出,任何人都可以下載,當作《Wicket開發指南》一書全文下載不方便的一些補償吧。

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

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

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

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

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

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

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

          One World,One Dream。

          ?

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

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

          導航

          統計

          常用鏈接

          留言簿(18)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 綦江县| 洮南市| 海门市| 阜阳市| 克拉玛依市| 元谋县| 罗城| 疏勒县| 永清县| 汝阳县| 白玉县| 杂多县| 同江市| 朝阳市| 依兰县| 清原| 亚东县| 固镇县| 陕西省| 齐河县| 五华县| 依安县| 麻栗坡县| 电白县| 萝北县| 汕尾市| 根河市| 修文县| 无棣县| 阜宁县| 东兴市| 焉耆| 朝阳市| 治县。| 黔西县| 贵阳市| 遵义县| 攀枝花市| 克什克腾旗| 枣庄市| 正阳县|