VB.NET有很多值得學(xué)習(xí)的地方,,這里我們主要介紹VB.NET Web Forms,,包括介紹Web Forms是全新的ASP.NET(不再是ASP+)等方面。 盡管在Visual Basic 6中也有一些有關(guān)互聯(lián)網(wǎng)功能的組件,,例如WebClasses,、Winsock和 WebBrowser控制,,但也僅此而已,它再也沒(méi)有其他更令人激動(dòng)的功能了,。尤其是WebClasses,,更象是后來(lái)添上去的,簡(jiǎn)直可以說(shuō)是沒(méi)有一點(diǎn)用處,。 但在VB.NET中,,網(wǎng)絡(luò)功能則扮演著重要的角色。首先,,VB.NET中有Web Services,,它將是DCOM的取代者。其次,,還有VB.NET Web Forms,。Web Forms可以使用戶(hù)無(wú)需使用古老的ASP或者CGI就能有效地建立全交互的互聯(lián)網(wǎng)網(wǎng)站。(僅僅是理論上是如此,,我并不希望你真的這樣作,。) VB.NET Web Forms理論 在介紹Web Forms的具體細(xì)節(jié)之前,讓我們先抽出一點(diǎn)時(shí)間來(lái)介紹一些理論方面的基礎(chǔ)知識(shí),。 那么我們現(xiàn)在使用的互聯(lián)網(wǎng)開(kāi)發(fā)工具有什么不足之處呢,?對(duì)于任何比較重要的開(kāi)發(fā)活動(dòng),一般都需要用到ASP,,但我必須說(shuō)明的是,,我并不喜歡它。首先,,它會(huì)使我們所編寫(xiě)的代碼顯得凌亂,。我們必須將表示層(實(shí)際的HTML代碼)與ASP代碼混在一塊兒。我們應(yīng)該將所有代碼都隱藏在窗體的后面,,盡管有幾種方法能夠解決這一問(wèn)題,,但并不是十分理想。其次,,必須浪費(fèi)時(shí)間對(duì)所有使用老式計(jì)算機(jī)的用戶(hù)提供支持,,如果這些用戶(hù)的瀏覽器不支持javascript,我們就需要發(fā)現(xiàn)這一問(wèn)題,,并通過(guò)修改網(wǎng)頁(yè),,滿(mǎn)足用戶(hù)的需求,。 此外,,還存在狀態(tài)管理問(wèn)題。如果有人登錄了網(wǎng)站,,而我們希望知道有關(guān)它的基本情況,,就需要使用Session對(duì)象,。當(dāng)有多臺(tái)機(jī)器需要訪(fǎng)問(wèn)Session對(duì)象時(shí),網(wǎng)站的負(fù)荷就會(huì)很大,,這時(shí)我們又會(huì)遇上麻煩,。 令人不可思議的是,VB.NET Web Forms將能夠使所有這些問(wèn)題迎刃而解,。Web Forms是全新的ASP.NET(不再是ASP+),,它們可以使用我們?cè)赩B.NET中有效地創(chuàng)建交互式互聯(lián)網(wǎng)網(wǎng)頁(yè),而且這一工作還非常地輕松,。 我們只要簡(jiǎn)單地在VB.NET中創(chuàng)建一個(gè)Web Form即可,。這一過(guò)程與設(shè)計(jì)一個(gè)WebClass有點(diǎn)類(lèi)似,但令人遺憾的是,,我們只能在FrontPage中設(shè)計(jì)好網(wǎng)頁(yè),,然后把生成的HTML代碼傳送給VB.NET Web Forms。 提示:盡管可以將在FrontPage中生成的HTML代碼傳送給VB.NET中的Web Form,,但這與事實(shí)有一定的出入,。在我的多次試驗(yàn)中,似乎在網(wǎng)頁(yè)比較簡(jiǎn)單時(shí)沒(méi)有什么問(wèn)題,,但如果網(wǎng)頁(yè)的輸出變得復(fù)雜時(shí),,就會(huì)出錯(cuò)。在以后的版本中這一問(wèn)題應(yīng)該得到修正,。 因此,,我們可以通過(guò)Web Form創(chuàng)建基本的網(wǎng)頁(yè),然后在VB.NET中添加交互性元素━━例如文字框或提交按鈕,,此外,,還可以在其中添加不需要進(jìn)行獨(dú)立下載的更高級(jí)的HTML功能━━Web Controls。這樣設(shè)計(jì)出來(lái)的網(wǎng)頁(yè)可以兼容所有的瀏覽器,。 提示:VB.NET中捆綁有許多Web Controls,,例如,我們?cè)谏院髸?huì)使用到的Calendar控制,。在設(shè)計(jì)出網(wǎng)頁(yè)和添加上交互性元素后,,還需要再添加一些代碼使得二者能夠更好地融合在一塊兒。也就是說(shuō),,我們?cè)赪eb Form上有了一個(gè)文本框和按鈕,,但還需要編寫(xiě)一段代碼,獲得在文本框中輸入的數(shù)據(jù)并在標(biāo)簽中顯示它,,或者把它添加到數(shù)據(jù)庫(kù)中,、或者在一個(gè)用戶(hù)列表中進(jìn)行校驗(yàn),然后把用戶(hù)定期導(dǎo)向到成員區(qū)中,。 這里的關(guān)健問(wèn)題是我們可以將整個(gè)網(wǎng)頁(yè)和對(duì)象當(dāng)作一個(gè)對(duì)象來(lái)處理,。你再也無(wú)需象在原來(lái)的ASP中那樣請(qǐng)求一些窗體字段,,而只需象在Windows Form中那樣調(diào)用對(duì)象即可。在把ASP.NET與ASP進(jìn)行比較后,,我們?cè)賮?lái)看看我在上面提出的問(wèn)題,,并找出如何解決它們的辦法。首先,,是HTML,、ASP代碼混用的問(wèn)題。在VB.NET中不會(huì)遇到這一問(wèn)題,,HTML網(wǎng)頁(yè)與所使用的代碼是完全分離的,,在Web Form上只有一行代碼與所使用的代碼模塊有關(guān),其他的工作有互聯(lián)網(wǎng)服務(wù)器來(lái)完成,。 提示:象ASP文件有.ASP后綴那樣,,Web Forms有一個(gè).ASPX后綴。當(dāng)互聯(lián)網(wǎng)服務(wù)器向用戶(hù)提交這一網(wǎng)頁(yè)時(shí),,.NET Framework首先自動(dòng)地對(duì)它進(jìn)行處理,,例如,Web Controls被轉(zhuǎn)換為HTML代碼,,編譯代碼等,,我們?cè)诤竺鏁?huì)更詳細(xì)地談到這一問(wèn)題。使用原來(lái)的ASP,,我們必須在檢查用戶(hù)的瀏覽器并對(duì)內(nèi)容進(jìn)行適當(dāng)?shù)男薷氖顾募嫒菪愿梅矫婊ㄙM(fèi)一定的時(shí)間,。在VB.NET中,它可以為我們完成所有的處理,,.NET Framework只能產(chǎn)生可以被目標(biāo)瀏覽器所識(shí)別的HTML代碼,。 那么狀態(tài)管理如何呢?對(duì)于大多數(shù)的ASP開(kāi)發(fā)人員而言,,這都是個(gè)難以處理的問(wèn)題,。在ASP.NET中,狀態(tài)是被存儲(chǔ)在發(fā)給用戶(hù)的網(wǎng)頁(yè)中的(以一種隱藏字段的方式,。),。在下次再發(fā)送該網(wǎng)頁(yè)時(shí),就可以讀取和使用其中的數(shù)據(jù),。 好了,,這就是ASP.NET,,它是一種嶄新的工具,它所提供的功能是ASP開(kāi)發(fā)人員所夢(mèng)寐以求的,。如果你使用Visual Basic作為開(kāi)發(fā)工具,,并希望涉足互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā),這將是一個(gè)理想的機(jī)會(huì),。 【編輯推薦】 |
|
來(lái)自: nxhujiee > 《vb.net語(yǔ)法》