——我的VS.NET學習之旅
屠恩海(SunHai)
開發(fā)工具:Microsoft Visual Studio .NET 2003
操作系統(tǒng):Windows XP
題記:即使你沒有一點編程經(jīng)驗,只要你愿意,并理解本文介紹的學習方法,你也可以象作者一樣輕松、愉快地步入程序設(shè)計之門。讓我們一起開始激動人心的VS.NET之旅。
在26歲的時候,給自己定下目標,35歲之前必須掌英語和程序設(shè)計。至今剛過而立,程序和英語都學得不怎么樣,對學習方法倒是有所體悟,愿與大家分享。
在此先介紹一下我的情況。26歲前主要從事語文教學,對計算機及英語可以說一竅不通。說出來可能讓您笑話:計算機不會上網(wǎng);英語不認識音標。我這人水平雖然不怎樣,志向卻比天高,下決心改變自己,說干就干,花7000大洋購來電腦,開始自學計算機。26歲,人生翻開新篇章。
首先把自家電腦來個開膛破肚,把硬件拆了裝,裝了拆(可憐我的主板,修了幾次,還是報廢;顯卡由于帶電插拔燒斷了“腳”,還是手機店的朋友幫忙焊接上的)。為了從網(wǎng)上快速查找到需要的教程文章,忍痛每月花100大洋窄帶包月,想當時Down個X片足足用了兩天兩夜,結(jié)果下集只有聲音沒有圖像,還把他聽完,嗚乎!
我一向提倡在工作中學習,學的東西要和工作相關(guān),工作和學習互相促進。做語文教師雖也可以自學計算機,但我覺得進程太慢了(那時我所在學校還未設(shè)計算機課程)。于是,剛學計算機不到半年的人“一不小心”就成了電腦教師。還好基本是入門級培訓,不過也逼著我學得更快。本來我是用拼音加加輸入法的,因為工作關(guān)系,只好改用五筆。全國計算機等級考試要考DOS,于是又學了DOS。本來用FrontPage做網(wǎng)頁,現(xiàn)在改用Dreamweaver MX,還有FireWorks MX,Flash MX也懂一點。對著主板隨機手冊和英文詞典嘗試幾次,開機CMOS也可以進出自如。什么系統(tǒng)優(yōu)化,GHOST系統(tǒng)備份都不在話下。做的網(wǎng)頁雖然界面不怎么樣,IP日訪問量卻是每天300以上。直到29歲,對Windows應(yīng)用編程卻還是一點不懂,VB6刪了裝,裝了刪,反復(fù)幾次,覺得很難,始終未跨過編程第一道門檻。
前日跟在嵊州信息港工作的MM交流,言及在自學Visual Studio .NET編程,MM問:你在閉關(guān)學習嗎?我回答:你“贊助”學費的話我也許會考慮考慮。是的,網(wǎng)絡(luò)是所大學,最大的大學,網(wǎng)絡(luò)可以改變世界,終將改變世界。網(wǎng)絡(luò)更可以改變?nèi)松梢宰屛覀兊膶W習生活無比精采,只要你懂得利用,善于利用。現(xiàn)在已是網(wǎng)絡(luò)時代,網(wǎng)絡(luò)交流基本彌補了自學的不足,網(wǎng)絡(luò)交流更有學校教育無可替代的優(yōu)點。
你看到這里,如果你沒有接觸過程序語言,想了解一下Visual Studio .NET是個什么“東東”,你會如何做?
第一,查手頭書籍,個人開個計算機圖書館是不現(xiàn)實的,要查找的知識往往在手頭書籍中找不到;
第二,打電話問朋友,朋友懂不懂是個問題,即使懂,他有沒有空?他有空,他不清楚你這邊的實際情況,他說的并不一定是你想要的,或者你不一定聽得懂;
第三,上圖書館查資料;
第四,上書店;
第五,跑去問老師;
第六,……
是的,傳統(tǒng)是這么做的。但現(xiàn)在是網(wǎng)絡(luò)時代了。你完全可能在不到一分鐘之內(nèi)找到你想要的答案。現(xiàn)在開啟你的電腦(前提是你不認為購買電腦是極大的浪費),撥號上網(wǎng)(前提是你認為有必要給電腦配置Modem并接入網(wǎng)絡(luò)),打開Internet Explorer,在地址欄輸入http://www.google.com,然后回車,在打開的頁面中間輸入框中敲入Visual Studio .NET 編程,注意中、英文中間有個空格。然后再回車,頁面顯示:共有 12,800 項查詢結(jié)果,這是第 1 - 10 項。 搜索用時 0.28 秒,怎么樣,還用我給你介紹Visual Studio .NET是什么東東嗎。你就盡情地點擊標題,查看您需要的知識吧。
“軟件是一個過去的時代,Web Service將要來臨。”微軟高級副總裁李開復(fù)說,“Web Service本身可以說是一個賭博,一個風險;因為你可以相信,也可以不相信這件事情的發(fā)生。我只能說微軟把整個公司都賭下去了,我們賭的未來就是Web Service。” 你可不要告訴我你比蓋茨厲害多了。我們追求超越蓋茨不一定現(xiàn)實,但我們可以早一步接觸網(wǎng)絡(luò),利用網(wǎng)絡(luò)。
第一點體會:掌握計算機的基礎(chǔ)知識,學會利用網(wǎng)絡(luò)來進行學習,特別是利用搜索引擎(如http://www.google.com)來查找你所需要的答案。
29歲,開始從事企業(yè)管理工作。由于工作的關(guān)系,要用到MicroSoft Office辦公軟件,Office辦公軟件中有個 Visual Basic For Application (VBA)語言,是VB的一個子集,具備VB的所有優(yōu)點,內(nèi)置于Office中,只能在Office中創(chuàng)建、編程和運行,可以錄制宏并自動轉(zhuǎn)換為代碼。由于初次接觸編程語言,感到自學VBA有難度。每逢在學習中遇到難題、困惑的時候,我就到會到網(wǎng)上尋找學習資源,尋找答案。很快就找到關(guān)于MicroSoft Office的極好社區(qū),如OfficeFans(http://www.officefans.net) , ExcelHome(http://club.excelhome.net/) ,于是立即在社區(qū)注冊名字,學習VBA時中碰到疑問就到社區(qū)去問,每次都有網(wǎng)友熱心解答。
比如我的工作需要經(jīng)常在Excel工作表第十行前插入空白行,要先選取工作表,鼠標指針定位到指定行,然后單擊右鍵,選“插入”。重復(fù)操作,不勝其煩。于是在OfficeFans提問,經(jīng)版主kengzeng指點,得到如下VBA代碼:
Sub insert() Sheets("sheet2").Rows("10:10").Insert End Sub |
原來要四步操作,現(xiàn)在一按快捷鍵就完成了。我原來并不懂VBA,對“集合”、“對象”、“方法”、“屬性”、“事件”、“枚舉”等編程概念也不甚了了,但由于有網(wǎng)上高手的指點、幫助,我仍舊可以在工作中應(yīng)用VBA,多次應(yīng)用下來,用到的一些VBA代碼不去死記也差不多會背了,對VBA的一些概念、理論開始有所了解。
萬事開頭難。學習一開始碰到難題,如果解決不掉,就可能從此放棄學習了,如果這時有熱心人解答他的疑問,然后在實際中立即可以應(yīng)用新知識,新知識得到了即時鞏固,學習的興趣得到激發(fā)和增強,學習就得以繼續(xù)和深化。當然,對于有“懸梁刺股”精神的朋友,自己看書刻苦鉆研也可能會解決所有疑難問題,但那畢竟是極少數(shù),我想多數(shù)人是象我這樣的普通人。
來而不往非禮也。在網(wǎng)上得到諸多大俠的指點,總感到好像欠了誰什么似的,就想到編一本電子書,把常見的Excel VBA學習教程集中到一起,可以幫助初學者快速入門。 2003年6月較空閑,剛好自己對Html語法也懂一點,就花了二周的時間,搜集整理了一本電子書,叫《Excel 應(yīng)用寶典》,其中重點內(nèi)容是Excel VBA。把電子書放到OfficeFans上供網(wǎng)友下載,極受歡迎。我為什么編這本電子書呢?真的是比較空閑的緣故?有空去泡MM不是很好,何必去做枯燥的文字整理工作,其實我是存有“私心”的?
什么“私心”?這叫幫人即幫己,助人即助己。“佛”渡人其實也是為了渡己啊。我為了領(lǐng)悟這個道理,諸子百家,佛道儒易醫(yī),無所不涉,并在生活中曲折浮沉,這樣還是用了“30年”時間(太夸張了,一出生就……?呵呵),各位比我聰明,應(yīng)該早就明白此理。
為什么助人即助己?
在學術(shù)上幫助別人,指點別人,就要站在別人的角度考慮,思考別人的思考,打破了小我的思維局限。
從信息角度講,個人自修,知識的附加信息量較小,而在幫助別人過程中,存在人與人的信息交流,在信息交流中,知識信息得到強化。
舉一個例子,小孩子生活在英語環(huán)境中,3歲即口語流利,而我們的學校教育,大學畢業(yè),英語學了十多年,還是啞巴英語的大有人在,為什么?
小孩子記一個單詞或句子,是在和外界信息交流中記憶的,確切地說,小孩子記住了當時信息交流的情境,通過情境的自然記憶實現(xiàn)單詞或句子的自然記憶。學習口語如此,學習編程何嘗不如此呢?你在某個問題上指點過別人,你的記憶印象可能就特別深,如果是個人看書自學,對于某個問題當時雖然理解,但附助記憶的情境信息量很小,時間長了就容易遺忘。
所以,在學習編程的過程中,多和別人交流,多向高手虛心求教,多指點初學者,是在人為創(chuàng)造學習情境,在情境中強化記憶,強化理解。
李陽提倡“瘋狂英語”學習法,我則提倡“瘋狂編程”學習法,也就是創(chuàng)造一切機會和別人交流編程經(jīng)驗,從交流中進行強化訓練和學習。也要注意,交流是手段不是目的。
交流編程經(jīng)驗的途徑有很多:如論壇交流,媒體投稿,QQ、icq等通訊軟件交流。個人覺得CSDN為我們提供的“個人專欄”非常好,您可以一邊學習編程,一邊記下心得,通過個人專欄和大家交流。
VBA是VB的應(yīng)用分支,我在工作中應(yīng)用VBA,并自然地對VBA的概念、理論有了初步了解,這時再去看VB的教程,就感到分外親切。因為VBA和VB在本質(zhì)上是沒有區(qū)別的。我終于可以跨入VB編程之門了。
第二點體會:學習編程的過程中,既要善于向高手尋求幫助,更要樂于指導(dǎo)初學者。在交流中學習編程,這決不是宗教式道德說教,而是極其重要的學習方法和學習手段。
程序語言種類很多,Pconline的工具平臺就列有VB/VB.NET、VC/C#、Delphi、Java、C++Builder等。到底學什么語言好呢?在Google輸入語言 比較,查到一篇文章《編程語言的宗教狂熱和十字軍東征》,第一段就是:
業(yè)余程序員最喜歡做的一件事就是對不同的語言進行比較。Java是否比C++好?C#是否會成為終極語言?凡此種種。從專業(yè)程序員的角度看來,這是最低級無趣的游戲。其一,在項目諸元確定之后,通常并沒有選擇語言的余地;其二,語言的生存本身就是一個達爾文主義的問題:設(shè)若兩種語言有明確的可比較性,其中較劣的那一種必定早已被淘汰出局,又何來比較的必要?
我基于兩個原則選擇編程語言:
其一,適用自己的就是最好的。
其二,如果不知道什么適用自己(業(yè)余程序員開發(fā)軟件基于個人愛好,往往有此困惑),那么優(yōu)先選擇MicroSoft的開發(fā)語言。
我選的是VB(每個人的具體情況不,我的選擇不一定適合你),我目前只考慮開發(fā)普通Windows應(yīng)用軟件,并希望Windows應(yīng)有軟件的開發(fā)和MicroSoft VBA的應(yīng)用互相促進,說穿了,是精力有限,最好是一種語言,到處應(yīng)用。
于是在網(wǎng)上Down了N多的電子書,收藏夾里VB網(wǎng)站一大堆。常去的VB網(wǎng)站有1000VB ,AppleVB , cnDevx ,51DoNET等,但我發(fā)現(xiàn),除了CSDN,VB社區(qū)論壇的人氣大多不旺。
第一次接觸VB,沒有基礎(chǔ),業(yè)余自學,如何快速掌握VB編程?
如果我有足夠的時間(業(yè)余自學,時間顯然不足),有足夠的耐心(恰恰我是耐心不那么足的人),可以按照教程一個一個控件學習、練習,這個過程無疑是有益的,但對我來說顯然是過于枯燥的。或許如此下去,半年以后,我的VB基礎(chǔ)比較好了,但可能不到半年,早就被我放棄。這就要另辟蹊徑。我的設(shè)想是,一開始就定下一個軟件項目,帶著目的去學,以一個控件為核心,在完成項目的過程中,逐步掌握VB控件的使用和編程基本理論。項目基本完成的時候,VB編程也就入門了。由于是帶著項目去學,目的明確,學習過程就不會枯燥。如果你做共享軟件,你的項目創(chuàng)意又比較好,你VB編程入之門之日,也許你的軟件也就可以為你帶來Money了,呵呵!
開發(fā)一個什么樣的軟件呢? SUN提出了激動人心的口號:“網(wǎng)絡(luò)就是計算機”。計算機的應(yīng)用主要在于網(wǎng)絡(luò),于是定位于開發(fā)網(wǎng)絡(luò)軟件。我經(jīng)常到網(wǎng)絡(luò)社區(qū)論壇交流,注冊時要一項項填寫信息,發(fā)言時也要一項項填寫信息,感覺很費時間,打算自己編軟件來實現(xiàn)自動注冊,自動發(fā)言。
2003年5月學VBA時想用VBA實現(xiàn)在論壇自動注冊和發(fā)言,實現(xiàn)起來有難度,就在網(wǎng)上找替代軟件,找到了“按鍵精靈”(http://www.vrbrothers.com/cn/qmacro),按鍵精靈是一個模擬鼠標鍵盤動作的軟件。通過制作腳本,可以讓按鍵精靈代替您的雙手,自動執(zhí)行一系列鼠標鍵盤的動作。 覺得很不錯,就編寫了一個腳本,用按鍵精靈自動實現(xiàn)如下功能:打開Internet Explorer,輸入并打開網(wǎng)址,移動鼠標到指定座標,輸入字符,然后按回車完成注冊發(fā)言。比起手工輸入,用按鍵精靈省力不少,但是不同網(wǎng)站,輸入框的座標不同,要手動抓取,有沒有更方便的軟件呢?按鍵精靈社區(qū)里有人講到EzScript(http://ezscript.seed.cx/)功能更多,試用后發(fā)現(xiàn)在WindowsXP里反應(yīng)不靈敏,再在Google狂搜,找到了比按鍵精靈更好的軟件PCWorker(http://www.pcworker.net) 。PCWorker配合網(wǎng)絡(luò)填表軟件FORMGHOST ,再加上MyIE,可實現(xiàn)雙擊注冊或發(fā)言,需要的話,還可在標題加上隨機數(shù),而且在PCWorker中代碼的可讀性較強,且作者能及時聽取網(wǎng)友意見對軟件加以改進。
PCWorker雖然好用,但要讀取識別碼圖片上的數(shù)字,這是PCWorker類軟件不能勝任的。于是決心用VB6來實現(xiàn)所有自己想要實現(xiàn)的功能。2003年10月開始學習VB6,到11月半,項目基本完成。我是怎么做的呢?
首先瀏覽各VB網(wǎng)站有關(guān)文章,發(fā)現(xiàn)用WebBrowser控件能實現(xiàn)我所欲求的功能。
其次,大量搜集WebBrowser控件相關(guān)文章和代碼。
用Google搜尋。如用“WebBrowser”為關(guān)鍵詞搜索,共有 216,000 項查詢結(jié)果 。
CSDN論壇搜索。導(dǎo)航到http://expert.csdn.net/Expert/Forum.asp,登陸論壇,點擊“搜索”,選“全部論壇”,點選“最新數(shù)據(jù)搜索”,用“WebBrowser”為關(guān)鍵詞,然后點擊“對選擇的大類進行搜索”,哇,有好幾百篇有關(guān)“WebBrowser”的問答。
在CSDN論壇 作全文檢索,尋找更多有檢值的內(nèi)容。
CSDN文檔搜索,導(dǎo)航到http://www.csdn.net/develop,在右上角搜索輸入框輸入"WebBrowser",選擇“文檔標題”,再單擊“搜索”,我得到30篇有關(guān)“WebBrowser"相關(guān)文檔。
在實際編程中遇到困難,還可以到CSDN論壇提問,尋求幫助。我就曾在CSDN論壇問了不下十個有關(guān)Webbrowser有關(guān)問題,并都得到了解答。
由于善于運用以上三步,1個半月時間,我的軟件基本出爐,VB編程也已基本入門。軟件實現(xiàn)原理是,用WebBrowser控件,先Navigate到指定網(wǎng)址,然后填寫表單。主要代碼如下:
Private Sub cmdfill_click() '點擊按鈕開始發(fā)言 On Error Resume Next Dim vdoc As IHTMLDocument2 Dim vTag Dim i As Integer If Not brow.Busy Then '如果下載完成,就執(zhí)行下面程序 Set vdoc = brow.Document For i = 0 To vdoc.All.Length - 1 '檢測所有標簽 If UCase(vdoc.All(i).tagName) = "INPUT" Or UCase(vdoc.All(i).tagName) = "TEXTAREA" Then '找到input標簽 Set vTag = vdoc.All(i) If vTag.Type = "text" Or vTag.Type = "password" Then '看看是不是我們需要的 Select Case vTag.Name Case "name" vTag.Value = "sunHai" Case "passwd" vTag.Value = "sunHaiGood" Case "subject" '寫標題,不同的網(wǎng)頁表單,vTage.name的值不同,要查看網(wǎng)頁源碼修改 vTag.Value = "Hello,sunHai!" End Select 'ElseIf vTag.Type = "submit" And vTag.Value = "發(fā)表" Then '找到發(fā)表按鈕。 ' vTag.Click End If End If Next i vdoc.Forms(0).submit '也可以用這句來提交表單 End If End Sub |
第三點體會:從應(yīng)用入手,從解決實際問題出發(fā),在完成項目的過程中,逐步掌握控件的使用技巧和編程基本理論。
在學習VB6的同時自然接觸到 Microsoft Visual Studio .NET(簡稱VS.NET)。在十年之前,Visual Basic 1.0 成為數(shù)以百萬計的開發(fā)人員的革命性的應(yīng)用程序開發(fā)語言。現(xiàn)在,Visual Studio .NET 為未來的十年做好了準備(有點象為MicroSoft打廣告,你說呢),VS.NE是用于創(chuàng)建下一代應(yīng)用程序的理想而又現(xiàn)實的開發(fā)工具,是一個從一開始就是為 XML Web 服務(wù)創(chuàng)建的開發(fā)環(huán)境。通過允許應(yīng)用程序通過 Internet 溝通和共享數(shù)據(jù),XML Web 服務(wù)使業(yè)務(wù)能夠從 Internet 轉(zhuǎn)換為用于集成和傳送它們的核心商業(yè)價值的真正平臺。Visual Studio .NET 和 XML Web 服務(wù)提供簡單、靈活、基于標準的模型,允許開發(fā)人員從新的和現(xiàn)有的代碼匯編應(yīng)用程序,而與平臺、編程語言或?qū)ο竽P蜔o關(guān)。
VS.NET 2003中主要有包含以下幾種開發(fā)工具:
Visual Basic .NET 2003
Visual C# .NET 2003
Visual C++ .NET 2003
Visual J# .NET 2003
核心是 Visual Basic .NET 2003和Visual C# .NET 2003。我主要用VB.NET。在VS.NET中的不同開發(fā)工具的差別主要表現(xiàn)為語法的差異,因此,用VB.NET的人,一般也可以看懂C#.NET的代碼,反之亦然。
有人說,“學習要面向未來”,2003年12月,我的主要開發(fā)工具從VB6轉(zhuǎn)為VB.NET,2004年1月1日,把我新開發(fā)的軟件從VB6語言轉(zhuǎn)寫為VB.NET語言,并正式命名為網(wǎng)絡(luò)廣告王(AdKing)。
在轉(zhuǎn)向VB.NET的時候,我考慮:
第一、VS.NET的本質(zhì)是什么?
VS.NET是從一開始就是為 XML Web 服務(wù)創(chuàng)建的開發(fā)環(huán)境。通過允許應(yīng)用程序通過 Internet 溝通和共享數(shù)據(jù),XML Web 服務(wù)使業(yè)務(wù)能夠從 Internet 轉(zhuǎn)換為用于集成和傳送它們的核心商業(yè)價值的真正平臺。
學習要面向未來,就要學習最新的技術(shù),現(xiàn)在的學習為將來的應(yīng)用作鋪墊。我的軟件要突出兩點,一是基于Internet的應(yīng)用,二是要應(yīng)用XML技術(shù)。這樣,我就可以在應(yīng)用中盡快掌握新技術(shù),否則,只是為學習而學習,無疑會是比較枯燥,也容易遺忘。
第二、原來用VB6寫的AdKing,主要用到WebBrowser控件,網(wǎng)頁加載速度慢,會下載圖片,F(xiàn)lash等許多不需要的東西,在VS.NET中必須用其他方法實現(xiàn)同樣功能。
在CSDN諸位朋友的幫助下,并參考許多資料,我的AdKing已基本具備.NET特征。
1.應(yīng)用了XML技術(shù)
VB6中,INI文件通常用來保存系統(tǒng)信息、配置信息,讀寫INI文件要用到API函數(shù),使用起來不是很方便。在VS.NET中,已經(jīng)沒有必要用INI文件來保存和讀取一些信息了,可以改用VS.NET中的讀寫XML文件的類。而且,在VS.NET 2003的后續(xù)版本中,處理XML有關(guān)功能將得到進一步增強。
讀取XML到DataGrid代碼:
Public MyXMLDataSet As New DataSet("XMLDataSet") ' DataSet 是數(shù)據(jù)的一種內(nèi)存駐留表示形式,無論它包含的數(shù)據(jù)'來自什么數(shù)據(jù)源,它都會提供一致的關(guān)系編程模型。一個 'DataSet 表示整個數(shù)據(jù)集,其中包含對數(shù)據(jù)進行包含、排序和約束的'表以及表間的關(guān)系。 MyXMLDataSet.ReadXml("regid.xml") '讀入XML文件 form1.DefInstance.DataGrid1.DataSource = MyXMLDataSet 'DefInstance是form1的共享屬性, 我們不用創(chuàng)建實'例就可以直接用‘類名 .共享成員'的方法進行調(diào)用 , 《Henry 的 VB.NET 之旅 ( 三 )— 共享成員》中有論述。 strName = MyXMLDataSet.Tables(0).Rows(0).Item("name").ToString ' 從DataGrid中讀取用戶名信息。 |
從DataGrid1更新信息到XML文件代碼:
Dim MyXmlDataSet As DataSet MyXmlDataSet = CType(DataGrid1.DataSource, DataSet) '類型轉(zhuǎn)換 MyXmlDataSet.WriteXml("regid.xml") '把信息寫入XML文件 |
如果不用DataGrid控件,讀寫XML文件中特定信息可以更簡單:
Dim xmlInfo As New XmlDocument xmlInfo.Load("info.xml") '載入XML文件 Dim str As string=xmlInfo.Item("RegInfo").Item("name").InnerText '用“Item”可以逐級往下讀數(shù)據(jù) xmlInfo.Item("RegInfo").Item("pass").InnerText="MyPass" xmlInfo.Save("info.xml") '保存信息到xml文件 |
我原來打算用INI格式來保存AdKing的注冊信息和發(fā)言信息,但是,一則讀寫INI不是很方便,二則XML在軟件開發(fā)中越趨重要,于是一開始就用XML文件來保存有關(guān)信息。在剛接觸VS.NET時本不知XML為何物,現(xiàn)在可自如讀寫XML,是否有點“高手”的感覺呢?(自我陶醉一下先)
2.用HttpWebResponse相關(guān)類GET和POST信息
用GET方式讀取網(wǎng)頁源代碼:
Dim httpReq As System.Net.HttpWebRequest 'HttpWebRequest 類對 WebRequest 中定義的屬性和方法提供支持',也對使用戶能夠直接與使用 HTTP 的服務(wù)器交互的附加屬性和方法提供支持。 Dim httpResp As System.Net.HttpWebResponse ' HttpWebResponse 類用于生成發(fā)送 HTTP 請求和接收 HTTP 響'應(yīng)的 HTTP 獨立客戶端應(yīng)用程序。 Dim url as String="http://sunhai.tianyablog.com" '這是我的小站,有空來坐坐 Dim httpURL As New System.Uri(url) httpReq = CType(WebRequest.Create(httpURL), HttpWebRequest) httpReq.Method = "GET" httpResp = CType(httpReq.GetResponse(), HttpWebResponse) Dim reader As StreamReader = _ New StreamReader(httpResp.GetResponseStream, System.Text.Encoding.GetEncoding("GB2312")) '如是中文,要設(shè)置編碼格式為“GB2312”。 Dim respHTML As String = reader.ReadToEnd() 'respHTML就是網(wǎng)頁源代碼 httpResp.Close() |
向服務(wù)器POST信息:
Dim httpUrl2 As New System.Uri("http://sunhai.tianyablog.com?" & "name=1&pass=6") ' “&”號后面是'注冊信息,改成你自己的 Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse) |
3.用正則表達式從網(wǎng)頁源代碼中提取網(wǎng)址
得到網(wǎng)頁源代后,我們可以對源代碼進行處理,比如提取其中的鏈接,Email地址,圖片地址,F(xiàn)lash等等。
Dim r As System.Text.RegularExpressions.Regex |
第四點體會:要學習新技術(shù),盡量在你的項目中應(yīng)用新技術(shù),在應(yīng)用中學習,進步最快。
現(xiàn)在我的AdKing已經(jīng)用.NET全面改寫,并用上繼承,重載,多線程等,所有這些在VB6中能否實現(xiàn),從VB6轉(zhuǎn)到.NET是否明智?
從2003年10月開始學習VB6編程,11月半用VB6完成第1個軟件——AdKing,到現(xiàn)在(20040117)用VB.NET技術(shù)改寫AdKing。可算基本入門。全部用的業(yè)余時間,沒有當面請教一個老師。原來沒有一點編程基礎(chǔ)。如果學得還算順利的話,很大部分要歸功于掌握并利用大量網(wǎng)絡(luò)資源。下面列出我所掌握的VS.NET網(wǎng)絡(luò)學習資源,有什么遺漏希望大家能指出。
1.微軟支持
在你學習VS.NET的過程中,有疑問首先要向MicroSoft求助。如果你不懂得利用MicroSoft提供的龐大的學習資源,我要告訴你,你很不幸,你舍近求遠了。
(1)首先,你要安裝MSDN,他比所有VS.NET書籍詳細。我為了裝MSDN,可是犧犧了我的98和XP雙啟動,改成WindowsXP單系統(tǒng)。裝了MSDN后,你要學習正則表達式,VS.NET 2003中點擊“幫助”,再點擊“搜索”,然后輸入“正則”,一回車,哇,找到470個主題,這下你慢慢研究吧。實在研究不透,也不用急,還有Google和CSDN呢。
(2)在線Microsoft .NET 框架 SDK 快速入門教程(http://chs.gotdotnet.com/QuickStart),可配合MSDN使用。分三塊內(nèi)容, ASP.NET | Windows 窗體 | 如何...?常見任務(wù) 。 “常見任務(wù)快速入門”旨在幫助您快速找到常見編程問題的答案。
(3)微軟中國社區(qū)(http://www.mscommunity.com/Profile/)。在社區(qū)注冊,有問題就到社區(qū)去提問吧。
(4)在線中文MSDN(http://www.microsoft.com/china/MSDN/default.asp);在線英文MSDN(http://msdn.microsoft.com/),考考你的E文,不過有金山詞霸在,我都不怕,你還用怕什么呢!
(5).NET主頁(http://www.microsoft.com/china/net)
(6)Visual Studio .NET主頁(http://www.microsoft.com/china/msdn/vstudio/prodinfo/overview.asp)。
為什么選擇VS.NET,為什么看好VS.NET,看看MicroSoft的Help文檔有多詳盡就知道了。如果你不去利用MicroSoft提供的龐大的Help資源,是不是有點對不起蓋茨呢!
2.CSDN http://www.csdn.net/
CSDN號稱中國最大的開發(fā)者網(wǎng)絡(luò),確實不假。我最常去的是CSDN的
文檔(http://www.csdn.net/develop/)
論壇(http://expert.csdn.net/expert/forum.asp)
只要你善于利用搜索功能,你在開發(fā)中遇到的多數(shù)問題可在文檔和論壇中找到答案。如果你在開發(fā)過程中遇到疑難,而你又認為 BillGates幫不上你的忙,那么,你就上CSDN吧,一定會讓你滿意的。
教你兩個絕招,第一招,是“搜索大法”。遇到問題,首先是在CSDN的文檔和論壇進行搜索,看有無類似答案。如不行,再下一招。
第二招,“提問大法”,只要有禮貌有誠意地在論壇提問,一定有許多人樂于回答你的問題。
3.其他相關(guān)網(wǎng)站
有不少網(wǎng)站開辟VS.NET專欄,常去看看,必有收獲。
pconline跟我學NET專欄(http://www.pconline.com.cn/pcedu/empolder/net/)
yesky的Visual Studio.NET專欄(http://www.yesky.com/SoftChannel/72342380467978240/index.shtml)
ccidnet的NET專區(qū)(http://tech.ccidnet.com/pub/column/c340.html)
4.資料下載
如果不是包月上網(wǎng),那么下載大量資源,再斷線慢慢研究就很有必要了。
網(wǎng)友提供的大量VS.NET資源下載(ftp://qydn.vicp.net)
北京希望電子出版社圖書素材資料下載(http://www.b-xr.com/bbs.htm)
清華大學出版社VS.NET源碼下載(http://www.wenyuan.com.cn/xiazai.htm)
5.國外資源
如果你的E文不錯,不妨上E文網(wǎng)站去取經(jīng)。
http://www.startvbdotnet.com
http://www.vbdotnetheaven.com
http://www.vbcity.com/
http://www.vbip.com
http://www.a1vbcode.com/
http://searchvb.techtarget.com/
http://builder.com.com
http://www.codeproject.com
http://www.planet-source-code.com/
http://sourceforge.net/
http://www.syncfusion.com/FAQ/WinForms/
http://www.123aspx.com
http://panopticoncentral.net/
http://www.regexplib.com/
http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html
http://www.only4gurus.com/v2
http://www.gotdotnet.com
http://www.programmersheaven.com/
http://www.aspnetpro.com
http://www.dotnetgenius.com/
http://www.devx.com/dotnet
http://www.devcity.net
http://www.devhood.com
http://www.c-sharpcorner.com/
http://www.csharphelp.com/
http://authors.aspalliance.com/aldotnet/examples/translate.aspx
http://www.dotnet247.com
http://www.datagridgirl.com
http://www.codestudy.com
6.其他特色網(wǎng)站、專欄
CSDN上Latitude的VS.NET專欄(http://www.csdn.net/develop/author/netauthor/Latitude/)
【孟憲會之精彩世界】(http://xml.sz.luohuedu.net/xml/)
DotNet中華網(wǎng)(http://www.aspxcn.com/)
ASP酷(http://www.aspcool.com/)
http://www.chinaaspx.com
http://www.webasp.net/
http://218.56.11.178:8009/ 海波.NET的水晶報表專欄
http://www.aspx8.cn/ asp.net資源吧
http://www.cnblogs.com/ 博客園
http://dotnet.mblogger.cn
http://blog.joycode.com/ 博客堂
當然,還有一個地球人都知道的,全球最大的知識倉庫,我不說,你也早就應(yīng)該知道的,那不是http://www.google.com又是什么!
第五點體會:掌握并利用大量網(wǎng)絡(luò)資源來輔助VS.NET的學習,你將事半功倍。