2011年10月30日 星期日

關於Null、Nothing、0、空值 的差別

◎以上程式範例AspNet06.aspx,如在頁框下不能操作,請開新視窗操作
◎如果有問題歡迎您提出,dnowba很需要有人和我一起討論

ListBox控制項基本使用方式


◎以上程式範例AspNet05.aspx,如在頁框下不能操作,請開新視窗操作
◎如果有問題歡迎您提出,dnowba很需要有人和我一起討論

2011年10月29日 星期六

2011年10月28日 星期五

文字標示的控制項:Literal和Label

◎以上程式範例AspNet03.aspx,如在頁框下不能操作,請開新視窗操作
◎如果有問題歡迎您提出,dnowba很需要有人和我一起討論

2011年10月24日 星期一

2011年10月20日 星期四

分享程式開發設計案裡,如何快速建置資料表,提昇你的工作效率

image
這是一個一般程式設計師不願說的秘密…DNOWBA不藏私…這裡分享一下我的建置心得,哈哈,這個開頭有點自以為是,其實也不是什麼太大的秘密,只是我自已開發的心得…以往自已在整個開發的過程裡面,我自已認為最沒有效率的就是這一段:資料設計和實現。

不管是WEB FORM 或是WINDOWS FORM開發案,開發前的資料庫設計或分析完成後,我們有時要將資料庫設計草案提供給客戶;抑或是純綷的程式設計教學,需要把資料表內容呈現給學生…

最早的時候我都是在EXCEL上寫(DNOWBA相信很多人都有這個經驗)。但這有一個壞處就是當我們要實際建置專案時,又得手動在資料庫上面建置一次。

最惱人的地方就是在建置過程中如果要修改哪一個欄位的型別,還要做二次以上…打個比方,如果我要在某個資料表建三個欄位如下圖(別職業病的分析下面的資料欄位設計的好不好,這只是舉例):

欄位名稱 資料型別 允許NULL 註解
ID INT X 自動編號/識別 Identifier
文章內容 varchar(500) X 本文內容
文章回應 varchar(500) V 本文的回應內容
並了讓大家能感受到效率的明顯提昇,我先用以下二個常用的建置資料表的工具讓大家能夠比較一下。

2011年10月18日 星期二

文字資料要用哪種資料型別儲存char, varchar, nchar, nvarchar

「字元」這件事情我們先要有一個觀念,就是中文字和英文字,每個字(中文是單字、英文是字母)所佔的位元是不同的。

image

英文一個字母,佔1個byte。廢話,當初系統的設計就是先做英文字母符號和0-9等國際通用符號。中文則因為1byte(共8碼)的二進位編碼根本不夠中國字使用,所以改成16碼二進位編碼,所以中文每個字比英文字母多佔一倍的儲存空間。
外國人使用習慣上直接把byte稱做是字元,因為1字元(1 個英文字母)就是1byte,byte其實是8個bit組成的二進位制編碼;在中國字可千萬不要稱為字元,而要稱為一個word…在國外定義1word=2byte…所以在建立資料庫資料表時,可千萬要算準來,比方說你限定一篇回應文章最多500字,這500字是「中國字」還是「英文字元」,如果是500字元的話,那麼其實就是250個中文字…

如果你還是不大懂bit、byte,建議看看下面的說明:
電腦的資料是使用二進位的0或1,每一個0或1是最小的儲存單位,也就是位元。
將8個位元組合成一個位元組(byte),我們通常將英語系或歐語系的字母、0~9的數字或符號等能夠使用一個位元組來表示的資料稱為字元(character) 
而中文字等需要使用兩個位元組(16位元)才能表示的資料則稱為字組(word)。

結論:
所以它們之間的關系為:
bit 可以代表0,1
1byte = 8 bits
1word = 2 bytes = 16bits
1doubleword = 2 words = 4bytes = 32bit

額外一提:其他國家的國字所佔用的位元數是多少我沒有研究
不過可以很確定的事,中文字佔的空間是英文字的二倍
所以買一些以英文為主的3c產品(例如手機),記憶體容量的部分進了台灣市場後會發現不太給力…

好啦,進入主題,在建立資料庫的時候,文字資料要用哪種資料型別儲存????

資料型別

◎精確數值
使用整數資料的 Exact-number 資料類型。
資料類型 範圍 儲存體
bigint -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)
通常是在整數值可能超過 int 資料類型所支援的範圍時使用。只有當參數運算式是 bigint 資料類型時,函數才會傳回 bigint。
8 位元組
int -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)
是 SQL Server 中的主要整數資料類型

4 位元組
smallint -2^15 (-32,768) 到 2^15-1 (32,767) 2 位元組
tinyint 0 到 255 1 位元組
一種整數資料類型,其值有 1、0 或 NULL 幾種
資料類型 範圍 儲存體
bit 只佔用一個位元,且不允許存放 NULL 值
如果資料表中的 bit 資料行小於或等於 8 個,這些資料行會儲存為 1 個位元組。如果有 9 到 16 個 bit資料行,則儲存為 2 個位元組,依此類推。字串值 TRUE 和 FALSE 可以轉換為 bit 值:TRUE 會轉換成 1,而 FALSE 會轉換成 0。

1 位元組
具有固定有效位數和小數位數的數值資料類型。
資料類型 範圍 儲存體
DECIMAL[(p[,s])] 可儲存的值介於 -1038+1 與 1038-1 之間;p 用來定義小數點兩邊可以被儲存的有效位數總數目,而 s 代表小數點右邊的小數位數(s < p);p的預設值為 18 而 s 的預設值為0 17位元組
(最大)
NUMERIC[(p[,s])] 與 DECIMAL[(p[,s])] 功能相同
代表金融或貨幣值的資料類型
資料類型 範圍 儲存體
money -922,337,203,685,477.5808 到 922,337,203,685,477.5807 8 位元組
smallmoney - 214、748.3648 到 214、748.3647 4 位元組
◎近似數值
資料類型 範圍 儲存體
float [ (n) ]
- 1.79E+308 到 -2.23E-308、0 及 2.23E-308 到 1.79E+308
其中 n 是用來儲存科學記號標記法 float 數之尾數的位元數目,因此,它規定了有效位數和儲存體大小。如果指定 n,它必須是在 1 和 53 之間的值。n 的預設值是 53。
8位元組
(最大)
real - 3.40E + 38 到 -1.18E - 38、0 及 1.18E - 38 到 3.40E + 38 4 位元組
◎日期和時間
資料類型 範圍 儲存體
date 格式是YYYY-MM-DD
範圍西元 1 年 1 月 1 日到西元 9999 年 12 月 31 日
3 個位元組
time 格式是hh:mm:ss[.nnnnnnn]
範圍00:00:00.0000000 到 23:59:59.9999999
5個位元組
datetime 格式是YYYY-MM-DD hh:mm:ss
日期範圍1753 年 1 月 1 日到 9999 年 12 月 31 日
時間範圍00:00:00 到 23:59:59.997
8 位元組
datetime2 格式是YYYY-MM-DD hh:mm:ss
日期範圍 1 年 1 月 1 日到日到 9999 年 12 月 31 日
時間範圍00:00:00 到 23:59:59.9999999
8 個位元組
datetimeoffset 格式是YYYY-MM-DD hh:mm:ss
日期範圍 1 年 1 月 1 日到日到 9999 年 12 月 31 日
時間範圍00:00:00 到 23:59:59.9999999
時差位移範圍-14:00 到 +14:00
10個位元組
smalldatetime 格式是YYYY-MM-DD hh:mm:ss
日期範圍1900 年 1 月 1 日到 2079 年 6 月 6 日
時間範圍00:00:00 到 23:59:59
4個位元組
◎字元字串
資料類型 範圍 儲存體
char [ ( n ) ] n 必須是 1 到 8,000 的值。 1字元=1位元組
varchar [ ( n | max ) ] 可變長度。n 可以是 1 - 8,000。max 表示最大是 2^31-1 位元組。 1字元=1位元組
text 可變長度非 Unicode 資料,最大是 2^31-1 (2,147,483,647) 個字元。 1字元=1位元組
◎Unicode 字元字串
資料類型 範圍 儲存體
nchar [ ( n ) ] n 字元的固定長度 Unicode 字元資料。n 必須是 1 到 4,000 的值。 1word =2位元組
nvarchar [ ( n | max ) ] 可變長度,Unicode 字元資料。n 可以是 1 到 4,000 的值。
max 表示最大儲存體大小是 2^31-1 位元組。
1word =2位元組
ntext 可變長度 Unicode 資料,最大長度為 2^30 - 1 (1,073,741,823) 個字元 1word =2位元組
◎二進位字串
資料類型 範圍 儲存體
binary [ ( n ) ] 固定長度的二進位資料,n 代表 1 到 8,000 的值。 1字元=1位元組
varbinary [ ( n | max) ] 可變長度二進位資料。n 是 1 到 8,000 的值。max 上限是 2^31-1 位元組。 1字元=1位元組
image 可變長度的二進位資料,上限是0 到 2^31-1 (2,147,483,647) 位元組 1字元=1位元組

2011年10月16日 星期日

2011年10月15日 星期六

ADO.NET範例(AdoNet01.aspx):加入DataSet(資料集)、DataTable(資料表)

◎以上程式範例AdoNet01.aspx,如在頁框下不能操作,請開新視窗操作
◎如果有問題歡迎您提出,dnowba很需要有人和我一起討論

什麼是類別(Class)?什麼是物件(Object)?

我又看到有人在問這個問題了…在某個論壇裡
image
這個問題就好比在問「先有雞?還是先有蛋?」般的問題樣的…玄之又玄,答案總是渾沌不明的…(我沒說類別是雞…物件是蛋喔,請不要用對偶句解讀。)

寫程式的路上,我一直很希望有人能和我討論此事,幾年前物件導向基礎出來的時候,這個問題真是討論的沸沸揚揚的,當然學術界有正確的說法,但我更喜歡看論壇裡的人用千奇百怪的譬喻方法來解釋(有些真的讓人發噱)…現在我就把我記憶中一些好的說法列舉出來,並且用我的意思來說吧。

微軟建議的Visual Basic編碼慣例、Visual Basic命名慣例

image
Visual Basic 命名慣例

http://msdn.microsoft.com/zh-tw/library/0b283bse(v=VS.100).aspx

  • 名稱中的每一個單字以大寫字母做為開頭,例如 FindLastRecord 與 RedrawMyForm。
  • 函式與方法名稱以動詞做為開頭,例如 InitNameArray 或 CloseDialog。
  • 類別 (Class)、結構、模組和屬性 (Property) 名稱會以名詞做為開頭,例如 EmployeeName 或 CarAccessory。
  • 介面名稱以 "I" 前置字元做為開頭,之後並接著一個名詞或名詞片語 (例如 IComponent),或是接著可描述介面行為的形容詞 (例如 IPersistable)。 不要使用底線,並且盡量不要使用縮寫,因為縮寫可能導致混淆。
  • 事件處理常式名稱以名詞為開頭,以描述其後跟隨 "EventHandler" 後置詞的事件類型,例如 "MouseEventHandler"。
  • 在事件引數類別的名稱中,包含 "EventArgs" 後置詞。
  • 如果事件擁有「之前」、「之後」的概念,請使用現在式或過去式的後置字元,例如在 "ControlAdd" 或 "ControlAdded" 中。
  • 對於冗長或常用的詞彙,可使用縮寫以使名稱保持合理的長度,例如使用 "HTML",而不使用 "Hypertext Markup Language"。 一般來說,變數名稱大於 32 個字元者將會難以在低解析度的螢幕上閱讀。 此外,確認您的縮寫名稱在整個應用軟體中維持一致。 在專案中隨意變換 "HTML" 與 "Hypertext Markup Language" 會造成混淆。
  • 避免在內部範圍使用與外部範圍相同的名稱。 存取不正確的變數會導致錯誤發生。 若名稱相同的變數與關鍵字產生衝突,則您必須以適當的型別程式庫前置關鍵字來識別之。 例如,如果有一個名為 Date 的變數,則您只能藉由呼叫 DateTime.Date 的方式,使用內建的 Date 函式。

ADO.NET中的核心物件:DataSet

如果你看懂了ADO.NET是什麼 這篇文章,可以知道DataSet 是有別於以往ADO的資料存取DataReader的地方,DataSet,它是一個離線運作的資料集。

image

DataSet怎麼離線存取:離線存取的大原則就是,能不要和資料庫連線就不要連,存取server端資料本來就會消耗硬體資源,所以連線能少一點就少一點,打個比方:當開啟購物網站的頁首時,要update最新商品,如果每上去觀看一次就要去資料庫撈一次資料那資料庫一定不勝負荷。

所以DataSet的設計是,當客戶端應用程式在使用資料庫資料時,並不需要持續和實體資料庫連線,而是利用「本機 (放ASP.NET網站的那台機器)」裡一部分記憶區塊構築一個虛擬的「資料庫」,但沒這麼大,只是先暫存brower那端要求的資料,這個就是DataSet,國語叫資料集。而資料集在browser反應更新、新增、刪除、觀看某些資料過程中,適時的開關與資料庫的連線。


2011年10月14日 星期五

ADO.NET是什麼

在學習ASP.NET的過程裡,dnowba自已覺得有些人太關注控制項的使用而忽略了一些重要的基礎,dnowba以前也只買ASP.NET的書籍…跟著書中的範例實作然後馬上就可以看到成果,還真的蠻爽的,但等到要設計大型的網站後,才漸漸覺得資料庫的設計才是根本,甚至我要說,資料庫設計才是精華,所以後來也買了SQL設計的相關書籍…這邊要介紹的不是這二個,而是中繼於ASP.NET和SQL資料庫之間的好幫手…ADO.NET

ADO.NET,扮演著應用程式與資料庫之間的溝通介面,是在典型的三層式資料庫應用程式架構中加入新的元件。其架構如下圖
image

2011年10月11日 星期二

當 ASP.NET 發生 Viewstate MAC 的驗證失敗 ( machineKey )的解決方式

image
ASP.NET: Validation of viewstate MAC failed

我的asp.net網站放在虛擬主機上,可是三不五時就發生 Validation of viewstate MAC failed 這種錯誤。

Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.

當 ASP.NET 因為網頁還沒全部下載完成時,使用者就按下網頁中的任意一個 PostBack 的按鈕或連結時,就會發生「Viewstate MAC 的驗證失敗」的錯誤訊息!

主要原因在於

會員機制實作:利用Profile(使用者設定檔)

◎以上程式範例Profile.aspx,如在頁框下不能操作,請開新視窗操作
◎如果有問題歡迎您提出,dnowba很需要有人和我一起討論

2011年10月10日 星期一

會員登入機制:會員資料庫的轉移與資料存取方式

在使用ASP.NET組態設定時,我們新建了角色、使用者…讓我們快速的建置好會員登出登入機制,但這些資料被存取到哪裡呢?您可以注意一下你的專案或網站的根目錄裡,是否多了一個App_Data資料夾,裡頭放著的文件就是存取這些資料的資料庫
image

這樣的形式好像和我們一般先建立資料庫、再設計資料表、最後建置存取的網頁這種流程不大一致,因為ASP.NET組態後會幫我們先建置預設的資料表,項目非常多,這些都是為簡化我們設計資料表所產生。
image

不過這裡會產生幾個問題:

  1. 這種方式建立的資料庫,版本是MS SQL 2008 EXPRESS版本,這個免費版本是在建立Visual Studio時就會順便安裝的,雖能力足以應付很多中小企業的需求,也比Access強大,但是有「只支援單一cpu」「記憶體最大支援1GB」「採用MDF檔,最大的容量僅達4GB」等限制…不比我們安裝正式版SQL來得好。
  2. 資料庫是建置在App_Data資料夾下,如果我們不是自已架站而是承租網站空間的話,通常這樣是不被允許的。

所以dnowba在使用Visual Studio提供的會員機制時,會先將資料庫先移轉到正式的MS SQL資料庫中,再用ASP.NET組態來建置,中間的過程蠻繁瑣的,在這裡做個筆記,也順道說明一下資料新增的方式。

會員登入機制:進階使用登入相關控制項設計

以往我們在設計會員機制時,最常出錯的就是網頁權限的設計,網站中某些功能,例如購物車,是可以免會員登入的,但是查詢訂單的時候就需要會員,「購物車」「訂單查詢」這二個網頁需要不同權限,因些二頁在login事件中的設計就不同,而且撰寫程式碼很麻煩…另外登入後要導入哪一頁,登出後導出哪一頁,這也是個課題,以下利用Visual Studio中login類裡頭的二個控制項LoginName、LoginStatus可以輕鬆的做出。

2011年10月9日 星期日

會員登入機制:利用ASP.NET組態和Login控制項完成

image
在建立會員架構式的網站時,最惱人的部分就是會員機制及在網頁上設計「新增會員」、「會員登入」等web form…以往的經驗是這樣的:

1、每次做一個網站就得搞一次會員機制,程式寫法雖然差不多但還是麻煩
2、最慘的地方是用session來做為網頁存取權限的方式,每次寫一頁也是要重貼一些判別式…有時修改一個小小的session用途,結果所有有存取權的網頁要跟著改一次
3、一個網頁帶個5、6個session是家常便飯,多多少少會造成Server和Client的負擔,影響網頁讀取的效能

現下,我們利用Visual Studio已經開發完成的Login控制項,除了加快了開發網站的效率,更可以利用Profile開發個人化的網站

2011年10月8日 星期六

MasterPage主版頁面


image
談談MasterPage吧,2.0的.NET就已經有了,它在ASP.NET裡的地位,有人說是用來取代html的frameset(頁框/框架),不過當初很少看人用它實戰。dnowba當初也曾經拿來開發過學校網站,當初拿程式給人看的時候,一堆人覺得很謬…但時至今日,因為Visual Studio2010的另一項功能---「Login控制項和Profile的」推陳出新反應算是熱烈,所以連帶著MasterPage也被人重新談起,因為要學「Login控制項和Profile的」的前提是你得先學一下MasterPage,所以個人認為是它嶄頭露角的時候了…

先說說我用過的感想

1、以往設計網站時,有人會先到frontpage、dreamweaver之類的網站編輯軟體上先規劃好頁框網頁,然後再把網頁複製到Visual Studio修改,使用frameset在切割完成後(如下圖三個框架),這樣的網頁在開發時,在設定超連結的地方最不好控制,taget一下要 target=”_top”,一下子又要 target=”_blank”…我就常為這蠢事修改來修改去的;再來就是設計頁面的整合,Visual Studio整合功力一流,可以讓你在不同分頁同時修改主版頁和內容頁。如果你也曾經遇過這種問題,建議您一定要使用Visual Studio並善用MasterPage。
image

2、MasterPage(如下圖)和frameset的概念差不多,除了已解決第1點的不便處,在使用上搭配了其他的控制項(如剛說的login控制項),主題theme設置、profile個性化設置、sitemap都可以加以應用。但卻也意味著你又再次陷入「微軟控制項」的泥淖中,這些控制項的方法真的多的讓你愈陷愈深…搞不完的…dnowba目前就是這個窘境,我到目前為止都不敢說自已會寫程式,因為自已只是會背一些控制項的屬性和方法而已…
image

3.已經會一般Web Form 並在上面寫寫程式的人,在將原表單套用到MasterPage裡會遇到一堆明明在Web Form 上可以執行,但依附在MasterPage 後卻出錯的情形…很多錯誤的情況發生,後面我也分享一下。

2011年10月4日 星期二

Visual Studio 個人化修改

image
這篇筆記dnowba在使用Visual Studio 2010寫asp.net的時候主要做了哪些個人化的修改以方便自已使用,也許您也可以試試,或許可以大大提昇您編寫程式時的效率

◎選取 Web 開發環境設定:ASP.NET 文件會假設當您第一次啟動 Visual Studio 時,就選取了 [Web 程式開發] 設定集合。 這個集合可讓您以最方便的方式存取 Web 程式開發活動的命令和選項。
dnowba以前會選錯,一開始初學是沒什麼大礙,只是有些常用的工具被藏起來而已,但久了深入一點後有些被隱藏的工具常用到的話就開始麻煩了。dnowba是用vb在寫網站的,所以以前會選「visual  basic 開發設定」這個選項,但是後來搞清楚web.form和windows.form的不同處後(就是我用的vb正確來說是vb.net,和vb script的語法規範還是不同),所以這邊也建議大家如果選錯的話,最好還是改一下吧。以下是修改的方式

寫程式設計教學範例的三個好幫手

這個是我一定要分享的文章…
因為最近想重新學習網站程式設計
但又想留些一些分享的資料
(與其說是教學,不如說是分享,更希望留下自已學習的足跡
以往也想這麼做,但是每次紀錄一支小小的程式在部落格上總是得花許多時間才能很完美…不過在我重新整理了一些資料以後…我想以後在部落格上寫程式教學範例的時間應該會有所改善了…這邊dnowba也和大家分享一下寫程式設計教學範例的三個不可或缺的幫手啦。

(1) BLOGGER:寫部落格要一個簡潔有力的平台,我當推blogger,由其這一陣子的大改版完全符合我的味口…所以還在別家的,真的不要猶豫了…
而寫程式我更推blogger,因為他在部落格樣式範本上給了很大的彈性,讓你可以加入一些script…因為程式碼的特殊性,有些部落格貼上後會造成原來程式的混亂,加上程式碼動不動就一大串,貼在部落格上真的很難閱讀,也很不美觀…所以一個能讓你亂加script、自由度較高的當推blooger (自架WORDPRESS的高手就另當別論)
image

(2) SyntaxHighlighter by Alex Gorbatchev:這是可以讓程式碼美觀、不搞亂網頁原有程式的javascript,目前最新版是3.0.83,更潔簡且修正了很多問題,可以嵌到bogger裡頭去的(也有支援其他的部落格…)。用了以後,你寫的程式碼就像底下。

                <asp:Parameter Name="original_序號" Type="Int32" />
                <asp:Parameter Name="original_帳號" Type="String" />
                <asp:Parameter Name="original_密碼" Type="String" />
                <asp:Parameter Name="original_權限" Type="Int32" />
                <asp:Parameter Name="original_住址" Type="String" />

(3)windows live writer:這是讓你在單機上寫完部落格後上傳到平台的軟體,對部落格平台支援度也很高,blogger也不例外,目前是2011的版本,這裡只要搭配以下的外掛程式(Windows Live Writer plugin),那麼在寫程式教學範例的時候會如虎添翼的

.Syntax Highlighter v0.2:這個同時支援Alex Gorbatchev程式碼高亮顯示,可以在codeplex.comwindows live gallery 裡下載,並看到相關的介紹
.Snippets Manage:這外掛是wlw本來就附的,可以讓你寫程式教學的時候省去一些排版的力氣…
image

若是對以上三個好幫手想要有更深的認識,歡迎多爬dnowba相關的文章(用dnowba部落格中標籤的方式找很快可以看到,這邊不貼出連結了)

2011年10月2日 星期日

asp.net我又來啦之安裝

從金門回到家鄉了
忙做一些新的生涯規劃
舊學校忙交接…把一些爛攤子收拾了一些些
新學校忙適應…導師工作屆今也算穩定許多
總算可以小小的重拾我的興趣了
自從第一次開發學校網站、圖書館網站後
中間也停擺了快5年
雖然陸陸續續有在寫一些asp.net…但都不大型
中間也經歷了和GOOGLE的天人交戰
GOOGLE的發展,讓我在很多思考上轉念了
就是好東西就用,不一定要自已寫程式或架網站
GOOGLE包羅萬象的應用APPS…能結合我所學
是我回家鄉的其中目的
就是希望能有更多時間來完成所學
還有找到適合的補習班來延續所學
晃眼間
.NET這個開發程式的環境已經從2.0跑到4.0了
完全是不同架構
從開發軟體上也觀察到了微軟程式發展的變化
已經由「介面的整合」進化到「使用習慣」導向了
…當然中間還有許多(自已省略,不然又寫不到主題了)…

整裝待發中

這篇只是簡述一下重新開始我的ASP.NET程式開發的筆記,順便宣告一下
「我回來啦…ASP.NET,還有我久違的部落格」
(1) 安裝VISUAL STUDIO 2010
(2) 安裝SQL server 2008 和 manager studio
(3) 申請一個免費的ASP.NET空間 ,因為要開發一些商業用的程式了,學術網路我就不用省得被人質疑,http://somee.com/ 是我目前看到比較OK的
(4) 在VISUAL STUDIO 2010上安裝 AjaxControlToolkit

短短四行字…折騰了一個小時多
不過心裡是暗自竊喜的
話別幾年多的程式設計
以往光下載軟體、找版本、看懂英文介紹和安裝方式等等…上面這些東西我得搞二、三天吧…看來以前逼自已看理論、讀英文…多多少少有用呢

安裝過程那種流水文就不贅述了,比起那些
我更想趕快寫一些ASP.NET程式範例

Related Posts Plugin for WordPress, Blogger...
// Dnow Function