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