Visual Basic(簡稱VB)是Microsoft開(kai)發的(de)一種面向(xiang)對象的(de)編程語言。使(shi)用Visual Basic即可(ke)快速、輕松(song)地(di)創建類(lei)型安(an)全的(de).NET應用。
“Visual”指的(de)是開發圖形用(yong)戶界面(mian)(mian)(GUI)的(de)方法(fa)——不需編寫大量代碼(ma)去(qu)描述界面(mian)(mian)元素的(de)外觀和位置,而只要把預先建(jian)立(li)的(de)對(dui)象add到屏幕(mu)上的(de)一點即(ji)可。“Basic”指的(de)是BASIC(Beginners All-Purpose Symbolic Instruction Code)語(yu)言(yan),是一種在計(ji)算(suan)技術發展歷(li)史(shi)上應用(yong)得(de)最(zui)為廣泛的(de)語(yu)言(yan)。
Visual Basic源自于(yu)BASIC編(bian)程語言。VB擁有圖形用戶界面(GUI)和快速應用程序(xu)(xu)開發(RAD)系統(tong),可以輕易的(de)(de)使用DAO、RDO、ADO連(lian)接數據庫(ku),或者(zhe)輕松的(de)(de)創建Active X控件,用于(yu)高效(xiao)生成類(lei)型安(an)全(quan)和面向對象(xiang)的(de)(de)應用程序(xu)(xu)。程序(xu)(xu)員可以輕松的(de)(de)使用VB提(ti)供的(de)(de)組件快速建立一(yi)個應用程序(xu)(xu)。
VB 6.0 啟動畫面
1991年4月,微軟(ruan)公司(si)推出了Visual Basic 1.0Windows版本,這個連接編(bian)程(cheng)語(yu)言和(he)用(yong)戶界面的(de)進步(bu)被稱為Tripod(有些(xie)時(shi)(shi)候叫做Ruby),最初的(de)設計(ji)是(shi)由阿(a)蘭·庫珀(Alan Cooper)完成的(de)。在當時(shi)(shi),它是(shi)第一(yi)個“可視”的(de)編(bian)程(cheng)軟(ruan)件。
而后多年,Visual Basic經(jing)過多次發(fa)展(zhan),其發(fa)展(zhan)歷程展(zhan)示在(zai)“Visual Basic發(fa)展(zhan)簡(jian)史”表中。
在2020年3月(yue)11日(ri),微軟宣布不會再開發VB或增加(jia)功(gong)能。
Visual Basic 發展簡史
發(fa)布日期 名稱 說明
.NET Framework 引入(ru)之前(qian)
Apr-91 Visual Basic 1.0 Windows 版(ban)本
Sep-92 Visual Basic 1.0 DOS 版(ban)本
Nov-92 Visual Basic 2.0 對于上一個版本(ben)的界面和速度(du)都(dou)有所改善。
Jun-93 Visual Basic 3.0 包含一個數(shu)據(ju)引(yin)擎,可(ke)以直接讀取(qu)Access數(shu)據(ju)庫。
Aug-95 Visual Basic 4.0 發布了32位和16位的版本(ben)。其中包含了對類的支持。
Feb-97 Visual Basic 5.0 包含了(le)對用戶(hu)自建控件的支(zhi)持,且從這個版(ban)本開始VB可以支(zhi)持中文。
Oct-98 Visual Basic 6.0
.NET Framework 引入之后
Feb-02 Visual Basic .NET 2002 (7.0) 由于(yu)其使(shi)用了新的核心和(he)特性,所(suo)以(yi)很多VB的程(cheng)序員都要改寫程(cheng)序。
Apr-03 Visual Basic .NET 2003 (7.1) 主要改(gai)進了運行狀(zhuang)況,提升了IDE以及運行時穩定性。
Nov-05 Visual Basic 2005 (8.0) 是(shi) vb .net 的(de)重大轉變,微(wei)軟(ruan)決意在其名稱中去掉了(le)".NET"部份。VB2005提供(gong)My偽命名空(kong)間(jian)、泛型、操作符(fu)重載等新(xin)語(yu)言特性。
Nov-07 Visual Basic 2008 (9.0)提供支持(chi)IIF函數、匿(ni)名(ming)類、LINQ、Lambda表(biao)達(da)式、XML數據(ju)結構(gou)等新(xin)語言特(te)性。
Mar-08 微軟宣(xuan)布結束對于 VB 6.0的延(yan)長支持。
Apr-10 Visual Studio 2010 (10.0)提供(gong)支持Dynamic Language Runtime (DLR)、自動(dong)實現屬性、集合初始化、不需要在(zai)代(dai)碼斷(duan)行書寫時輸入下劃線(xian)“_”等(deng)新語言特性。
May-12 Visual Studio 2012 (11.0) RC 提供(gong)支持更簡易的異步編程(Asynchronous Programming)、Iterator、擴(kuo)充Global 關鍵詞(ci)等新語言特性。
2014-11-13-2 Visual Studio 2013
2014/11/13 Visual Studio 2015 Windows、iOS以及Android應用開發
在VB中,注釋有2種方式。
1.以(yi)Rem關(guan)鍵字開頭,并且Rem關(guan)鍵字與注釋內容之間要加一個空格。注釋可(ke)(ke)以(yi)是單獨的(de)一行(xing),也可(ke)(ke)以(yi)寫在(zai)其(qi)(qi)他語句(ju)行(xing)的(de)后(hou)面(mian)。如(ru)果在(zai)其(qi)(qi)他語句(ju)行(xing)后(hou)使用Rem關(guan)鍵字,則必須使用冒號(:)與語句(ju)隔開。
2.使用一個撇號(hao)(')來代替Rem關鍵字。若使用撇號(hao),則在其他語句行使用時(shi)不必加冒號(hao)。
在Visual Basic中,可通過(guo)屬性、方(fang)法和事件來說(shuo)明和衡量一個對象的特征。
事件(Event)
事(shi)件是指(zhi)(zhi)發(fa)(fa)生在某一對(dui)(dui)(dui)象上的事(shi)情。事(shi)件又可(ke)分為(wei)鼠標(biao)事(shi)件和鍵(jian)盤(pan)事(shi)件。例如(ru),在命令按(an)鈕(Command Button)這(zhe)一對(dui)(dui)(dui)象上可(ke)能發(fa)(fa)生鼠標(biao)單(dan)擊(Click)、鼠標(biao)移動(Mouse Move)、鼠標(biao)按(an)下(Mouse Down)等鼠標(biao)事(shi)件,也可(ke)能發(fa)(fa)生鍵(jian)盤(pan)按(an)下(Key Down)等鍵(jian)盤(pan)事(shi)件。總之,事(shi)件指(zhi)(zhi)明了(le)對(dui)(dui)(dui)象“什么情況(kuang)下做?”,常用(yong)于(yu)定義(yi)對(dui)(dui)(dui)象發(fa)(fa)生某種反(fan)映(ying)的時機和條件。
方法(Method)
方法是用(yong)(yong)來控制對(dui)象(xiang)的(de)(de)功能(neng)(neng)及操作(zuo)(zuo)的(de)(de)內部程序。例(li)如(ru),人具有說話、行(xing)走、學習、睡(shui)覺(jue)等功能(neng)(neng),在visual Basic中,對(dui)象(xiang)所能(neng)(neng)提供的(de)(de)這些功能(neng)(neng)和操作(zuo)(zuo),就稱(cheng)作(zuo)(zuo)“方法”。以窗體為例(li),它具有顯示(show)或隱(yin)藏(hide)的(de)(de)方法。總之,方法指明了對(dui)象(xiang)“能(neng)(neng)做什么?”,常用(yong)(yong)于定義(yi)對(dui)象(xiang)的(de)(de)功能(neng)(neng)和操作(zuo)(zuo)。
屬性(Property)
屬(shu)性(xing)(xing)是(shi)指(zhi)用于描述對象(xiang)的名稱、位置、顏色、字體(ti)等特征的一些指(zhi)標(biao)。可(ke)以通過屬(shu)性(xing)(xing)改(gai)變對象(xiang)的特性(xing)(xing)。
有些(xie)屬性可(ke)以在設計時通過屬性窗口來設置,不用編(bian)寫(xie)任何代(dai)碼;而有些(xie)屬性則必須通過編(bian)寫(xie)代(dai)碼,在運行(xing)程(cheng)序的同時進行(xing)設置。可(ke)以在運行(xing)時讀取和設置取值的屬性成(cheng)為讀寫(xie)屬性,只(zhi)能讀取的屬性成(cheng)為只(zhi)讀屬性。總(zong)之屬性指明了對象(xiang)“是什么(me)樣的?”,常用于定義對象(xiang)的外觀(guan)。
對象(Object)
Visual Basic.NET具有“面向(xiang)(xiang)對(dui)象(xiang)(xiang)”的(de)特(te)性,Visual Basic.NET應用種(zhong)程(cheng)(cheng)序(xu)的(de)基本單(dan)元是對(dui)象(xiang)(xiang),用Visual Basic.NET編(bian)程(cheng)(cheng)就(jiu)是用“對(dui)象(xiang)(xiang)”組(zu)裝(zhuang)程(cheng)(cheng)序(xu)。這(zhe)種(zhong)“面向(xiang)(xiang)對(dui)象(xiang)(xiang)”的(de)編(bian)程(cheng)(cheng)方(fang)(fang)(fang)法與傳(chuan)統的(de)全部用代碼編(bian)制(zhi)程(cheng)(cheng)序(xu)的(de)方(fang)(fang)(fang)法有很大區(qu)別,就(jiu)像(xiang)用集成電(dian)路芯(xin)片組(zu)裝(zhuang)電(dian)視機(ji)(ji)和用三極(ji)管(guan)(guan),二極(ji)管(guan)(guan)組(zu)裝(zhuang)電(dian)視機(ji)(ji)的(de)區(qu)別一樣。顯然,“面向(xiang)(xiang)對(dui)象(xiang)(xiang)”的(de)編(bian)程(cheng)(cheng)方(fang)(fang)(fang)法比(bi)傳(chuan)統的(de)編(bian)程(cheng)(cheng)方(fang)(fang)(fang)法更簡(jian)單(dan),更方(fang)(fang)(fang)便,并且(qie)編(bian)寫出的(de)程(cheng)(cheng)序(xu)也更加穩定。因此,“對(dui)象(xiang)(xiang)”可以(yi)被看做Visual Basic.NET程(cheng)(cheng)序(xu)設計的(de)核(he)心(xin)。
在Visual Basic.NET程(cheng)(cheng)(cheng)序(xu)設(she)計中(zhong),對象中(zhong)還可(ke)(ke)以(yi)包含頭,手,腿,腳等部位(wei),其(qi)中(zhong)的每(mei)個部位(wei)又(you)可(ke)(ke)以(yi)單獨作為作為被研究的對象。在Visual Basic.NET程(cheng)(cheng)(cheng)序(xu)設(she)計中(zhong),整個應用程(cheng)(cheng)(cheng)序(xu)就是一個對象,應用程(cheng)(cheng)(cheng)序(xu)中(zhong)又(you)包含著(zhu)窗體(Form),命(ming)令按鈕(Command),菜(cai)單(Menu)等對象。
類(Class)
在Visual Basic.NET中,對(dui)(dui)象(xiang)是(shi)(shi)由(you)類創建的(de),因此對(dui)(dui)象(xiang)可以說是(shi)(shi)類的(de)具體(ti)實(shi)例,這就(jiu)好比(bi)是(shi)(shi)蛋糕(gao)和做蛋糕(gao)的(de)模(mo)具之(zhi)間的(de)關系。
各(ge)種不(bu)(bu)同(tong)(tong)(tong)(tong)的(de)(de)(de)(de)對(dui)象分(fen)屬于各(ge)種不(bu)(bu)同(tong)(tong)(tong)(tong)的(de)(de)(de)(de)種類(lei)(lei)。同(tong)(tong)(tong)(tong)一(yi)類(lei)(lei)對(dui)象可(ke)能具(ju)有(you)(you)一(yi)些不(bu)(bu)同(tong)(tong)(tong)(tong)的(de)(de)(de)(de)特(te)(te)征(zheng)(或是(shi)(shi)說同(tong)(tong)(tong)(tong)一(yi)類(lei)(lei)對(dui)象不(bu)(bu)一(yi)定(ding)具(ju)有(you)(you)完全相(xiang)同(tong)(tong)(tong)(tong)的(de)(de)(de)(de)特(te)(te)性);具(ju)有(you)(you)某些相(xiang)同(tong)(tong)(tong)(tong)的(de)(de)(de)(de)特(te)(te)性的(de)(de)(de)(de)對(dui)象,不(bu)(bu)一(yi)定(ding)是(shi)(shi)同(tong)(tong)(tong)(tong)一(yi)類(lei)(lei)對(dui)象,這(zhe)就(jiu)好(hao)比(bi)是(shi)(shi)人和猴子(zi)雖然都有(you)(you)身高(gao)、性別等特(te)(te)征(zheng),但二者(zhe)之(zhi)間還存在著智商、語言等特(te)(te)性差(cha)異,這(zhe)兩(liang)個對(dui)象之(zhi)間的(de)(de)(de)(de)特(te)(te)性相(xiang)差(cha)很多,根本就(jiu)不(bu)(bu)能算是(shi)(shi)同(tong)(tong)(tong)(tong)一(yi)類(lei)(lei)對(dui)象。而男人和女人,雖然有(you)(you)著性別、生理(li)等方面的(de)(de)(de)(de)差(cha)異,但他們絕大(da)(da)部(bu)分(fen)特(te)(te)性相(xiang)同(tong)(tong)(tong)(tong),可(ke)以(yi)(yi)算是(shi)(shi)同(tong)(tong)(tong)(tong)一(yi)種類(lei)(lei)。由此,可(ke)以(yi)(yi)歸結為一(yi)句話:同(tong)(tong)(tong)(tong)一(yi)類(lei)(lei)對(dui)象的(de)(de)(de)(de)絕大(da)(da)部(bu)分(fen)特(te)(te)性相(xiang)同(tong)(tong)(tong)(tong)。
根據應用(yong)類型,Visual Basic控(kong)件可以(yi)分為如下(xia)3類:
內置控件(jian)即Visual Basic工具箱中的控件(jian),里面(mian)包含(han)了常見窗體程(cheng)序所需(xu)要的控件(jian)
Visual Basic中,大部分的程序執行都是(shi)在事件中完成的。
在代碼(ma)中,控件(jian)的(de)每一(yi)個事(shi)件(jian)都需(xu)要聲(sheng)明,聲(sheng)明方(fang)法類似一(yi)個子過程的(de)聲(sheng)明。大部分的(de)控件(jian)在雙擊控件(jian)進(jin)入代碼(ma)界(jie)面(mian)的(de)時候都會(hui)自動補完該控件(jian)的(de)最常(chang)用事(shi)件(jian)的(de)聲(sheng)明。具體(ti)代碼(ma)示(shi)范如下:
ActiveX控(kong)(kong)件(jian)包含不同版(ban)(ban)本Visual Basic提(ti)供的(de)(de)控(kong)(kong)件(jian)和僅在(zai)專業版(ban)(ban)、企業版(ban)(ban)中提(ti)供的(de)(de)控(kong)(kong)件(jian),并(bing)且還包含第三方提(ti)供的(de)(de)控(kong)(kong)件(jian)。ActiveX控(kong)(kong)件(jian)是對(dui)Visual Basic內置控(kong)(kong)件(jian)的(de)(de)擴(kuo)充,開發人員可以根(gen)據個人需要(yao)進行隨意擴(kuo)充,擴(kuo)充的(de)(de)ActiveX控(kong)(kong)件(jian)將在(zai)工(gong)具箱(xiang)中顯(xian)示(shi)。
在(zai)Visual Basic的工(gong)具欄(lan)中,可(ke)(ke)以放置其他(ta)的第三方對象,可(ke)(ke)以像(xiang)使用(yong)控件一(yi)樣輕松使用(yong)。添(tian)加(jia)(jia)后的對象也在(zai)工(gong)具箱中顯(xian)示。有關第三方對象,可(ke)(ke)以從(cong)受信(xin)任(ren)的來(lai)源下載控件,并(bing)通(tong)過(guo)添(tian)加(jia)(jia)引用(yong)來(lai)導(dao)入(ru)。支持這些自定義的Vb的控件有:ComponentOne Studio,Spread,ActiveReports、MultiRow等(deng)。
VB的(de)(de)(de)(de)中心思想就是(shi)要便于程(cheng)序(xu)(xu)員使(shi)(shi)用,無論是(shi)新(xin)手或者專(zhuan)家。VB使(shi)(shi)用了(le)可(ke)以簡(jian)單(dan)建立應用程(cheng)序(xu)(xu)的(de)(de)(de)(de)GUI系統,但是(shi)又可(ke)以開發相當復雜的(de)(de)(de)(de)程(cheng)序(xu)(xu)。VB的(de)(de)(de)(de)程(cheng)序(xu)(xu)是(shi)一(yi)種基于窗體的(de)(de)(de)(de)可(ke)視(shi)化(hua)組件安排的(de)(de)(de)(de)聯合,并且增加代碼來指(zhi)定組件的(de)(de)(de)(de)屬性和方法(fa)。因為默認的(de)(de)(de)(de)屬性和方法(fa)已(yi)經有一(yi)部分(fen)定義在(zai)了(le)組件內,所以程(cheng)序(xu)(xu)員不用寫多少代碼就可(ke)以完成一(yi)個簡(jian)單(dan)的(de)(de)(de)(de)程(cheng)序(xu)(xu)。過去(qu)的(de)(de)(de)(de)版本(ben)里面 VB 程(cheng)序(xu)(xu)的(de)(de)(de)(de)性能問題一(yi)直被(bei)放在(zai)了(le)桌面上,但是(shi)隨著計算機速度的(de)(de)(de)(de)飛(fei)速增加,關于性能的(de)(de)(de)(de)爭論已(yi)經越(yue)來越(yue)少。
窗體控(kong)件(jian)的(de)增加(jia)和改(gai)變(bian)可(ke)(ke)以(yi)用(yong)拖放技術實現。一(yi)個排列(lie)滿控(kong)件(jian)的(de)工具(ju)箱(xiang)用(yong)來顯(xian)示可(ke)(ke)用(yong)控(kong)件(jian)(比如文本框(kuang)或(huo)者按鈕(niu))。每個控(kong)件(jian)都有自己的(de)屬性和事件(jian)。默認的(de)屬性值(zhi)會(hui)在控(kong)件(jian)創建的(de)時候(hou)(hou)提供,但是程(cheng)序員(yuan)也可(ke)(ke)以(yi)進行(xing)更改(gai)。很多的(de)屬性值(zhi)可(ke)(ke)以(yi)在運(yun)行(xing)時候(hou)(hou)隨著用(yong)戶的(de)動作和修改(gai)進行(xing)改(gai)動,這樣(yang)就形(xing)成了一(yi)個動態(tai)的(de)程(cheng)序。舉(ju)個例子來說:窗體的(de)大小(xiao)改(gai)變(bian)事件(jian)中(zhong)加(jia)入了可(ke)(ke)以(yi)改(gai)變(bian)控(kong)件(jian)位置(zhi)(zhi)的(de)代碼(ma),在運(yun)行(xing)時候(hou)(hou)每當(dang)用(yong)戶更改(gai)窗口大小(xiao),控(kong)件(jian)也會(hui)隨之(zhi)改(gai)變(bian)位置(zhi)(zhi)。在文本框(kuang)中(zhong)的(de)文字(zi)改(gai)變(bian)事件(jian)中(zhong)加(jia)入相應的(de)代碼(ma),程(cheng)序就能夠在文字(zi)輸入的(de)時候(hou)(hou)自動翻譯或(huo)者阻止某些(xie)字(zi)符的(de)輸入。
VB 的(de)(de)程序可以包含一個或多個窗體,或者是一個主窗體和多個子(zi)(zi)窗體,類似于操(cao)作(zuo)系統的(de)(de)樣(yang)子(zi)(zi)。有很少功(gong)能的(de)(de)對話框窗口(kou)(比如沒有最大化(hua)和最小化(hua)按(an)鈕的(de)(de)窗體)可以用來提供彈出功(gong)能。
VB 的(de)組件既可以擁(yong)有用(yong)戶界(jie)面,也可以沒(mei)有。這樣(yang)一(yi)來服務(wu)器端程(cheng)序(xu)就可以處理增(zeng)加的(de)模塊。
VB 使(shi)用參數(shu)計算的(de)方法(fa)來(lai)(lai)進行(xing)垃圾收集,這個(ge)方法(fa)中包含(han)有大(da)量(liang)的(de)對(dui)象(xiang),提供基(ji)本(ben)的(de)面(mian)向對(dui)象(xiang)支持。因為越來(lai)(lai)越多組件的(de)出現,程序員可以選用自己需要的(de)擴展庫。和有些語言不一(yi)樣,VB 對(dui)大(da)小(xiao)(xiao)寫(xie)(xie)不敏感,但是能自動轉換(huan)關鍵詞(ci)到標準(zhun)的(de)大(da)小(xiao)(xiao)寫(xie)(xie)狀態,以及強制使(shi)得符號(hao)表入口的(de)實體的(de)變量(liang)名稱(cheng)遵(zun)循書寫(xie)(xie)規則。默(mo)認情況(kuang)下字符串的(de)比較是對(dui)大(da)小(xiao)(xiao)寫(xie)(xie)敏感的(de),但是可以關閉這個(ge)功(gong)能。
VB 使得大(da)量(liang)(liang)的(de)(de)外(wai)界控(kong)件(jian)有(you)了自(zi)己的(de)(de)生存空間(jian)。大(da)量(liang)(liang)的(de)(de)第(di)三方(fang)控(kong)件(jian)針對VB提供。VB也提供了建(jian)立、使用和(he)重用這(zhe)些控(kong)件(jian)的(de)(de)方(fang)法,但是由于語(yu)言(yan)問(wen)題,從(cong)一個(ge)應用程序創建(jian)另外(wai)一個(ge)并(bing)不簡(jian)單(dan)。
Visual Basic語(yu)言具有不支持(chi)繼承、無原生支持(chi)多線程、異(yi)常(chang)處(chu)理不完善等(deng)三項(xiang)明顯缺點,使其有所(suo)局限性(此些缺點皆已在vb.net獲得改(gai)進)。
不支持繼承
VB 5.0和(he)VB 6.0都是(shi)基(ji)于(yu)對(dui)象(xiang)的(de)編程語言,但是(shi)不包含繼承(cheng)特(te)性。VB中提供了特(te)殊的(de)類的(de)功能(neng),但是(shi)還是(shi)不能(neng)滿足程序員的(de)需求(qiu)。
無原生支持多線程
Visual Basic對于多線程無原生支持,只能通過Windows API的(de)調用(yong)實現,且極其的(de)不穩定(ding)。因(yin)為在(zai)API創建的(de)線程中,并沒有自動初始化運(yun)行時庫,導(dao)致部(bu)分(fen)的(de)函數無法使(shi)用(yong)。一(yi)般的(de),在(zai)VB6等早期的(de)VB開發環境下(xia),使(shi)用(yong)API創建線程的(de)目(mu)的(de)是完(wan)成容(rong)易使(shi)程序假死的(de)大量數據或(huo)者(zhe)邏輯(ji)的(de)計算。
異常處理不完善
Visual Basic中內置(zhi)異常(chang)處理,即使未寫異常(chang)處理代碼(ma),一旦(dan)用戶出錯也會彈出一個明確寫出出錯原因(yin)對(dui)話(hua)框,接(jie)著程序終止。
Visual Basic中可以(yi)使(shi)用Err.Raise拋出異(yi)常(chang)。對(dui)系統及用戶拋出的(de)(de)異(yi)常(chang)的(de)(de)處理(li)(li)常(chang)用兩種模式:一是使(shi)用On Error Resume Next處理(li)(li)錯(cuo)誤;另(ling)一種是使(shi)用On Error Goto將運行引入錯(cuo)誤處理(li)(li)代碼。但相對(dui)C++等語言而(er)言,這樣的(de)(de)異(yi)常(chang)處理(li)(li)破壞了代碼的(de)(de)結構(gou)。
微軟開(kai)發了一系列由 Visual Basic 所派(pai)生的語言:
VBA
Visual Basic for Applications(VBA):包含在微軟的(de)應用程(cheng)序(xu)中(如Microsoft Office),以及類似WordPerfect、Office這樣(yang)第三方的(de)產品里面。VBA這樣(yang)嵌入在各種應用程(cheng)序(xu)中看起來有些矛(mao)盾,但是它的(de)功能和VB一樣(yang)強大。
VBS
VBScript(VBS):是(shi)默認的(de)(de)(de)ASP語(yu)言,還可以用(yong)(yong)在Windows腳本(ben)編寫和(he)網(wang)頁編碼中。盡(jin)管(guan)它的(de)(de)(de)語(yu)法類(lei)似(si)于VB,但是(shi)它卻是(shi)一種(zhong)完全不(bu)(bu)同的(de)(de)(de)語(yu)言。VBS不(bu)(bu)使(shi)用(yong)(yong)VB運行庫(ku)運行,而是(shi)由Windows腳本(ben)主機解釋(shi)執行。這兩種(zhong)語(yu)言之中的(de)(de)(de)不(bu)(bu)同點影響ASP網(wang)站的(de)(de)(de)表現。
vb.net
Visual Basic.net(vb.net):當微軟(ruan)準備開(kai)發(fa)一(yi)種新的編(bian)(bian)程(cheng)(cheng)(cheng)工(gong)具(ju)的時候(hou),第(di)一(yi)決定就(jiu)是(shi)利用VB 6.0來(lai)進行舊改,或者就(jiu)是(shi)重(zhong)新組建(jian)工(gong)程(cheng)(cheng)(cheng)開(kai)發(fa)新工(gong)具(ju)。微軟(ruan)后來(lai)開(kai)發(fa)了(le)VB的繼(ji)任(ren)者Visual Basic.net,同(tong)時也是(shi).net平(ping)臺的一(yi)部分。vb.net編(bian)(bian)程(cheng)(cheng)(cheng)語言是(shi)一(yi)種真正(zheng)的面向對象編(bian)(bian)程(cheng)(cheng)(cheng)語言,和VB并不完全兼容。
Visual Basic.net(vb.net) 是(shi)新(xin)一代(dai)的(de)(de)(de)VB語言,并不只是(shi) VB 6.0 的(de)(de)(de)簡(jian)單升級,vb.net 與 VB (泛指 VB 6.0 之前的(de)(de)(de)版本(ben)) 之間有非(fei)常(chang)大(da)的(de)(de)(de)區(qu)別(bie)。其新(xin)特性(xing)主要(yao)表現(xian)在以下(xia)幾方面:
1.vb.net完全集成(cheng)(cheng)到(dao)Visual Studio集成(cheng)(cheng)開(kai)發(fa)環(huan)境(jing)中(zhong),在這種集成(cheng)(cheng)開(kai)發(fa)環(huan)境(jing)與VB在若干方面有差(cha)異。主要體現(xian)在窗體的布局以及菜(cai)單等方面都有所(suo)不(bu)同
2.vb.net項目(mu)與(yu)VB不(bu)同(tong)。它(ta)使用基于文(wen)件(jian)夾的模型,所有項目(mu)均放置在項目(mu)文(wen)件(jian)夾層(ceng)次(ci)結構中(zhong)。
3.vb.net中使(shi)用ado.net來訪(fang)問數(shu)據庫,ado.net是.netFramework的(de)一(yi)部分。在(zai)vb.net中實(shi)現數(shu)據訪(fang)問的(de)方法主要(yao)有兩種:其(qi)一(yi)是在(zai)程(cheng)序設計階段,通過(guo)創(chuang)建(jian)、配(pei)置(zhi)數(shu)據適(shi)配(pei)器DataAdapter和(he)生成數(shu)據集DataSet;其(qi)二是在(zai)運行中,通過(guo)編程(cheng)方式動態創(chuang)建(jian)配(pei)置(zhi)數(shu)據適(shi)配(pei)器和(he)創(chuang)建(jian)、生成數(shu)據集。
4.在(zai)(zai)vb.net中(zhong)是使(shi)用(yong)asp.net技術來編寫Web頁(ye)面(mian)的(de)(de)。在(zai)(zai)asp.net中(zhong)使(shi)用(yong)的(de)(de)也(ye)不是腳本語言,而(er)是真正意義的(de)(de)編程(cheng)語言。憑(ping)借asp.net的(de)(de)Web應用(yong)程(cheng)序(xu)、XML Web Services等基于Web的(de)(de)功能,使(shi)得 vb.net 開(kai)發 Web 頁(ye)面(mian)與開(kai)發Windows 應用(yong)程(cheng)序(xu)很相似(si),Web頁(ye)面(mian)代(dai)碼也(ye)顯(xian)得有(you)條有(you)理了。
5.vb.net已經成為完全的(de)面向對(dui)象的(de)編程語(yu)言,并且新增更多語(yu)言特(te)性。
Visual Basic.net有提供(gong)轉換精靈,協助開(kai)發者將VB 6.0的程序代碼(ma)轉換為vb.net相對應之程序代碼(ma)。
制作(zuo)應(ying)用程(cheng)序(xu)安裝盤等(deng)為(wei)用戶提供(gong)了友(you)好的集成開發環境(jing),具體(ti)表(biao)現在:
可(ke)視化(hua)的設計(ji)平臺:在(zai)使用(yong)(yong)傳(chuan)統的程(cheng)序(xu)(xu)(xu)(xu)設計(ji)語言編(bian)程(cheng)時,一般需要(yao)通過編(bian)寫(xie)程(cheng)序(xu)(xu)(xu)(xu)來(lai)設計(ji)應用(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)的界(jie)面(如界(jie)面的外觀和(he)位置(zhi)等(deng)),在(zai)設計(ji)過程(cheng)中看不見(jian)界(jie)面的實際效果。而(er)在(zai)Visual Basic 6.0中,采用(yong)(yong)面向對象(xiang)程(cheng)序(xu)(xu)(xu)(xu)設計(ji)方法(Object-Oriented Programming),把(ba)程(cheng)序(xu)(xu)(xu)(xu)和(he)數(shu)據封裝(zhuang)起來(lai)作為(wei)一個(ge)對象(xiang),每個(ge)對象(xiang)都是(shi)可(ke)視的。開(kai)發人員在(zai)界(jie)面設計(ji)時,可(ke)以直接用(yong)(yong)Visual Basic 6.0的工具箱(xiang)在(zai)屏(ping)幕上"畫"出窗口、菜單、命令按鍵等(deng)不同類型的對象(xiang),并為(wei)每個(ge)對象(xiang)設置(zhi)屬性。開(kai)發人員要(yao)做的僅僅是(shi)對要(yao)完成事件(jian)過程(cheng)的對象(xiang)進行(xing)編(bian)寫(xie)代碼,因(yin)而(er)程(cheng)序(xu)(xu)(xu)(xu)設計(ji)的效率(lv)可(ke)大大提高。
事件(jian)驅動(dong)的(de)編(bian)程(cheng)(cheng)(cheng)機制:面(mian)向過(guo)程(cheng)(cheng)(cheng)的(de)程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)是由一(yi)個(ge)主程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)和若干(gan)個(ge)子(zi)程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)及函數(shu)組成的(de)。程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)運行時總是先從主程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)開始,由主程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)調用子(zi)程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)和函數(shu),開發(fa)(fa)人(ren)員(yuan)在(zai)編(bian)程(cheng)(cheng)(cheng)時必(bi)須事先確定(ding)整個(ge)程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)執(zhi)行順序(xu)(xu)(xu)(xu)。而Visual Basic 6.0事件(jian)驅動(dong)的(de)編(bian)程(cheng)(cheng)(cheng)是針對(dui)用戶觸發(fa)(fa)某(mou)個(ge)對(dui)象的(de)相(xiang)關(guan)事件(jian)進(jin)行編(bian)碼,每個(ge)事件(jian)都可以驅動(dong)一(yi)段程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)運行。開發(fa)(fa)人(ren)員(yuan)只要編(bian)寫(xie)響應用戶動(dong)作的(de)代碼。這樣的(de)應用程(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)代碼精簡,比較容易編(bian)寫(xie)與維護。
結構(gou)化的程序(xu)設計(ji)(ji)語言:Visual Basic 6.0具有豐富的數據類型和(he)(he)眾(zhong)多的內部函數。其采用模塊化和(he)(he)結構(gou)化程序(xu)設計(ji)(ji)語言,結構(gou)清(qing)晰,語法簡單,容易(yi)學習。
強大(da)的數據(ju)庫(ku)功能:Visual Basic 6.0利(li)用數據(ju)控件可以(yi)訪(fang)問Access、FoxPro等(deng)多(duo)種(zhong)數據(ju)庫(ku)系統,也可以(yi)訪(fang)問Excel、Lotus等(deng)多(duo)種(zhong)電子表格。
ActiveX技(ji)術:ActiveX發展了原有(you)的OLE技(ji)術,使開發人員(yuan)擺脫了特定語(yu)言(yan)的束縛,方便(bian)地使用(yong)其他(ta)應用(yong)程序提供的功能(neng),使Visual Basic 6.0能(neng)夠開發集聲音、圖像、動畫、字處理(li)、電子(zi)表格、Web等對(dui)象于一體的應用(yong)程序。
網絡功(gong)(gong)能:Visual Basic 6.0提供(gong)的(de)(de)DHTML(動態HTML)設計工具可以使(shi)開(kai)發者(zhe)動態地創建和編輯(ji)Web頁面,使(shi)用戶能開(kai)發出多功(gong)(gong)能的(de)(de)網絡應用軟件。