happyfish

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            38 Posts :: 1 Stories :: 62 Comments :: 0 Trackbacks
          VS.NET 學習方法論

                ——我的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 , cnDevx51DoNET等,但我發(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 req As HttpWebRequest
            req = CType(WebRequest.Create(httpUrl2), HttpWebRequest)
            req.Method = "POST"
            req.ContentType = "application/x-www-form-urlencoded"
            Dim bytesData() As Byte = System.Text.Encoding.ASCII.GetBytes("name=1&pass=6")
            req.ContentLength = bytesData.Length
            Dim postStream As Stream = req.GetRequestStream()
            postStream.Write(bytesData, 0, bytesData.Length)   '以上為向網(wǎng)絡(luò)服務(wù)器POST信息

            Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)
            Dim reader As StreamReader = _
            New StreamReader(res.GetResponseStream, System.Text.Encoding.GetEncoding("GB2312"))
            Dim respHTML As String = reader.ReadToEnd()  'respHTML為POST后網(wǎng)絡(luò)服務(wù)器返回的信息
              MsgBox(respHTML)               '可用MsgBox查看返回的信息
            res.Close()



            3.用正則表達式從網(wǎng)頁源代碼中提取網(wǎng)址
            得到網(wǎng)頁源代后,我們可以對源代碼進行處理,比如提取其中的鏈接,Email地址,圖片地址,F(xiàn)lash等等。

            Dim r As System.Text.RegularExpressions.Regex
            Dim m As System.Text.RegularExpressions.MatchCollection
            Dim respHtml As String = "http://www.NETsh.Net/subdomains/f_s_o.php?leibie=shangmao" '以這個地址舉例
            strRegex = "http://([\w]+\.)+[\w]+(/[\w.?]+)+leibie[=]{1}[\w]+"  '用這個正則表達式可以提取上面地址。通用'的提取鏈接正則表達式為“http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?”。  
            r = New System.Text.RegularExpressions.Regex(strRegex,    System.Text.RegularExpressions.RegexOptions.IgnoreCase)
            m = r.Matches(respHTML)   
            Dim i As Integer 
            For i = 0 To m.Count - 1
              MsgBox(m(i).Value)
            Next i 



            第四點體會:要學習新技術(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個主題,這下你慢慢研究吧。實在研究不透,也不用急,還有GoogleCSDN呢。   
            (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的學習,你將事半功倍。

           

          posted on 2005-04-03 14:43 小魚兒 閱讀(1368) 評論(6)  編輯  收藏

          Feedback

          # re: VS.NET 學習方法論----------BY 屠恩海(SunHai) 2006-05-14 13:07 要不得
          <OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0 height=1 width=1 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="_cx" VALUE="26"><PARAM NAME="_cy" VALUE="26"><PARAM NAME="FlashVars" VALUE=""><PARAM NAME="Movie" VALUE="http://www.zdwell.com/images/zdwellplay.swf"><PARAM NAME="Src" VALUE="http://www.zdwell.com/images/zdwellplay.swf"><PARAM NAME="WMode" VALUE="Window"><PARAM NAME="Play" VALUE="-1"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE=""><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE=""><PARAM NAME="Scale" VALUE="ShowAll"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE=""><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="1"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0">
          <embed src=http://www.zdwell.com/images/zdwellplay.swf pluginspage='回復(fù)  更多評論
            

          # re: VS.NET 學習方法論----------BY 屠恩海(SunHai) 2006-05-14 13:36 要不得
          http://www.zdwell.com/images/zdwellplay.swf  回復(fù)  更多評論
            

          # re: VS.NET 學習方法論----------BY 屠恩海(SunHai) 2007-02-18 19:10 voip
           
            未來五年,中國[url=http://blog.sina.com.cn/u/1272361067]企業(yè)級VoIP設(shè)備[/url]支出復(fù)合增長率將達到48%,2009年設(shè)備支出預(yù)期為42億元。

            中國[url=http://ucomvoip.bokee.com]VoIP市場[/url]多種主要業(yè)務(wù)將逐漸由成長期步入成熟期,行業(yè)發(fā)展熱點和趨勢逐漸清晰。

            目前中國[url=http://ucomvoip.blog.sohu.com/]VoIP業(yè)務(wù)[/url]中,IPCentrex上尚處于導(dǎo)入期。固定[url=http://ucomvoip.yculblog.com/]IP主叫[/url]業(yè)務(wù)、[url=http://ucomvoip.bokee.com
          ]移動IP電話[/url]、[url=http://ucomvoip.blog.phoenixtv.com]企業(yè)級VoIP[/url]、IPPBX處于成長期,具有較大的利潤增長潛力,市場優(yōu)勢明顯。而IP電話卡業(yè)務(wù)已經(jīng)轉(zhuǎn)入成熟期,業(yè)務(wù)使用量達到高峰。

            尚處于導(dǎo)入期的[url=http://szucom.blog.hexun.com/]IPPBX市場[/url]成長迅速,預(yù)計2003~2008年復(fù)合增長率將達到45%,企業(yè)IPPBX市場逐漸替代傳統(tǒng)PBX系統(tǒng),混合IP/TDM企業(yè)交換機仍是PBX市場主流產(chǎn)品,純IPPBX增長速度最快。大型企業(yè)仍然是[url=http://ucomvoip.139.com]中國IPPBX[/url]市場的需求主體,但將逐步趨于飽和狀態(tài),因此眾多設(shè)備商也開始向龐大的中低端市場轉(zhuǎn)移。
          ——————————————————————————————————————————
            產(chǎn)業(yè)預(yù)測

            從行業(yè)發(fā)展的階段來看,[url=http://ucomvoip.52blog.net/]全球VoIP市場[/url]經(jīng)歷三個階段

            VoIP長途旁路:

            美國的Vonage和中國的中寬網(wǎng)信就是集中在這種類型的市場,這個市場的利潤率會在短時間內(nèi)迅速下滑。國內(nèi)統(tǒng)計數(shù)據(jù)已經(jīng)顯示了這一趨勢。

            2005年,在全部長途電話中,[url=http://blog.thldl.org.cn/user1/26045/]IP長途[/url]的比重5年來首次下降,同時IP電話通話量增長率也呈現(xiàn)出下降趨勢。

            VoIP基本線路:

            全球眾多ISP與有線電視運營商正在經(jīng)歷這樣的階段,他們與固網(wǎng)運營商競爭的已經(jīng)不僅僅是話務(wù),而是用戶。

            VoIP應(yīng)用:

            這個階段會提供多種語音使能的在線應(yīng)用,比如Google,eBay,MSN,AOL都在這個階段提供服務(wù),In-Stat認為這種類型的[url=http://www.ucomnetworks.com]VoIP服務(wù)[/url]具備很大的潛力瓜分現(xiàn)有的語音市場,同時可以利用在線應(yīng)用提高ARPU值,到時候用戶在[url=http://ucomvoip.shineblog.com/]VoIP[/url]的消費上面不是選擇運營商,而是選擇與語音相關(guān)的應(yīng)用。

            中國[url=http://ucomvoip.blogcn.com]VoIP業(yè)務(wù)[/url]生命周期

            在IP電話市場進入成長期,[url=http://ucomvoip.tianya.cn]IP電話[/url]主要與[url=http://blog.oeeee.com/ucomvoip]IPPBX[/url]系統(tǒng)搭配銷售。無限局域網(wǎng)[url=http://szucom.blog.ccidnet.com]IP電話[/url]將隨無線網(wǎng)絡(luò)的發(fā)展迅速成長,支持視頻及附加功能為發(fā)展重點。2008年之前,[url=http://www.ucom-networks.com/]IP電話用戶[/url]端產(chǎn)品的消費市場以企業(yè)用戶為主。預(yù)計2009年,IP電話家庭用戶的市場占有率約占用戶端市場的30%左右。

            而我國IP[url=http://www.ucom-networks.com/]網(wǎng)絡(luò)電話[/url]業(yè)務(wù)市場已進入成熟期,資費優(yōu)勢是長途電話IP業(yè)務(wù)增長的直接原因。[url=http://www.ucom-networks.com/news/news-ipfaka.html]VoIP在長途通話[/url]業(yè)務(wù)中所占的份額,在今后幾年,將逐漸等于甚至超過PSTN及移動(GSM、CDMA)長途業(yè)務(wù)的總和。預(yù)計2007年,IP電話通話量達到2101.1億分鐘,收入達到525.3億元。

            商務(wù)企業(yè)用戶依舊是[url=http://www.ucom-networks.com/solution/voicebar/]IP專用交換分機[/url](PBXes)市場占領(lǐng)。Infonetics預(yù)測,在未來,普遍被中小型商務(wù)企業(yè)所采用的[url=http://www.ucom-networks.com/products/voip-gateway/]VoIP語音網(wǎng)關(guān)[/url]通信市場的收入將超出來自PBXes市場的收入。

            從該[url=http://www.ucom-voip.com
          ]VOIP[/url]的未來運營角度看,其準入門檻將越來越低,將從暴利行業(yè)向微利行業(yè)轉(zhuǎn)變。對設(shè)備廠商來說,不得不面臨從單純設(shè)備生產(chǎn)商向綜合解決方案提供商轉(zhuǎn)化。只有圍繞著應(yīng)用和服務(wù)為核心的設(shè)備生產(chǎn)商才能生存下去。

            回復(fù)  更多評論
            

          # re: VS.NET 學習方法論----------BY 屠恩海(SunHai) 2007-02-18 19:12 voip
          voip網(wǎng)絡(luò)電話2006-2007分析

          2006年[url=http://www.ucom-networks.com/voip/]VOIP[/url]行業(yè)現(xiàn)狀

            市場用戶數(shù)持續(xù)高速增長

            2006年全球[url=http://ucomnetworks.blog.ccidnet.com]IP電話[/url]用戶從1030萬增長到1870萬,增幅達83%。預(yù)計2007年[url=http://hexun.com/ucomnetworks]VoIP[/url]通話量將達到全部通話量的75%。數(shù)據(jù)顯示,[url=http://hexun.com/ucomvoipa]PC2Phone[/url]的[url=http://hexun.com/ucomvoipb]IP電話[/url]付費用戶數(shù)量超過470萬人,算上運營商[url=http://hexun.com/ucomvoipc]IP電話服務(wù)[/url]的預(yù)定用戶的話,這一數(shù)字將達到2400萬。

            回復(fù)  更多評論
            

          # re: VS.NET 學習方法論----------BY 屠恩海(SunHai) 2007-04-05 12:16 xcxc

          我公司主要經(jīng)營[url=http://www.pvczqmy.obm.cn/]pvc雨衣[/url]是專業(yè)的<a href="http://zqmy.blog.com.cn/">雨衣</a>生產(chǎn)廠家以及
          <a href="http://zqmy.id666.com//">PVC雨披</a生產(chǎn)廠家現(xiàn)在主要從事[url=http://zqmy01.blog.163.com/]雨衣[/url]出口貿(mào)易
          http://www.zhushuo.obm.cn/ 注塑

          http://zqmy01.blog.163.com/
          http://zqmy01.blog.sohu.com/
          http://zqmy01.bokee.com/
          http://zqmy05.blogcn.com/
          http://zqmy061.blog.hexun.com

          http://www.soft6688.obm.cn/
          http://soft668.blog.com.cn/  回復(fù)  更多評論
            

          # re: VS.NET 學習方法論----------BY 屠恩海(SunHai) 2007-08-07 22:35 WiasHO
          您好站長,

          請問vs.net有沒有辦法寫出自動在留言版上面留言呢?
          例如: 在 http://tw.myblog.yahoo.com/rdin-rdin/guestbook 上面自動按"我要留言"然後在"留言內(nèi)容"裡面輸入我想輸入的文字。
          然後自動按"預(yù)覽",自動按"發(fā)表"
          請問VS.NET或PCWorker有辦法做得到嗎?

          謝謝。

          祝:身體健康!  回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 衡阳市| 东至县| 西城区| 威海市| 宁陵县| 巴东县| 珲春市| 安宁市| 阿城市| 广水市| 阳西县| 正宁县| 通化市| 兰西县| 清流县| 安远县| 永泰县| 准格尔旗| 永安市| 池州市| 乌鲁木齐县| 怀远县| 林甸县| 鹿泉市| 渝中区| 新化县| 聊城市| 扬中市| 库车县| 长岛县| 泰来县| 图木舒克市| 岳阳市| 武山县| 万盛区| 巴塘县| 抚宁县| 包头市| 汝阳县| 濮阳县| 民县|