毛豆的備忘錄暨開發實記

記錄小系統的開發階段及容易忘卻的東西

Home Contact Syndicate this Site (RSS 2.0) Syndicate this Site (Atom) Login
  36 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

文章分類

每月文章

隨筆分類

影像集

不分類好站


Tuesday, December 04, 2007 #

如題,我當兵去了

 

實在很難一邊煮飯一邊想程式,煮飯真是門大學問…

 

等我脫離菜兵的身份後應該就能繼續更新了吧。

posted @ 9:51 PM | Feedback (0)

Monday, September 24, 2007 #

大家要注意儀容哦,不然就得和妹們拜拜(雖然如果是品味問題真的很不容易改 科科)

原文請點我

posted @ 6:40 AM | Feedback (0)

Saturday, September 22, 2007 #

為何會寫這篇呢?毛豆我把寫好的程式丟到w3c檢查,發現ASP.net轉成html碼後,無法通過html 4的驗證,其實也不是非通過不可,但還是稍微吹毛求疵了一下。

怎麼把本機端的html碼放到w3c的驗證程式中,使用firefox的WebDeveloper外掛就行了。

 

先放上我的html碼:

一開始,很糟糕的因為一個name屬性,我的程式不管怎麼做都驗證不成功,請看圖。遇到這個問題時,我不斷的找資料,但都沒有關於移除name屬性的資料,害得我把它想成是ASP.net的原罪而放棄了。後來在看董大偉的【ASP.net徹底研究 高階技巧及控制項實作】這本書時,突然找到關於覆寫Render的資料,燈泡就亮了起來!這不就是之前找了好久的東西嗎,有了Render這關鍵字,也順利在【孟子e章】找到更詳細的資料,利用這個技巧改寫了一下。

 

我所改寫出的程式碼如下:

 

然後,我的程式碼在轉成html碼之後,順利把form中的name屬性移除掉了,結果如下:

移除name屬性後,仍可正常運作。

 

最後,讓我們看看驗證的結果,請看圖

驗證通過了,好耶,這個技巧也可以應用在把一些html碼改成符合需要的情況如<br>  =>  <br />,或是不需要的Tab以及空白移除,如在<p>123</p>   <p>543</p>     =>  <p>123</p><p>543</p>

 

所以目前我的程式碼是:

posted @ 9:11 AM | Feedback (0)

Wednesday, September 19, 2007 #

嘿,中文版的呢,雖然搞不好已經很多人曉得了,還是貼一下:

MSDN Magazine點選~Back Issue Archive

posted @ 4:36 AM | Feedback (0)

Wednesday, September 12, 2007 #

參考Introduction To .NET Regular Expression(黑暗執行緒)

網路上看到最好的Regular Expression教學,作者剛好也是用.net的,拿來當範例正好。

posted @ 2:34 PM | Feedback (0)

Thursday, July 26, 2007 #

參考:URL是否存在的三種方法(孟子E章 簡體blog)

有時候必須要從別的網站抓圖到自己的伺服器或是顯示出來,但如果只使用System.Net.WebClient的DownloadFile方法,它會連錯誤訊息網頁都當成正確的網頁抓取,這該怎麼辦呢?在藍色小舖討論區發問後才曉得還可以用DownloadData,但一樣,會有抓到錯誤訊息網頁的問題。

最後我在上奇出版社的ASP.net開發手札第二十二章找到解法,也就是使用System.Drawing裡的方法,把圖片當成資料流,接著再利用try catch的方法,只要出錯,遠端就是非圖檔、不存在或是有擋掉外部連結,只要在測完後再把圖片DownLoad到伺服器上就行了,相當好用。

以下是程式碼:

程式碼很短,相當靈巧。


本來是到這邊就應該結束了,但我後來發現Bitmap也有Save的方法,所以也測了一下兩者運作時間
,後來發現Bitmap的Save較快。

程式碼:


再來是對網路上同一張圖(約400kb的bmp檔)用兩種方法各存取五十次,把其中時間的差異(以DateTime.Ticks計)存到資料庫中,再經過比較,會產生下表:


Bitmap.Save WebClient.DownloadFile
時間總合 107343750 5175781250
平均時間 2146875 103515625

以平均時間計,WebClient下載五十張圖的時間,花了約Bitmap存五十張圖檔的48.21倍,如果沒有必要,我一定會改寫成Bitmap.Save。


原表如下:(type = 1:Bitmap.Save;type = 2:WebClient.DownloadFile;t :時間差異)

test1
type T
1 3281250
1 1406250
1 1718750
1 937500
1 1093750
1 2500000
1 937500
1 1093750
1 3437500
1 2812500
1 1562500
1 2031250
1 1093750
1 937500
1 937500
1 1093750
1 1093750
1 4218750
1 1250000
1 1406250
1 2500000
1 6093750
1 2812500
1 937500
1 1250000
1 937500
1 1093750
1 781250
1 2968750
1 1250000
1 4531250
1 1250000
1 3437500
1 5156250
1 1093750
1 2656250
1 1093750
1 3125000
1 5937500
1 1093750
1 2968750
1 1093750
1 937500
1 1875000
1 1250000
1 1406250
1 5468750
1 2343750
1 1250000
1 3906250
2 91250000
2 87968750
2 106406250
2 80937500
2 116250000
2 108281250
2 97031250
2 93906250
2 99531250
2 111875000
2 109062500
2 84687500
2 105781250
2 115312500
2 105156250
2 115781250
2 96406250
2 109531250
2 115312500
2 107031250
2 88437500
2 86875000
2 100937500
2 110937500
2 119375000
2 95000000
2 112031250
2 99843750
2 95937500
2 88906250
2 85625000
2 113437500
2 111406250
2 122968750
2 106562500
2 97812500
2 105312500
2 105000000
2 121250000
2 115781250
2 109375000
2 137812500
2 111875000
2 99062500
2 94687500
2 88750000
2 102656250
2 95000000
2 93281250
2 102343750
posted @ 1:46 PM | Feedback (2)

Saturday, July 21, 2007 #

引用:讀取xml的單一欄位

這是.net操作xml的眾多方法中,用在讀取單一節點內容的方法,適用於當作設定檔或是快取檔的xml。在使用前,記得先Imports System.XML這個類別

 

讀取:

 

更新:

posted @ 8:56 PM | Feedback (0)

Friday, July 06, 2007 #

今天使用資料庫連線時遇到問題,情況是,不論我怎麼做,某一欄位都無法更新,但其它地方都可以更新,以下是更改前的程式碼:

後來在小舖的ASP.net討論區找到解法了,原因就是順序搞錯,parameters有個沒寫出來的規定,就是加入的順序必須和SQL語法相同,所以之後修改像下面的程式碼後就好了:

我果然還太弱,花了兩天都不曉得為什麼出包。

posted @ 9:58 PM | Feedback (0)

Sunday, July 01, 2007 #

TIPS-如何動態載入Javascript或CSS?
隨機音樂
無限分類算法 js 的實現

 

用 CSS 於連結後面加 icon (與副檔名相關小圖)參考資料(2007/3/24找到)

在css樣式表裡面直接加入判斷副檔名的方法,並依此顯示不同的小圖?!實在太酷了

Reset CSS - 取消 Html 原有樣式

posted @ 7:03 AM | Feedback (0)

Sunday, June 10, 2007 #

這個元件用以顯示進度百分比的Web使用者控制項,可以放在工作報告等處,目前無法動態顯示,但如果有空的人可以試著用JavaScript改寫。

裡面我放了四個對外開放的屬性

  • Percent:表示百分比
  • BarStyle:前景Div的css內容
    • BarStyle="border:1px solid black; color:red;"
  • GroundStyle:後景Div的css內容
    • GroundStyle="background-color:blue;"
  • ShowText:顯示於前景Div的字串,可在字串中加入%符號,程式會把%符號換成進度。
    • 如輸入【第一選項:%】,則顯示時會變成【第一選項:90%】

 

uc_ProgressBar.ascx

uc_ProgressBar.ascx.vb

posted @ 10:05 PM | Feedback (0)

Tuesday, May 29, 2007 #

引用:WSBLog Beta2 Build 70325發佈

引用:輕鬆支持100萬文章的BLOG系統

前天在亂逛網路時突然找到這玩意【WSBlog】,一看之下讓我大吃一驚,一直以為.net是個很封閉的環境,因為幾乎都沒看到成熟度高的Open Source、可用免費資源也相對較少,所以想自己開發個原始碼開放的Blog。

沒想到在大陸那邊早就有熱心人士做了,而且架構完整,公佈出來的東西我可能寫一年都沒那麼好,與其我再寫個爛爛的東西出來,倒不如來幫忙推廣這份BLOG程式,好東西總要推的嘛。

它的特色有:

  • 支援SQL-Server及Access兩種資料庫:雖然它可以再支援Oracle,但作者還沒更新出來,有空的人可以自己寫。
  • 支援靜態網址生成及靜態網頁保存:靜態網址是BLOG三大特色之一,但國內這部份始終做得不好,這份BLOG甚至做到讓寫好文章保存成htm格式。
  • 運行效能高:並倒入13萬筆資料做測試,結果我在看測試站內容時,它跑得還比許多站快上n倍,整個就是

昨晚花了一整晚在試著架設,總算成功讓它在自己電腦上跑起來了,雖然還不曉得怎麼把一些預設的東西移掉,發表的文章也不曉得怎麼讓它從資料庫中拿出來,但還是讓我興奮的不得了。接下來我要把從下載到架設的步驟一個個寫下來,希望大家有空能架看看,並把它補完。

 

前置:

下載兩個程式壓縮包【WSBLOG】【Z-Blog】,把WSBLOG.zip解壓後,其中的WSBLOG資料夾內容都放到:C:\Inetpub\wwwroot\WSBLOG,並設定在該資料夾使用權限中加入ASP.net,層級是修改Everyone的權限改為:讀取及執行

把資料夾中所有的檔案及資料夾都設定繼承父項的權限。


一、修改資料庫內容:

因為WSBLOG預設採用SQL-server,如果要換成Access當後端資料庫就得下載另一個以 ASP撰寫的免費BLOG。先到Z-Blog下載手動安裝包,解壓縮完後從Data資料夾中找出資料庫(zblog.mdb),更名為:yangblog.mdb,開啟它後按照作者的說明做修改。

步驟如下:

  1. 打開blog_Category資料表,把cate_Order字段改為文字類型,並且增加以下欄位:
    • cate_Code:文字
    • cate_ParentID:數字
    • cate_ParentCode: 文字

  1. 新增資料表blog_TagArticle,用來保存Tag和文章的對應關係,內容如下:
    • tag_log_ID:自動編號
    • tag_ID:數字
    • tag_Name:文字
    • log_ID:數字
    • log_Title:文字


二、修改Web.Config

作者為了達成靜態網址的效果,寫了兩個Web.Config,並分別命名為:

  • 需要靜態網址功能的Web.config.urlrewrite.sample
  • 以及不需要該功能的Web.config.sample

可依自己需要,把其中之一檔名改為:Web.config,我採用的是Web.config.sample,放置在C:\Inetpub\wwwroot\WSBLOG

 

為了替換資料庫,在裡面必須動一些手腳,找到<appSettings>後,把內容換成以下xml碼:

其中E:\WSBLog\DATA\yangblog.mdb要換成機器上的實體資料庫位置。如果不曉得在哪,先執行Data資料夾裡的Test.asp,它會把目前的所在位置顯示出來,我的是C:\Inetpub\wwwroot\WSBLOG\DATA\yangblog.mdb


三、增加Global.acax

不曉得是忽略了還是什麼原因,壓縮檔裡並沒有放上該檔案,所以要自己手動加入,它的內容是:

放置在C:\Inetpub\wwwroot\WSBLOG


四、設定iis


五、新增blogconfig.xml

新增一個blogconfig.xml檔案,編碼採utf-8,內容如下:

  • 要自動更新的:
  • 取消自動更新:

放置在C:\Inetpub\wwwroot\WSBLOG


嗯,設定完了,印象中就醬子,接下來輸入:http://localhost/WSBLOG/Default.aspx來看看成果吧,程式登入帳號密碼(以z-blog的Access當資料庫版本)都是【zblogger】

觀看架設好後的預覽圖(圖太大了,所以做成超連結)


這篇如果喜歡,可以直接轉走、修改,但要註明來源以及程式原作者網站,禁止拿去販售後卻不進行服務,全推給原作者。

posted @ 2:28 PM | Feedback (4)

Monday, May 28, 2007 #

這是由MIS2000 Lab所撰寫的書籍,台科大出版社。

該書是毛豆剛開始學ASP.net的入門書之一,它使用VS.net 2003當開發範例,在當時使用純文字編輯工具以外來開發ASP.net的教本可說是非常的少,所以讓我少了很多的學習時間。

當然會有人說這樣養出來的人都不懂背後在幹些什麼啦,不過呢~大家真的搞得懂.net Framework背後所有的控制項在幹些什麼嗎?找一套好的工具趕快先入門,然後不懂的架構再自己找資料補進去也是一種學習方式呀!不是所有人都是由有資訊背景的情況跑來學的,也有很多的初心者、學生不是嗎?

MIS2000 Lab非常的好心,把大部份的章節都轉成了PDF檔放在網站上供人下載,對於想多比較內容才買書或是只想找一些資料的人可說是一大福音。網址:http://www.taconet.com.tw/mis2000_aspnet

當然,如果看了覺得不錯,記得要去書局買一本支持一下呀,反正這本書定價不價,打完折後真是超便宜的。

 

最後聲明:這不是置入性行銷,因為突然想到我能順利入門是靠這本書,所以才打這篇感謝一下,喵喵。

posted @ 11:35 AM | Feedback (2)

Friday, May 25, 2007 #

剛才看到個很有趣的東西:Google 機器人與芭樂網經理的對話

看完後受教許多,果然靜態連結很重要,但卻找不到資料…

 

看到最後一段的「唉,你要知道, Google 對員工十分的好,免費提供飲料、點心讓你吃到飽。但,就是不提供煙啊。」我笑了,笑得很大聲。這是在反諷一些環保、健康概念嗎?哈哈。

posted @ 2:38 AM | Feedback (0)

Thursday, May 24, 2007 #

引用:我自己的Google筆記本

以下的資料庫採用Access,如果不是使用Access的人請到自己的說明中看怎麼用對應的語法。

 

替DataList或是Repeater加分頁功能:(這是目前我所想最簡單的版本了)

這要怎麼用呢?首先,子查詢中的40用字串代替,該字串隨著頁碼來更動,如第一頁就是TOP 0,第二頁是TOP 20,以此類推(在此假設一頁有二十筆資料,且資料庫中支援取前幾筆資料)。

 

 

替資料表加上總合:

這麼一來,資料表中就內含自己每一項的總合了,不必像以往一樣,寫系統時先取一次資料,然後根據每個編號再取N次,舊方法光是傳輸就不曉得花了多少時間。

 

 

在資料表中直接把null值取代成空字串:

意思就是如果在Article資料表中的Content欄位如果是null,把它替換成""(空字串),不然就傳原值回來給系統。應用方法還有很多種,譬如如果是數值資料,就可以把空字串換成0等等。

 

 

綜合應用:

  • 子查詢是從Upload中依FilePath_Id分群,查出檔案個數、檔案大小總合。
  • 利用左結合的方式把兩張資料表(FilePath和Uploads暫存表)合成一張。
  • 由於不是每個資料夾裡面都有檔案,所以在Uploads暫存表中再加上IIf把null值改成0(因為都是整數嘛),避免出現DbNull。
posted @ 10:07 AM | Feedback (0)

Saturday, May 19, 2007 #

引用:Movable Type 文件集
引用功能技術規格

引用:TrackBack原理及源碼實現

「TrackBack」為通知原文發文者我對原文做了些評筆的功能,中譯「引用」。這在Blog中是相當常見的技術,原始概念是來自BBS上的推文及收藏評論。為了開發blog,在網路上找了許多資料,好不容易給我找到關於實作的部份了。

這篇先說概念的部份,真正要實作就等晚點吧。先看引用功能技術規格裡所載,引用功能是在資源A與資源B中利用一種叫做TrackBack ping的Request的技術來達成。若A為原發文者,B想用A的文章並發表些評論,則B可以發送一個TrackBack ping到A所公佈的網址,當A收到時,便回傳一份xml文件,借以告知B關於這份TrackBack ping被處理的情形。

文件中規範了TrackBack以Post的方式來傳遞,即一切的函數都隱藏在背後。雖然有些站台也支援Get,但最好是發送都採用Post,接收則兩種兼具。

接著讓我們看Request內容:

  1. 目的地:這決定了將被發送到哪個網址,如「http://www.foo.com/mt-tb.cgi/5」
  2. 編碼格式:application/x-www-form-urlencoded
  3. 真正傳送的內容:title=Foo+Bar&url=http://www.bar.com/&excerpt=My+Excerpt&blog_id=Foo

目的地則是對方放出來的網址,該網址必須要能處理以Post為傳送方法的Request。其中真正傳送的內容分成四段:

  • Title:所撰寫之標題,若沒加Title則以網址代替。
  • Url:自家網站的網址。
  • Excerpt:撰寫的內容。
  • Blog_id:自家網站的名稱。

 

當網站A收到了這份Request,則會回傳兩種xml中的一種回去給B,一種成功,另一種則代表失敗,其內容如下:

  • 成功:
  • 失敗:

 

如此便完成了。

posted @ 1:33 PM | Feedback (0)