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