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

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

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

    Burn Net--燒網

    玩的是電腦,別被電腦玩了。

    統計

    留言簿(2)

    積分與排名

    Dojo

    閱讀排行榜

    評論排行榜

    2006年8月10日 #

    SwingWeb 1.0.0發布

    Swingweb是一個web程序開發框架,它把AWT/Swing程序裝入一個web容器,然后轉換為純凈HTML/CSS/javascript。在開發過程中,swing包是沒有任何改變的,開發者完全可以使用原來寫swing的知識和習慣來編寫網頁程序。
    以下是Swingweb項目的主要目的:
    1. 創建真正的基于組件(component)web應用程序平臺?
      Swingweb允許開發者利用 UI components的概念來開發web應用程序。大大簡化了以前繁復的頁面管理,seesion創建等等。一旦創建了一個組件(component), 無論是一個簡單的textbox,還是一個復雜的calender,都是可以重復使用的(reusable),這減輕了開發負擔。
    2. 在web應用程序開發中使用swing UI model
      Swing component model在java平臺中應用得非常廣泛,所以那些java程序員如果選用swingweb作為開發框架,將不會花費多少時間來學習。
    3. 允許使用各種GUI開發工具來簡化開發
      當今已經有很多優秀的JAVA IDE支持GUI開發,例如eclipse和netbeans,開發者可以隨意使用就像在開發一個java桌面應用程序一樣。

    這里有2個swingweb的演示flash:
    Swingweb官方網站:
    http://swingweb.sourceforge.net/swingweb/

    posted @ 2006-08-10 20:50 Burn Net 閱讀(905) | 評論 (0)編輯 收藏

    將來12個月內java技術前瞻--來自16位德國java專家

    昨天,16位德國JAVA專家在一起討論“在下面12個月中,我們應該學習什么?”,如果你想知道討論的詳細內容,請看這里http://www.firstpartners.net/red-piranha/knowledgebase/VirtualJavaMeetup.

    如果你沒有耐心看下去,那么請看我列出的總結:
    • 網絡服務將會膨脹,但是前提條件是必須保持整潔的情況下。
    • EJB 3 和 Netbeans 是非常值得我們在上面花費時間的, 它們都比以前的版本要完善得多,雖然之前它們的名聲并不是那么好。
    • Middleware (例如 workflow and Rules Engines) 關注的是團隊開發,但是想進入這樣一個團體的障礙是很高的。
    • Struts會繼續稱霸JAVA WEB frameworks, 盡管它已經不是最優秀的技術了。
    • 非常多的公司將繼續使用 Java 1.4, 同時關注著Java 1.6。
    • Service Orientated Architecuture (SOA)是一個非常不錯的想法,但是目前為止并沒有太多的project在使用它。
    • IDE’s (Netbeans / Eclipse / JDeveloper) 會給我們帶來很多好處, 前提條件是它們必須被low level工具支持 (例如 Ant 和 Maven).

    posted @ 2006-08-10 20:49 Burn Net 閱讀(1000) | 評論 (1)編輯 收藏

    2006年6月27日 #

    踏上國土。

    經過11個半小時的長途飛行,還有在韓國的一夜煎熬,終于踏上了祖國的國土?;丶业母杏X真好。
    不得不提一下在韓國的待遇,因為要過夜,機場提供賓館住宿,飛機于韓國當地時間晚上9點半到達,結果凌晨2點多我才躺在賓館的床上。
    條件還是不錯,是個5星的賓館,于是按計劃給沒有同行的老婆打個電話,聊了大概20分鐘,可是第二天退房的時候竟然要了我1萬多korean wan,合人民幣100左右。我算是張記性了,以后還是買張卡再打電話吧。

    回國稍微休息了一天,把Dojo book第一章補充翻譯了出來。

    posted @ 2006-06-27 17:10 Burn Net 閱讀(318) | 評論 (2)編輯 收藏

    Dojo book第一章補充 I/O

    譯者序:
    Dojo book目前還在不斷更新和補充中,我會盡量跟上原著的腳步,給大家最新的信息。
    更新我會用隨筆寫出來,同時也會更新原文章。

    I/O

    dojo.io.blind介紹


    在我們制作dojo的時候,目的是讓用戶和開發者都能享受到DHTML程序。在很多朋友的支持下,特別是Aaron Boodman和Mark Anderson,我們已經找到了解決可用性的方法。我們提供了一個單獨的易用的API和一個包裝類,這個類只需要兩個文件。dojo.io包提供了對XMLHTTP和一些其他更復雜的傳輸結構的支持。

    在dojo.io包中我們一般最常使用的是dojo.io.bind()方法。dojo.io.blind()是一個標準的異步的請求API,它包含了各種傳輸層(transport layers),包括queues of iFrames,XMLHTTP,mod_pubsub,LivePage等等。Dojo會試圖為當前的請求選擇最合適的傳輸方法,因為在做網站時一般不會使用到其他傳輸,所以我們只用到XMLHTTP。dojo接受一個匿名的類,但是在知道這個類的屬性的情況下,把它作為方法參數(function argument)。下面的代碼是創建一個請求(request),這個請求會從URL返回原始的字符串。
    dojo.io.bind({
    ????url:?
    "http://foo.bar.com/sampleData.txt",
    ????load:?
    function(type,?data,?evt){?/*do?something?w/?the?data?*/?},
    ????mimetype:?
    "text/plain"
    });

    這就是全部,你提供了一個數據地址,還有一個當你得到返回值時要執行的function。但是如果在請求過程中出錯了怎么辦呢?我們再來創建一個register來解決:

    dojo.io.bind({
    ????url:?
    "http://foo.bar.com/sampleData.txt",
    ????load:?
    function(type,?data,?evt){?/*do?something?w/?the?data?*/?},
    ????error:?
    function(type,?error){?/*do?something?w/?the?error*/?},
    ????mimetype:?
    "text/plain"
    });

    同樣也可以只創建一個單獨的handler來解決:
    dojo.io.bind({
    ????url:?
    "http://foo.bar.com/sampleData.txt",
    ????handle:?
    function(type,?data,?evt){
    ????????
    if(type?==?"load"){
    ????????????
    //?do?something?with?the?data?object
    ????????}else?if(type?==?"error"){
    ????????????
    //?here,?"data"?is?our?error?object
    ????????????//?respond?to?the?error?here
    ????????}else{
    ????????????
    //?other?types?of?events?might?get?passed,?handle?them?here
    ????????}
    ????},
    ????mimetype:?
    "text/plain"
    });

    下面的代碼提交一段javascript程序段,然后讓服務器運行它,一般我們這么做是為了加速程序運行,注意mimetype:
    dojo.io.bind({
    ????url:?
    "http://foo.bar.com/sampleData.js",
    ????load:?
    function(type,?evaldObj){?/*?do?something?*/?},
    ????mimetype:?
    "text/javascript"
    });

    如果你想確保程序使用XMLHTTP,可以這樣寫:
    dojo.io.bind({
    ????url:?
    "http://foo.bar.com/sampleData.js",
    ????load:?
    function(type,?evaldObj){?/*?do?something?*/?},
    ????mimetype:?
    "text/plain",?//?get?plain?text,?don't?eval()
    ????transport:?"XMLHTTPTransport"
    });
    Being a jack-of-all-trades, bind() also supports the submission of forms via a request (with the single caveat that it won't do file upload over XMLHTTP):
    作為一個jack-of-all-trades(萬事通),bind()同樣支持來自于表單提交的數據。
    dojo.io.bind({
    ????url:?
    "http://foo.bar.com/processForm.cgi",
    ????load:?
    function(type,?evaldObj){?/*?do?something?*/?},
    ????formNode:?document.getElementById(
    "formToSubmit")
    });
    以上只是一些最基本的,其實這些可以不用全部由開發者自定義。

    RPC
    你可以看到,Dojo通過dojo.io.bind提供了簡單,強大的方法使用多種多樣的I/O functions。但是在開發過程中,程序員會調用很多很多I/O,這同時會給服務器和客戶端加重負擔。Dojo的RPC服務就是為了減少負擔,易用,精簡代碼而生的。

    RPC的全名是Remote Procedre Calls,或者Remote Method Invocation,(譯者:遠程method調用)。最基本的,RPC允許開發者調用在遠程服務器上的方法(method)。Dojo不僅提供了基本的RPC client包,而且還擴展了它,使它支持JSON-RPC服務和YAHOO服務。同時你也可以自己寫出相對于其他服務的類。

    我們假定有一個需要調用服務器端程序的小程序,假設要調用add(x,y)和subtract(x,y)。在沒有特殊情況的條件下,我們的客戶端會這樣寫:
    add?=?function(x,y)?{

    ????request?
    =?{x:?x,?y:?y};

    ????dojo.io.bind({
    ????????????url:?
    "add.php",
    ????????????load:?onAddResults,
    ????????????mimetype:?
    "text/plain",
    ????????content:?request
    ????});
    }

    subtract?
    =?function(x,y)?{

    ????request?
    =?{x:?x,?y:?y};
    ????
    ????dojo.io.bind({
    ????????????url:?
    "subract",
    ????????????load:?onSubtractResults,
    ????????????mimetype:?
    "text/plain"
    ????????content:?request
    ????});
    }


    你看,這不是很難。但是無論是我們讓服務器運行add和subtract還是讓客戶端自己計算,這只是一個非常簡單的程序。如果我們要調用在服務器上30個不同method會怎么樣呢?我猜我們可能要重復的寫幾乎一樣的代碼一遍又一遍,每次都要創建一個請求類(request object),設定URL,設定變量等等。這不僅容易出錯,而且還很枯燥。
    Dojo的RPC客戶端簡化了這個過程:

    {
    ????
    "serviceType":?"JSON-RPC",?
    ????
    "serviceURL":?"rpcProcessor.php",?
    ????
    "methods":[?
    ????????{
    ????????????
    "name":?"add",?
    ????????????
    "parameters":[
    ????????????????{
    "name":?"x"},
    ????????????????{
    "name":?"y"}????
    ????????????]
    ????????},
    ????????{
    ????????????
    "name":?"subtract",?
    ????????????
    "parameters":[
    ????????????????{
    "name":?"x"},
    ????????????????{
    "name":?"y"}????
    ????????????]
    ????????}

    ????]
    }

    以上就是對于服務器的定義。一旦定義創建完畢,其他的事情就簡單了,我們還可以創建一個類:
    var?myObject?=?new?dojo.rpc.JsonService?(defintion);
    要使用服務器的方法:
    myObject.add(3,5);

    我敢打賭你會在想“我不是只調用方法就夠了,我還有得到計算的結果?!蹦闶菍Φ?,但這也是非常容易的。服務器端的myObject.add()會返回一個延緩類(deferred object)。Twisted Python用戶可能對延緩類(deferred object)很熟悉,延緩類(deferred object)允許開發者根據返回數據的類型附加一個或更多的回叫(callbacks)和錯誤處理(errbacks)。這里有一個簡單的例子:
    var?myDeferred?=?myObject.add(3,5);
    myDeferred.addCallback(myCallbackMethod);

    我們把mycallbackmethod作為回叫添加到我們的延緩類mydeferred。這時,8會被傳遞進mycallbackmethod。另一方面,我們也可以添加一個errback method來處理服務器返回的出錯信息。我們隨意添加回叫方法(callback),多少都可以,它們會按照我們定義的順序被調用。

    以上的例子都是圍繞dojo.rpc.JsonService展開的。我們還可以使用dojo.rpc.YahooService,規范和結構都是一樣的。這兩個類都是繼承了dojo.rpc.RpcService。要創建自己的類會在第二章中詳細介紹。(譯者:第二章原著還沒有完成)

    posted @ 2006-06-27 16:56 Burn Net 閱讀(2474) | 評論 (7)編輯 收藏

    2006年6月23日 #

    旅途

    明天中午12點我將坐上飛往祖國的航班。
    想想11個半小時的飛行就煩。計劃在飛機上完成Dojo.Book第二章的翻譯。
    幻想10年后的飛機會有多么舒適,有床,可以上網我就滿足了。
    現在我都快有恐飛癥了。

    posted @ 2006-06-23 20:55 Burn Net 閱讀(271) | 評論 (0)編輯 收藏

    2006年6月22日 #

    一個“笑話”引發的思考

    抱歉引用了“饅頭”的經典格式。
    技術是枯燥的,如果我們玩技術的再不自娛自樂一下,那可真沒救兒了。
    言歸正傳,“笑話”是這樣的:

    當美國人第一次成功發射載人衛星后,美國宇航員發現因為太空缺少地球引力,原來方便的圓珠筆不能用了。于是美國花巨資組成了一個研發小組,經過半年后終于研制出了一種可以不受引力限制的圓珠筆,美國宇航局(NASA)非常滿意。
    與此同時,俄羅斯宇航員也遇到了同樣難題,圓珠筆不好用了!
    結果俄羅斯宇航員決定使用鉛筆。


    我突然想起了我在不久之前研究ajax的時候,為了使用Net Beans+GWT來開發ajax,查閱了很多文檔,找了很多資料,就是沒想起來其實可以用textpad寫class的。

    這也是我為什么喜歡上dojo的原因,本來簡潔的東西就讓它簡潔下去,何必讓它那么復雜?

    當然,如果能熟練的用Net Beans+GWT或者DWR開發ajax也不乏是件美事。

    但是也許有的時候我們沒有象“美國”那樣的實力或者精力,在想簡單的作一個小項目的時候不妨試試“俄羅斯”的辦事方法,該簡單的事情別搞復雜了。

    posted @ 2006-06-22 19:11 Burn Net 閱讀(238) | 評論 (0)編輯 收藏

    最近愛上Dojo

    也許是因為Dojo的簡潔,強大,或者是我真的沒有耐心自己一點一點寫javascript。

    以前研究過gwt,dwr,最后還是感覺dojo用得最舒服,dojo不會象dwr限制我的server side。

    以后我會寫很多關于dojo的文章,當然還包括如何自由使用dojo鏈接到servlet/jsp/php/sql。

    posted @ 2006-06-22 19:10 Burn Net 閱讀(632) | 評論 (1)編輯 收藏

    2006年6月21日 #

    Dojo.Book第一章翻譯完成。(鏈接修正,抱歉)

    今天突然發現原來wordpress.com的blog在中國訪問有問題,為了能跟更多的朋友一起學習,于是決定轉到這個blog,開始我的新研究旅程。

    這里的第一感覺是氣氛很好,沒有程序員的牢騷,只有技術,技術第一。

    把剛剛完成的Dojo.Book第一章翻譯轉過來,給有需要的朋友一些幫助,我會抓緊把下兩章翻譯出來。
    Dojo.Book第一章
    以后我還會寫更多關于Dojo的文章。
    我個人比較看好Dojo,簡潔,強大,最近Sun也加入了Dojo開發組。

    抱歉,剛剛修正鏈接。

    posted @ 2006-06-21 13:09 Burn Net 閱讀(1620) | 評論 (4)編輯 收藏

    僅列出標題  
    主站蜘蛛池模板: 国产小视频免费观看| 1000部国产成人免费视频| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 老司机福利在线免费观看| 成年在线观看免费人视频草莓| 亚洲国产成人无码av在线播放| 91免费在线播放| 亚洲国产成人99精品激情在线| 欧美男同gv免费网站观看 | 免费jjzz在在线播放国产| 亚洲日本va一区二区三区| 成人黄色免费网址| 中文字幕在线日亚洲9| 白白国产永久免费视频| 羞羞漫画小舞被黄漫免费| 亚洲国产成人精品无码久久久久久综合 | 色噜噜亚洲男人的天堂| 男男AV纯肉无码免费播放无码| 亚洲一区精彩视频| 国产成人免费网站在线观看 | 另类小说亚洲色图| 亚洲人成无码久久电影网站| 波霸在线精品视频免费观看| 亚洲成A∨人片在线观看不卡| 91福利免费体验区观看区| 亚洲精品福利你懂| 亚洲国产午夜福利在线播放| 18禁在线无遮挡免费观看网站| 亚洲成a人片在线观看播放| 免费高清av一区二区三区| h视频免费高清在线观看| 亚洲国产人成在线观看69网站| 91在线视频免费看| 窝窝影视午夜看片免费| 久久精品国产亚洲av四虎| 国产免费AV片在线播放唯爱网| 色www免费视频| 亚洲色偷偷av男人的天堂| 日本无卡码免费一区二区三区| 免费萌白酱国产一区二区三区| 亚洲AV成人噜噜无码网站|