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