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