會(huì)vbvb點(diǎn)虐 的簡(jiǎn)單介紹

VB與VB點(diǎn)虐 各自優(yōu)勢(shì)與區(qū)別

' 關(guān)于VB點(diǎn)虐 { Visual Basic.NET是基于微軟.NET Framework之上的面向?qū)ο蟮闹虚g解釋性語(yǔ)言,可以看作是Visual Basic在.Net Framework平臺(tái)上的升級(jí)版本,增強(qiáng)了對(duì)面向?qū)ο蟮闹С帧5捎诟膭?dòng)太大,導(dǎo)致VB點(diǎn)虐 對(duì)VB的向后兼容性不好,在業(yè)界引起不小的爭(zhēng)議。 } ' VB點(diǎn)虐 與VB6.0的主要區(qū)別 { VB.Net需要在.Net Framework平臺(tái)上才能執(zhí)行,因此,大多的VB.Net程序員使用Visual Studio.Net作為IDE(integrated development environment-集成性的開(kāi)發(fā)環(huán)境)開(kāi)發(fā)點(diǎn)虐 應(yīng)用程序。 VB6生成的應(yīng)用程序不需要.Net Framework框架的支持。 因此,使用VB點(diǎn)虐 開(kāi)發(fā)的應(yīng)用程序只能在裝有.Net Framework框架的系統(tǒng)中運(yùn)行。 } ' VB點(diǎn)虐 與VB6.0的編程思想 { 網(wǎng)上流傳的VB與VB點(diǎn)虐 差別被過(guò)分夸大。其實(shí)VB點(diǎn)虐 改善的只是完整的面向?qū)ο笏枷耄?0%語(yǔ)法與VB6.0保持一致。 抽象、封裝、多態(tài)、繼承是面向?qū)ο笳Z(yǔ)言的四個(gè)基本屬性。VB6.0不支持繼承,而VB.NET則不然。所以,和C++一樣,VB.NET也是完全面向?qū)ο蟮木幊陶Z(yǔ)言。 } ' VB點(diǎn)虐 與VB6.0的應(yīng)用前景(個(gè)人觀點(diǎn) By 刺猬) ( 介于現(xiàn)在應(yīng)用最為廣泛WindowsXP操作系統(tǒng)沒(méi)有預(yù)裝點(diǎn)虐 framework的原因,許多VB程序員采用VB6.0開(kāi)發(fā)應(yīng)用程序;但現(xiàn)在不一樣了,在未來(lái),WindowsXP系統(tǒng)必將面臨淘汰。繼Vista以后,系統(tǒng)都預(yù)裝了點(diǎn)虐 framework框架,由此看來(lái),微軟正在極力推崇使用點(diǎn)虐 技術(shù)?;蛟S,點(diǎn)虐 應(yīng)用程序的開(kāi)發(fā)在未來(lái)會(huì)有很大的發(fā)展前景。 }

專注于為中小企業(yè)提供成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)霍林郭勒免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

求采納

學(xué)VB還是VB點(diǎn)虐 好?

細(xì)說(shuō)VB.NET(上)

(作者:青蘋果工作室編譯 2001年03月07日 14:47)

微軟公司提出的.NET概念,正從各個(gè)方面滲入到我們的生活中。它將產(chǎn)生的作用,

誠(chéng)如一位業(yè)內(nèi)名家所描述的:“請(qǐng)忘掉你認(rèn)為你所知道的,.NET將改變一切”!既然如

此,無(wú)論是IT業(yè)內(nèi)人士、還是企業(yè)決策者,快速領(lǐng)會(huì)這個(gè)新概念的含義及深遠(yuǎn)影響,

都顯得非常必要。

概要

VB正在不斷地發(fā)展中,它具備了以前VB編程人員作夢(mèng)都想擁有的性能,想象一下你

將隨心所欲的利用這些性能,是不是很令人激動(dòng)?然而,這個(gè)計(jì)劃于2001年第四季度上

市銷售的VB版本可能會(huì)給你帶來(lái)些小麻煩,因?yàn)橐耆莆账枰粋€(gè)較長(zhǎng)的學(xué)習(xí)周期

,而且其中包括了一些微妙的變化,你可能在使用他們的時(shí)候出現(xiàn)錯(cuò)誤。

需要準(zhǔn)備的條件:建議獲得Visual Basic.NET beta 版,這些內(nèi)容對(duì)所有VB程序員

都是有用的。

Microsoft .NET平臺(tái)的涵蓋面很廣,而且很難預(yù)測(cè)它的真正意義。我們注意到,現(xiàn)

在有很多關(guān)于.NET的不正確的理解。因此在這篇文章里,我們將把給你一個(gè)VB.NET到底

是些什么的概念,從頭到尾說(shuō)一說(shuō)它是什么、它能干什么以及怎樣才能充分發(fā)揮它的優(yōu)

點(diǎn)。我們要特別地細(xì)看一下IDE的改變、面向?qū)ο筇卣?、底層結(jié)構(gòu)的改變、一些“現(xiàn)代化

”的語(yǔ)法以及包裝和分發(fā)方面的增強(qiáng)。我們將討論這些功能能為你做什么,解釋他們的

優(yōu)點(diǎn)與不足。由于這些改變是如此之大,而且涉及方方面面,因此希望這一篇文章能滿

足你全部的要求是不現(xiàn)實(shí)的,要了解這方面全部的知識(shí)請(qǐng)參閱有關(guān)文章和書籍。

Visual Basic.NET 和你現(xiàn)在所知的開(kāi)發(fā)工具完全不同,并且這個(gè)新版本會(huì)改變你的

未來(lái)。到底有多大不同?如果你覺(jué)得從VB3遷移到VB4是一個(gè)很大的變化,那這次VB.NET

會(huì)讓你感到震驚。這次升級(jí)與其說(shuō)是VB的一個(gè)新版本,還不如說(shuō)是遷移到一個(gè)新平臺(tái)上

,你所面臨的情況就和從DOS遷移到Windows差不多。

VB獲得了繼承能力

VB.NET預(yù)期擁有的第一新功能就是繼承能力。繼承是VB開(kāi)發(fā)者長(zhǎng)期以來(lái)要求得最多

的功能。判斷一下對(duì)繼承的要求是不是像早些時(shí)候?qū)Ρ镜鼗幾g器的要求一樣將是一件

很有意思的事,后者,當(dāng)Microsoft提供了一個(gè)以后,你就幾乎聽(tīng)不到多少這方面的言語(yǔ)

了。

Visual Basic現(xiàn)在是真正的面向?qū)ο笳Z(yǔ)言了。過(guò)去,你可以通過(guò)使用VB的界面繼承

性創(chuàng)建偽實(shí)現(xiàn)的對(duì)象繼承,但現(xiàn)在不必這樣做了。

Visual Basic.NET 現(xiàn)在提供大量面向?qū)ο蠊δ?,包括?yīng)用程序繼承,它允許你從其

它類導(dǎo)出你想創(chuàng)建的類。像在其它面向?qū)ο笳Z(yǔ)言里一樣,你能覆蓋基類的方法和屬性,

并且能實(shí)現(xiàn)多態(tài)以創(chuàng)建健壯的、擴(kuò)展性好的組件。例如,假定你從基類 Crane里繼承產(chǎn)

生了一個(gè)ForkLift類,你能使用像下面的代碼覆蓋基類里對(duì)Lift方法的默認(rèn)實(shí)現(xiàn):

Public Class ForkLift

Inherits Crane

Overrides Sub Lift(ByRef _

Height As Double)

Height = Height + 10

End Sub

End Class

VB.NET不僅能讓你覆蓋方法或?qū)傩裕凰€能讓你重載方法。重載是定義同名、但使

用不同數(shù)據(jù)類型的方法或?qū)傩缘哪芰?。例如,假定你有一個(gè)組件能對(duì)不同數(shù)據(jù)類型的數(shù)

組進(jìn)行排序,你不需要三個(gè)(每種數(shù)據(jù)類型一個(gè))不同名的方法;實(shí)際上你可以重載一個(gè)

方法名:

Overloads Sub SortArray(ByRef _

aValues()As String)

...

Overloads Sub SortArray(ByRef _

aValues() As Integer)

...

Overloads Sub SortArray(ByRef _

aValues() As Object)

另一個(gè)改變是:表單現(xiàn)在是類模塊。這就是說(shuō)類本身包含建立表單的所有“肥料”

的代碼。你可能想知道,為什么你不得不看到這些從前不用看的代碼,但這個(gè)改變同時(shí)

帶來(lái)強(qiáng)大的新功能,包括繼承這些表單的能力。Microsoft把這一技術(shù)稱為可視化繼承。

假定你的對(duì)話框有一種標(biāo)準(zhǔn)的格式,例如在表單的一側(cè)有一行按鈕,并在角上有一個(gè)標(biāo)

識(shí),那么,通過(guò)可視化繼承你能創(chuàng)建一個(gè)表單模板(類),并從這個(gè)基類里導(dǎo)出所需的表

單。

一切都是對(duì)象

代碼復(fù)用簡(jiǎn)化了開(kāi)發(fā)過(guò)程,像實(shí)現(xiàn)和可視化繼承這樣的功能有利于更簡(jiǎn)單、更強(qiáng)大

的代碼復(fù)用。然而,代碼復(fù)用并不是到此為止。你能通過(guò)支持VB.NET的通用語(yǔ)言運(yùn)行庫(kù)

(Common Language Runtime - CLR)繼承在其它 VS.NET 語(yǔ)言里定義的類。例如,你或別

人創(chuàng)建了一個(gè) C# 類,然后就能從 VB 里繼承它。

VB.NET 的面向?qū)ο竽芰U(kuò)展了語(yǔ)言本身的通路:一切都是對(duì)象。這意味著比在以前

的 VB 版本里,你獲得了更多的內(nèi)在功能,你將很少被迫使用 Windows API。例如,在

以前的 VB 版本里,你使用 LoadPicture 方法加載圖片并使用表單的 Line 方法(或較

快的 API) 畫線?,F(xiàn)在,你使用 System.Drawing 對(duì)象來(lái)創(chuàng)建并處理圖形。你可以使用

以下代碼在表單上顯示一幅圖片:

picshowpicture.Image = _

system.Drawing.Image.FromFile( _

"c:\test.bmp")

注意 VB.NET 的“一切都是對(duì)象”方式讓你的語(yǔ)句能用得更長(zhǎng)久。

考慮以下語(yǔ)句,它在一個(gè)圖形對(duì)象上畫一條黃綠色的線:

objgraphics.DrawLine(system.Drawing. _

Pens.Chartreuse, 0, 0, 100, 100)

這些長(zhǎng)長(zhǎng)的語(yǔ)句也有好處:改進(jìn)的功能、適應(yīng)性和易用性。從前,你要實(shí)現(xiàn)先進(jìn)的

功能就不得不在文檔中挖掘,經(jīng)常是不得不訴諸API。現(xiàn)在,相關(guān)的功能集符合邏輯地包

含在對(duì)象里。這種處理方式的另外一個(gè)好處就是:類把相關(guān)的功能很好的組織了起來(lái)。

所以,瀏覽你感興趣的對(duì)象,發(fā)現(xiàn)它們做些什么實(shí)際上很有意思。

Visual Basic.NET 的面向?qū)ο蠊δ芴峁┝撕芏鄬?shí)在的好處。很多情況下,VB.NET

面向?qū)ο蟮谋举|(zhì)和實(shí)現(xiàn)的繼承性能幫助你比在以前的 VB 版本里更容易、更迅速地創(chuàng)建

特定類型的功能。然而,你不一定要僅僅因?yàn)槟隳茏龅?,就使用?shí)現(xiàn)繼承性或其它 .NE

T 功能。VB.NET 的新功能使開(kāi)發(fā)許多類型的應(yīng)用程序變得更簡(jiǎn)單!但是,就像使用所有

的語(yǔ)言能力一樣,你需要使用的是在特定場(chǎng)合下最適合的功能。

自由線程的危險(xiǎn)

對(duì)于自由線程可能需要特別給出警告。VB6允許你使用獨(dú)立的線程來(lái)創(chuàng)建多線程服務(wù)

器程序,但VB過(guò)去從來(lái)沒(méi)有讓你能創(chuàng)建自由線程的客戶端程序。VB.NET 改變了這一切。

現(xiàn)在,創(chuàng)建自由線程應(yīng)用程序幾乎成了最微不足道的事情。實(shí)際上,我估計(jì)那些沒(méi)有理

解其中的微妙差別,就在他們的應(yīng)用程序里添加了自由線程的程序員會(huì)遇到很多問(wèn)題。

只需要幾行代碼就能啟動(dòng)一個(gè)新線程:簡(jiǎn)單地將線索對(duì)象的地址傳遞給方法,方法本身

就會(huì)啟動(dòng)線程。這確實(shí)是很酷也很有用的東西,但你需要小心:這些功能適用于特定的

場(chǎng)合,確定哪些是適用的場(chǎng)合并且明智的使用這些工具則是你自己的事。許多開(kāi)發(fā)者使

用繼承性和自由線程時(shí)給自己找了不少麻煩,請(qǐng)不要讓這些發(fā)生在你身上。

可能大家討論得最多的 VB.NET 特征就是 CLR (通用語(yǔ)言運(yùn)行庫(kù)),VB 運(yùn)行在它的

頂層上。是 CLR 提供了 VB.NET 的許多關(guān)鍵功能。例如,CLR 使實(shí)現(xiàn)和跨語(yǔ)言繼承性以

及自由線程成為可能。

分發(fā)VB程序要求你同時(shí)分發(fā)VB的運(yùn)行庫(kù),在VB6里即是msvbvm60.dll。許多其它語(yǔ)言

也有類似的要求,包括 C++ 和 Java。在Visual Studio.NET里,所有的Visual Studio

語(yǔ)言共享同一個(gè)運(yùn)行庫(kù):CLR。這里有幾個(gè)較大的變化,首先,所有的Visual Studio語(yǔ)

言現(xiàn)在都共享同一個(gè)IDE、同樣的表單引擎、同樣的異常處理機(jī)制等等。這意味著Visua

l Basic和像 C#這樣的語(yǔ)言擁有同等的地位,至少差不多是同等的。

回復(fù):

細(xì)說(shuō)VB.NET(中)

(作者:青蘋果工作室編譯 2001年03月07日 14:47)

易于反編譯的中間語(yǔ)言

無(wú)論你用VB、C#或其它.NET語(yǔ)言編寫應(yīng)用程序,VS.NET代碼都編譯成為中間語(yǔ)言(I

L)。當(dāng)應(yīng)用程序運(yùn)行時(shí),一個(gè)即時(shí)編譯器(JITter)處理IL代碼并把它編譯成為機(jī)器語(yǔ)言

。這意味著在理論上可能為Windows以外的平臺(tái)創(chuàng)建.NET運(yùn)行庫(kù),但現(xiàn)在關(guān)于類似的事情

還沒(méi)有任何官方消息。中間語(yǔ)言的一個(gè)缺陷是:它像VB5以前的VB版本一樣,容易被反編

譯。這種可能性使許多開(kāi)發(fā)者普遍地質(zhì)疑.NET架構(gòu)的安全性。

CLR在IL層次內(nèi)外影響代碼,對(duì)它的修改將使所有使用CLR的語(yǔ)言受益。然而,語(yǔ)言

只是和代碼如何被解釋為IL有關(guān),對(duì)特定語(yǔ)言的優(yōu)化可以根據(jù)特定語(yǔ)言的語(yǔ)法來(lái)編寫,

這樣在技術(shù)上就可能使.NET語(yǔ)言之間的性能差別很小。不管怎樣,大體上藍(lán)圖是美好的

。例如,CLR使VB的調(diào)試和監(jiān)測(cè)工具和C#的相應(yīng)工具相當(dāng),它做到了這一點(diǎn)因?yàn)樗鼈儽緛?lái)

就是相同的工具。

CLR提供不平行的跨語(yǔ)言集成,包括跨語(yǔ)言繼承代碼的能力。所有使用CLR的語(yǔ)言共

享一個(gè)通用類型系統(tǒng),它使使用多種語(yǔ)言開(kāi)發(fā)應(yīng)用程序變得更簡(jiǎn)單。我不喜歡把 C API

聲明翻譯成VB里可以使用的形式,所以我很贊賞通用類型系統(tǒng)帶來(lái)的好處。

在CLR中運(yùn)行的代碼被稱為被管理代碼,被管理代碼使用的內(nèi)存完全由CLR來(lái)控制。

被管理代碼帶來(lái)很多好處,包括跨語(yǔ)言集成、跨語(yǔ)言異常處理和簡(jiǎn)化的部件相互作用模

型。Visual Basic被限制為只能以被管理代碼的方式工作,然而C#擁有跳到非被管理代

碼的能力(執(zhí)行到運(yùn)行庫(kù)之外),并能做像指針操作這類事情。這是VB和C#不同等的情況

之一。這種能力到底有多重要取決于你想干什么。

CLR造成的體系結(jié)構(gòu)差別要比跨語(yǔ)言集成、共享功能和被管理代碼等深刻。首先,V

isual Studio.NET的支撐結(jié)構(gòu)不是 COM。另外,VB.NET里的所有東西,甚至字符串都是

對(duì)象。因?yàn)檫@些和其它一些原因,Microsoft改變了支撐結(jié)構(gòu)處理對(duì)象的方式。COM實(shí)現(xiàn)

了一個(gè)引用計(jì)數(shù)方案,這樣每次引用一個(gè)對(duì)象時(shí),計(jì)數(shù)器遞增。當(dāng)一個(gè)對(duì)象引用超出作

用域或被釋放時(shí),計(jì)數(shù)器遞減,當(dāng)引用計(jì)數(shù)減少到零時(shí)就終止這個(gè)對(duì)象。Microsoft聲稱

在.NET架構(gòu)下引用計(jì)數(shù)的開(kāi)銷太大,以至于不能在 .NET中實(shí)現(xiàn)它,所以它放棄了引用計(jì)

數(shù)轉(zhuǎn)而使用垃圾收集。

垃圾收集需要新體系結(jié)構(gòu)

CLR垃圾收集器主要是監(jiān)視一個(gè)程序的資源,當(dāng)可用資源達(dá)到確定的閾值時(shí)尋找無(wú)用

的對(duì)象,并在發(fā)現(xiàn)它們的時(shí)候清除這些對(duì)象。垃圾收集的一大好處就是你不再需要擔(dān)心

大多數(shù)普通的循環(huán)引用,即子對(duì)象引用了父對(duì)象,然后父對(duì)象又引用了子對(duì)象。在引用

計(jì)數(shù)方案下,循環(huán)引用使兩個(gè)對(duì)象都不能被釋放和清除。然而,垃圾收集器會(huì)發(fā)現(xiàn)循環(huán)

引用并清除它們。這也意味著釋放對(duì)象的最后一個(gè)引用時(shí)不再需要立即清除對(duì)象。

垃圾收集的一個(gè)后果是:你再也不能指望一個(gè)類的 Terminate 事件能在適當(dāng)?shù)臅r(shí)機(jī)

發(fā)出。實(shí)際上,如果線程被阻塞,可能根本就不會(huì)發(fā)出 Terminate 事件。和COM提供的

確定化終止相反,它被稱為不確定的終止。缺乏確定化終止,以及因?yàn)槔占髦匦?/p>

安排并壓縮內(nèi)存從而不能使用指針的事實(shí),在新聞組里激發(fā)了一波激烈的辯論。我想這

些新限制可能會(huì)令你痛恨,因?yàn)槟阋揽看_定化終止;也可能你漠不關(guān)心,因?yàn)槟悴灰?/p>

賴 Terminate 事件。垃圾收集并不是萬(wàn)靈藥,實(shí)現(xiàn)弱引用依然需要做一些考慮。

從引用計(jì)數(shù)到垃圾收集只是 Visual Studio.NET 的支撐結(jié)構(gòu)不是 COM 這個(gè)事實(shí)的

表象之一。你能在VB.NET中使用COM對(duì)象,比如說(shuō)ActiveX服務(wù)器或ActiveX控件。然而,

你必須通過(guò)包裝訪問(wèn)這些對(duì)象。任何時(shí)候聽(tīng)到“包裝”這個(gè)術(shù)語(yǔ),你應(yīng)該明白你面對(duì)著

性能損失,并且對(duì)象的行為可能有所不同。如果當(dāng)計(jì)劃移植一個(gè)使用了大量COM對(duì)象的工

程,就需要認(rèn)真地測(cè)試和計(jì)劃,可能需要重新規(guī)劃應(yīng)用程序的結(jié)構(gòu)才能移植成功。坦率

地說(shuō),你要有遭受挫折的準(zhǔn)備。還記得從VBX遷移到 OCX的過(guò)程嗎?我記得,我的精神病

醫(yī)生也記得。我很快就要再去看他了 ;-)

語(yǔ)言本身的變化要遠(yuǎn)遠(yuǎn)超過(guò)體系結(jié)構(gòu)的變化。大部分改變確有道理,但我并不認(rèn)為

所有的改變都是如此。以前版本的VB允許你以很多方法來(lái)做很多事,以至于統(tǒng)一的編碼

標(biāo)準(zhǔn)要么不存在要么就很難強(qiáng)加于人。Microsoft對(duì)VB做了大量的改變?yōu)榈木褪恰扒逦?/p>

這種語(yǔ)言。很多情況下,原來(lái)你有好幾種方法做一件事,現(xiàn)在就只有一種了。Billy Ho

llis 提供了語(yǔ)法變化的詳細(xì)列表,包括廢棄的關(guān)鍵字列表,但有些東西需要在這里重復(fù)

一下。

首先,向過(guò)程參數(shù)傳遞數(shù)據(jù)的默認(rèn)方法由引用(ByRef)變成了傳值(ByVal)。這個(gè)改

變主要是因?yàn)橐靡葌髦档娘L(fēng)險(xiǎn)大得多。它的風(fēng)險(xiǎn)主要是調(diào)用過(guò)程中的數(shù)據(jù)可能被無(wú)

意中篡改。你仍然能通過(guò)引用傳遞數(shù)據(jù),但這一改變使你需要修改新的默認(rèn)調(diào)用方法來(lái)

使用引用。

Set語(yǔ)句消失了

其次,Set 語(yǔ)句消失了。在 VB.NET 里如果你需要向變量傳遞一個(gè)對(duì)象引用,所需

要的只是一個(gè)等號(hào),對(duì)象被視為同其它值一樣。這很酷,但也有副作用:默認(rèn)屬性消失

了。例如,你不再能用這種方式引用一個(gè)屬性:

Text1 = "What, me worry?"

作為替代,你必須顯式地引用屬性:

Text1.Text = "What, me worry?"

也許一眼看來(lái)不需要這種改變,但確實(shí)必須去掉默認(rèn)屬性。例如,假定你有一個(gè)叫

objFoo的對(duì)象變量,不用Set語(yǔ)句,下面的語(yǔ)句所設(shè)置的引用就產(chǎn)生了歧義性:

objFoo = Text1

這條語(yǔ)句是應(yīng)該設(shè)置到Text1的引用,還是以Text1的Text屬性來(lái)填充objFoo?你不

能確定,編譯器也不能。拋棄Set語(yǔ)句同時(shí)要求拋棄默認(rèn)屬性。

有一個(gè)改變我不喜歡:你不再能在不同的作用域里聲明Property Get和Property S

et過(guò)程。注意 VB.NET 沒(méi)有 Property Let 語(yǔ)句:對(duì)象和數(shù)值都用 Property Set。這意

味著你不能用一個(gè) Friend Property Let 過(guò)程來(lái)對(duì)應(yīng)一個(gè) Public Property Get。用V

B建立組件時(shí)可能會(huì)有麻煩。許多組件開(kāi)發(fā)者創(chuàng)建 Friend Property Set 過(guò)程以使他們

的應(yīng)用程序能改變一個(gè)值,但提供 Public Property Get 過(guò)程以使他們的客戶程序能取

回值。我希望我能為這個(gè)改變找到一個(gè)合適的理由,可是我找不到。

Microsoft說(shuō)它力圖使語(yǔ)言保持清晰并使之現(xiàn)代化—大部分情況下它做得不錯(cuò)—但這

個(gè)作用域問(wèn)題和其它幾個(gè)問(wèn)題令人感到困惑。例如,While...Wend 很早以前就應(yīng)該消失

了,因?yàn)?Do...Loop 完成同樣的功能。然而,Microsoft 不僅沒(méi)能去掉 While...Wend

,還把它改成了 While...End While 來(lái)給自己找了更多的麻煩。真奇怪!

我最不喜歡的改變是:Microsoft改變了你已經(jīng)使用的數(shù)據(jù)類型含義。在 .NET 里,

Integer 現(xiàn)在是 32 位,而 Long 變成了 64 位。我心存恐懼地想:開(kāi)發(fā)者 (包括我自

己) 會(huì)多么頻繁地使用錯(cuò)誤的變量啊。那個(gè)API到底是接受一個(gè)16位的 Integer還是32位

的?老天!我希望Microsoft重新考慮這個(gè)決定并使用新的變量類型,比如Int32和Long

64。無(wú)論遷移到 VB.NET的移植工具是多么的好,它也不能改變開(kāi)發(fā)者的記憶。為什么要

逼著我們?cè)賹W(xué)一遍普通的數(shù)據(jù)類型呢?

最后,最需要的一個(gè)改變是:VB.NET引入了 Option Strict 關(guān)鍵字,你可以使用它

來(lái)代替 Option Explicit。Option Strict 結(jié)束了萬(wàn)惡的類型強(qiáng)制(tm),通過(guò)它VB樂(lè)于

讓你把一個(gè)數(shù)值賦值給一個(gè)字符串,然后像犯罪一樣做另一個(gè)操作。設(shè)置 Option Stri

ct 告訴 Visual Basic.NET 不要為你做任何類型強(qiáng)制。注意 VB.NET 并不是徹底的控制

狂,它允許類型向下轉(zhuǎn)換,但不允許向上。例如,不使用像 sngvariable = CSng(dblv

ariable) 這樣的語(yǔ)句進(jìn)行顯式類型轉(zhuǎn)換,你就不能把聲明為 Single 的變量賦值給聲明

為 Double 的變量。因?yàn)檫@有丟失數(shù)據(jù)的風(fēng)險(xiǎn)。然而,你能不使用顯式類型轉(zhuǎn)換就把聲

明為 Double 的變量賦值給聲明為 Single 的變量,因?yàn)檫@并沒(méi)有丟失數(shù)據(jù)的危險(xiǎn)。使

用 Option Strict 能幫助開(kāi)發(fā)者減少很多類型錯(cuò)誤,包括那些很難調(diào)錯(cuò)的。但有一個(gè)附

加的缺陷:在工程里使用了 Option Strict 后,就不能進(jìn)行 后編聯(lián)了。

回復(fù):

細(xì)說(shuō)VB.NET(下)

(作者:青蘋果工作室編譯 2001年03月07日 14:47)

表單和新IDE面孔

Visual Basic.NET 的面向?qū)ο蠊δ芎軅ゴ?,但第一次啟?dòng) VB.NET 時(shí)還注意不到它

??赡苣阕⒁獾降牡谝患率撬?IDE。IDE看起來(lái)可能很熟悉,建立VS.NET IDE的團(tuán)隊(duì)

以前的工作是開(kāi)發(fā)VB的IDE,對(duì)IDE的增強(qiáng)借鑒了VB IDE的經(jīng)驗(yàn)。

同時(shí),IDE的改變遠(yuǎn)比外表顯示的深刻。所有.NET語(yǔ)言使用相同的IDE,并且IDE中的

新工具功能強(qiáng)大又易于理解。你能把任何一個(gè)設(shè)計(jì)窗口設(shè)置為自動(dòng)隱藏 (就像你能自動(dòng)

隱藏Windows任務(wù)欄那樣),這樣就大大地減少了混亂。主工作區(qū)域是一系列選項(xiàng)卡,這

意味著IDE不再同時(shí)顯式多個(gè)表單和代碼模塊。當(dāng)打開(kāi)對(duì)象的源代碼時(shí),IDE在它的主工

作區(qū)域?yàn)楣ぷ鞯膶?duì)象添加一個(gè)新的選項(xiàng)卡。

IDE還包括一個(gè)叫作任務(wù)表(Task List)的新窗口。它的內(nèi)容由IDE創(chuàng)建的項(xiàng)目組成。

例如,如果在試圖編譯一個(gè)工程時(shí)收到一個(gè)錯(cuò)誤,VB在任務(wù)表里創(chuàng)建一個(gè)項(xiàng)目來(lái)解釋這

個(gè)錯(cuò)誤。你能直接向任務(wù)表里添加項(xiàng)目,或者通過(guò)在代碼里以 "TODO:"開(kāi)始一個(gè)注釋行

,你可以在代碼位置和任務(wù)之間建立聯(lián)系。我喜歡Microsoft實(shí)現(xiàn)任務(wù)表的方式;在程序

出爐前,都需要完成些什么?估計(jì)它能幫我省掉很多時(shí)間和麻煩??吹剿鼤r(shí),你最容易

產(chǎn)生的一個(gè)想法就是:以前怎么就沒(méi)人想到它呢?

你能注意到的另一個(gè)變化就是:VB.NET的表單。Microsoft廢棄了舊的表單引擎而使

用Windows Form代替它。所有基于 CLR的語(yǔ)言都使用Windows Form引擎。相對(duì)于VB6的表

單引擎,它有幾個(gè)重要的改進(jìn)。例如,Windows Form讓你能創(chuàng)建能自動(dòng)調(diào)整組件尺寸的

表單,并允許將控件錨定在表單里的特定位置。換句話說(shuō),不再需要使用第三方控件就

能完成這些特殊任務(wù)。Windows Form還允許表演像透明表單這樣的很酷的技術(shù)。

過(guò)去,VB隱藏了建立表單的所有魔術(shù)。你使用IDE設(shè)計(jì)表單并把代碼添加到Initial

ize事件上,但你沒(méi)有手段來(lái)控制這兩點(diǎn)之間的過(guò)程。現(xiàn)在,表單就是一個(gè)類,它包含用

來(lái)建立表單所有的代碼。我把這些代碼稱為肥料代碼,因?yàn)榇蠖鄶?shù)開(kāi)發(fā)者希望遠(yuǎn)遠(yuǎn)離開(kāi)

它們,越遠(yuǎn)越好。要想可靠地弄壞你的程序,沒(méi)有比折騰這些代碼更好的辦法了。另一

方面,技術(shù)嫻熟的用戶可以通過(guò)這些代碼做很多很酷的事,因?yàn)樗屇隳茏叩絍B.NET表

單的幕后。要是你不想看到這些代碼你也能不看,因?yàn)樾麓a編輯器有展開(kāi)和折疊代碼

區(qū)的功能,并且這些肥料代碼是默認(rèn)折疊的。代碼編輯器還有幾個(gè)很酷的新功能。例如

,現(xiàn)在它自動(dòng)為你縮排所有代碼(而且還干得不錯(cuò)),它還有內(nèi)置的顯示行號(hào)功能。

創(chuàng)建編譯的服務(wù)器端代碼

除了新的Windows Form引擎,.NET還包括一個(gè)為創(chuàng)建Web表單而特別設(shè)計(jì)的表單引擎

。這些被稱為Web Form的表單很聰明,就像VB讓你能很容易地為傳統(tǒng)Windows桌面應(yīng)用程

序創(chuàng)建表單一樣,它們讓你能方便地為Web創(chuàng)建表單。Web Form是 ASP.NET里的技術(shù),讓

你能使用熟悉的RAD工具創(chuàng)建帶有代碼的表單。創(chuàng)建的ASP.NET代碼編譯并駐留在服務(wù)器

上,并在那里被執(zhí)行,然后以HTML方式發(fā)送給任何一個(gè)支持HTML 3.2的瀏覽器。

底層結(jié)構(gòu)捕獲客戶端上的事件數(shù)據(jù),并把它發(fā)送給服務(wù)器。這意味著可以使用各種

用戶界面工具,可以利用現(xiàn)有的表單設(shè)計(jì)技巧,而且應(yīng)用程序界面是不依賴瀏覽器的。

如果可以放棄不依賴瀏覽器,你還有另一個(gè)選擇來(lái)利用Internet Explorer 某些功能特

有的優(yōu)勢(shì)。Web Form使支持Web的應(yīng)用程序能更容易地創(chuàng)建更好、更豐富多彩的用戶界面

。

Web服務(wù)策略

VB.NET里的另外一個(gè)重要的面向Web的功能是:Web服務(wù)。Microsoft的市場(chǎng)部門把W

eb服務(wù)列為采用.NET的幾大理由之一。實(shí)際上,Web服務(wù)的本質(zhì)就是使用標(biāo)準(zhǔn)協(xié)議的、由

Web服務(wù)器提供的、類似于COM的對(duì)象。注意在技術(shù)上它們并不是COM對(duì)象,但和COM對(duì)象

的表現(xiàn)方式很相像。Microsoft希望看到所有的公司使用Web服務(wù),并且未來(lái)的應(yīng)用程序

可以簡(jiǎn)單地“粘”在不同的Web服務(wù)上,就像現(xiàn)在可以使用Visual Basic for Applicat

ions (VBA)建立基于Office和支持VBA的程序的解決方案一樣。

在PDC上,對(duì)于它希望開(kāi)發(fā)者如何“粘”在這些服務(wù)上,Microsoft提供的一個(gè)演示

程序給出了很好的例子。在這個(gè)演示程序里,一個(gè)假想的診所通過(guò)Web服務(wù)提供預(yù)約系統(tǒng)

,演示了你可以怎樣使用智能電話通過(guò)Web進(jìn)行預(yù)約。Visual Basic.NET 甚至?xí)试S你

查詢服務(wù)器,并獲得關(guān)于服務(wù)器能支持的所有Web服務(wù)的相關(guān)數(shù)據(jù)。通過(guò)IntelliSense

dropdown這個(gè)絕對(duì)有用的工具,程序員可以訪問(wèn)Web服務(wù)。Web服務(wù)是Microsoft雄心勃勃

的戰(zhàn)略,但只有時(shí)間才能檢驗(yàn)它是否能成功地被廣泛接納。

Microsoft試圖消除與包裝和分發(fā)應(yīng)用程序相關(guān)的問(wèn)題,包括令人恐懼的DLL。所有

.NET應(yīng)用程序被封裝為元件。元件包含著數(shù)據(jù)以描述它運(yùn)行所需的東西。這些數(shù)據(jù)被稱

為貨單,包括很多信息,例如:元件身份(名稱、版本等等);一個(gè)列出了所有文件之間

的依賴關(guān)系的表,以及它們的位置和版本;包括DLL相關(guān)數(shù)據(jù)的外部依賴關(guān)系信息;還有

其它元件需要而開(kāi)發(fā)者沒(méi)有創(chuàng)建的資源。元件是自說(shuō)明的(通過(guò)它們的貨單),所以.NET

應(yīng)用程序不需要修改注冊(cè)表才能工作。換句話說(shuō),你不再需要注冊(cè)表組件。在最好的情

況下,即客戶機(jī)里已經(jīng)有了.NET運(yùn)行庫(kù)時(shí),分發(fā)一個(gè)復(fù)雜的應(yīng)用程序可能只是把一個(gè)文

件夾復(fù)制到目標(biāo)機(jī)器上這么簡(jiǎn)單的事。元件的另一個(gè)好處是:你可以讓不同的應(yīng)用程序

使用同一個(gè)DLL的不同版本,并且協(xié)調(diào)地運(yùn)行在一臺(tái)機(jī)器上。如果所有這些都可以像計(jì)劃

中那樣工作,有關(guān)DLL的地獄和版本的噩夢(mèng)就將成為往事。

正確之路

Microsoft徹底更新了它的技術(shù),而不僅僅是核心語(yǔ)言。例如,在Visual Studio.N

ET里同時(shí)提供了ADO.NET,這是有特殊優(yōu)點(diǎn)的下一代ActiveX Data Objects (ADO) 版本

。它的一個(gè)靈活改變是:ADO.NET用Extensible Markup Language (XML)作為在組件之間

傳遞數(shù)據(jù)集的格式。這意味著接收組件不一定必須是ADO.NET組件,同時(shí)接收組件可以接

受任何XML 格式的數(shù)據(jù)集。談到XML,它支撐著VS.NET中的任何東西,從配置文件到遠(yuǎn)端

過(guò)程調(diào)用。ADO.NET在處理斷開(kāi)的數(shù)據(jù)集時(shí)比 ADO的性能要好,并且具有更好的伸縮性。

Visual Basic.NET對(duì)我們都很熟悉的VB做了重要的改變。C++革命性地跳躍到.NET后

有了一個(gè)新名字:C#,而Visual Basic的名字沒(méi)變。然而,如果你把VB.NET當(dāng)作語(yǔ)法相

似的一門新語(yǔ)言而不是簡(jiǎn)單的“升級(jí)”,可能掌握起來(lái)就要容易一些。本文給你一個(gè)起

點(diǎn),但吸收掌握各種知識(shí),并對(duì)未來(lái)做出有根據(jù)的決定是一個(gè)艱苦的過(guò)程,它只是這個(gè)

過(guò)程的一條起跑線。我不知道.NET會(huì)有多么成功,它的很多地方吸引我,但有些地方并

非如此。這個(gè)工具做了大量承諾,它夸耀很多功能能使 VB開(kāi)發(fā)者更簡(jiǎn)單地創(chuàng)建更有伸縮

性的高端應(yīng)用程序。最后,它的成功將取決于開(kāi)發(fā)者能多好地將它應(yīng)用于現(xiàn)實(shí)世界??v

觀Microsoft在PDC和Beta 1版本之間的性能和穩(wěn)定性上所跨過(guò)的這一步,我堅(jiān)定地認(rèn)為

:Microsoft走對(duì)了路!

vb與vb點(diǎn)虐 有什么區(qū)別?學(xué)過(guò)vb后,vb點(diǎn)虐 是不是就很好學(xué)了?

(1)vb是基于對(duì)象,vb點(diǎn)虐 完全面向?qū)ο螅^承(Inheritance), 重載(overloading), 共享的成員, 結(jié)構(gòu)化異常處理;強(qiáng)壯的語(yǔ)言,嚴(yán)格的類型檢查, 變量聲明時(shí)初始化,支持垃圾收集(Garbage collection);強(qiáng)大的支持委托(Delegates), free threading,Variant 數(shù)據(jù)類型被 Object 代替

,特別是到了05版本之后,vb點(diǎn)虐 已經(jīng)趨于成熟,而vb6.0還是vb6.0,不思上進(jìn)。

(2)vb點(diǎn)虐 的設(shè)計(jì)美感方面遠(yuǎn)勝于vb6.0。

(3)vb點(diǎn)虐 在windows application 和 asp點(diǎn)虐 方面功能遠(yuǎn)比vb6.0強(qiáng)大。

(4)vb點(diǎn)虐 有很好的線程支持

(5)vb點(diǎn)虐 是跨平臺(tái)的,有著強(qiáng)大的類庫(kù)和點(diǎn)虐 framework框架,可以和C#等多種點(diǎn)虐 框架下的語(yǔ)言共同運(yùn)行。

(6)vb點(diǎn)虐 在與web service結(jié)合方面是壓倒性強(qiáng)過(guò)vb6.0的。

(7)vb點(diǎn)虐 05在數(shù)據(jù)庫(kù)操作上非常的靈活和方便,vb6.0看到也只能站一邊。

暫時(shí)說(shuō)那么多了,不過(guò)vb點(diǎn)虐 和vb6.0本是一家,各自的長(zhǎng)處還是有的,只要能用得好,小刀也能砍大樹。

----------

我覺(jué)得學(xué)了一些VB知識(shí)對(duì)你學(xué)VB點(diǎn)虐 會(huì)有幫助的,因?yàn)槲易约壕褪窍葘W(xué)VB的,現(xiàn)在一直在用VB.NET,覺(jué)得挺容易上手,關(guān)鍵是多實(shí)踐。

vb和vb點(diǎn)虐 的區(qū)別和特點(diǎn)

1、vb點(diǎn)虐 ?完全符合面向?qū)ο蟮木幊陶Z(yǔ)言抽象、封裝、繼承的四大特性,而vb不支持繼承。

2、錯(cuò)誤處理不同。

vb中只是On Error.....goto和On Errer Resume Next ,這些錯(cuò)誤稱為非結(jié)構(gòu)化異常處理。而在vb點(diǎn)虐 中采用的結(jié)構(gòu)化異常處理機(jī)制,try...catch....finally控制。

3、兩者產(chǎn)生的窗體不同。

vb點(diǎn)虐 允許創(chuàng)建不同類型的應(yīng)用程序,例如,創(chuàng)建ASP.NET和ASP.NET Web 服務(wù)應(yīng)用程序,還允許創(chuàng)建控制臺(tái)應(yīng)用程序和作為桌面服務(wù)運(yùn)行的應(yīng)用程序。但是vb 只能創(chuàng)建Windows窗體。

4、數(shù)據(jù)庫(kù)訪問(wèn)的差別。

vb6.0是通過(guò)ADO(Active X Data Objext)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)訪問(wèn)。而vb點(diǎn)虐 是通過(guò)ADO.NET來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。

擴(kuò)展資料

Visual Basic(簡(jiǎn)稱VB)是Microsoft公司開(kāi)發(fā)的一種通用的基于對(duì)象的程序設(shè)計(jì)語(yǔ)言,為結(jié)構(gòu)化的、模塊化的、面向?qū)ο蟮?、包含協(xié)助開(kāi)發(fā)環(huán)境的事件驅(qū)動(dòng)為機(jī)制的可視化程序設(shè)計(jì)語(yǔ)言。是一種可用于微軟自家產(chǎn)品開(kāi)發(fā)的語(yǔ)言。

“Visual” 指的是開(kāi)發(fā)圖形用戶界面 (GUI) 的方法——不需編寫大量代碼去描述界面元素的外觀和位置,而只要把預(yù)先建立的對(duì)象add到屏幕上的一點(diǎn)即可。

“Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 語(yǔ)言,是一種在計(jì)算技術(shù)發(fā)展歷史上應(yīng)用得最為廣泛的語(yǔ)言。

Visual Basic源自于BASIC編程語(yǔ)言。VB擁有圖形用戶界面(GUI)和快速應(yīng)用程序開(kāi)發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫(kù),或者輕松的創(chuàng)建Active?X控件,用于高效生成類型安全和面向?qū)ο蟮膽?yīng)用程序 。

參考資料:百度百科-Visual Basic

分享標(biāo)題:會(huì)vbvb點(diǎn)虐 的簡(jiǎn)單介紹
本文來(lái)源:http://bm7419.com/article8/ddeheip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、商城網(wǎng)站網(wǎng)站維護(hù)、電子商務(wù)、搜索引擎優(yōu)化云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)