當(dāng)前位置:首頁 > 百科知識(shí) > 工控 > 正文

Visual Basic

Visual Basic是一種由 微軟公司開發(fā)的結(jié)構(gòu)化的、模塊化的、面向?qū)ο蟮摹瑓f(xié)助開發(fā)環(huán)境的事件驅(qū)動(dòng)為機(jī)制的可視化程序設(shè)計(jì)語言。這是一種可用于微軟自家產(chǎn)品開發(fā)的語言。它源自于BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫,或者輕松的創(chuàng)建Active X控件。程序員可以輕松的使用VB提供的組件快速建立一個(gè)應(yīng)用程序。

  發(fā)展歷程

  1991年,微軟公司推出了VisualBasic1.0。當(dāng)時(shí)引起了很大的轟動(dòng)。這個(gè)連接編程語言和用戶界面的進(jìn)步被稱為Tripod(有些時(shí)候叫做Ruby),最初的設(shè)計(jì)是由阿蘭·庫珀(AlanCooper)完成的。

  許多專家把VB的出現(xiàn)當(dāng)做是軟件開發(fā)史上的一個(gè)具有劃時(shí)代意義的事件。在當(dāng)時(shí),它是第一個(gè)“可視”的編程軟件。這使得程序員欣喜之極,都嘗試在VB的平臺(tái)上進(jìn)行軟件創(chuàng)作。

  微軟也不失時(shí)機(jī)地在四年內(nèi)接連推出2.0、3.0、4.0三個(gè)版本。并且從VB3.0開始,微軟將Access的數(shù)據(jù)庫驅(qū)動(dòng)集成到了VB中,這使得VB的數(shù)據(jù)庫編程能力大大提高。從VB4.0開始,VB也引入了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。VB功能強(qiáng)大,學(xué)習(xí)簡單。而且,VB還引入了“控件”的概念,使得大量已經(jīng)編好的VB程序可以被我們直接拿來使用。

  2002年開始,微軟將.NETFramework與VisualBasic結(jié)合而成為VisualBasic.NET(vb.net),重新打造VB,新增許多特性及語法,又將VB推向一個(gè)新的高度。最新版本VisualBasic2012也將帶來許多令人期待的新功能。

  通過幾年的發(fā)展,它已成為一種專業(yè)化的開發(fā)語言和環(huán)境。用戶可用VisualBasic快速創(chuàng)建Windows程序,并可編寫企業(yè)水平的客戶端/服務(wù)器程序及強(qiáng)大的數(shù)據(jù)庫應(yīng)用程序。

  VisualBasic1.0

  1991——西雅圖夜空的雷電

  隨著Windows3.0的推出,越來越多的開發(fā)商對(duì)這個(gè)圖形界面的操作系統(tǒng)產(chǎn)生了興趣,大量的Windows應(yīng)用程序開始涌現(xiàn)。但是,Windows程序的開發(fā)相對(duì)于傳統(tǒng)的DOS有很大的不同,開發(fā)者必須將很多精力放在開發(fā)GUI上,這讓很多希望學(xué)習(xí)Windows開發(fā)的人員怯步。1991年,微軟公司展示了一個(gè)叫Thunder的產(chǎn)品,所有的開發(fā)者都驚呆了,它竟然可以用鼠標(biāo)“畫”出所需的用戶界面,然后用簡單的BASIC語言編寫業(yè)務(wù)邏輯,就生成一個(gè)完整的應(yīng)用程序。這種全新的“Visual”的開發(fā)就像雷電(Thunder)一樣,給Windows開發(fā)人員開辟了新的天地。這個(gè)產(chǎn)品最終被定名為VisualBasic,采用事件驅(qū)動(dòng),QuickBASIC的語法和可視化的IDE。VisualBasic1.0帶來的最新的開發(fā)體驗(yàn)就是事件驅(qū)動(dòng),它不同于傳統(tǒng)的過程式開發(fā)。同時(shí),VBX控件讓可視化組件的概念進(jìn)入VisualBasic。VisualBasic1.0是革命性的BASIC,它的誕生也是VB史上的一段佳話。

  VisualBasic2.0

  1992——漸入佳境

  由于Windows3.1的推出,Windows已經(jīng)充分獲得了用戶的認(rèn)可,Windows開發(fā)也進(jìn)入一個(gè)新的時(shí)代。VisualBasic1.0的功能過于簡單,相對(duì)于Windows3.1的強(qiáng)大功能沒有發(fā)揮出來。所以,微軟在1992年推出了新版本VisualBasic2.0。這個(gè)版本最大的改進(jìn)就是加入了對(duì)象型變量,比如下面的兩行代碼:

  DimCommand1AsCommandButton

  DimcAsControl

  不光如此,而且有了最原始的“繼承”概念,對(duì)象型變量分為一般類型(Control和Form)和專有類型(CommandButton和Form1等)。一般類型的變量可以引用專有類型的實(shí)例,甚至通過后期綁定訪問專有類型的屬性和方法;還可以通過TypeOf…Is運(yùn)算符獲取對(duì)象實(shí)例的運(yùn)行時(shí)類型信息(這個(gè)功能就是當(dāng)今C#的is運(yùn)算符或Java的instanceof運(yùn)算符)。除了對(duì)語言的改進(jìn)和擴(kuò)充,VisualBasic2.0對(duì)VBX有了很好的支持,許多第三方控件涌現(xiàn)出來,極大地豐富了VisualBasic的功能。微軟還為VisualBasic2.0增加了OLE和簡單的數(shù)據(jù)訪問功能。

  VisualBasic3.0

  1993——數(shù)據(jù)庫組件新添力量

  VisualBasic2.0推出沒幾個(gè)月,微軟就發(fā)布了新版本的VisualBasic3.0,可以看出VB這時(shí)候旺盛的生命力。乍一看,VisualBasic3.0的界面沒有太大的變化,但其實(shí)這個(gè)版本是非常及時(shí)的。它增加了最新的ODBC2.0的支持,Jet數(shù)據(jù)引擎的支持和新版本OLE的支持。最吸引人的地方是它對(duì)數(shù)據(jù)庫的支持大大增強(qiáng)了,Grid控件和數(shù)據(jù)控件能夠創(chuàng)建出色的數(shù)據(jù)窗口應(yīng)用程序,而Jet引擎讓VisualBasic能對(duì)最新的Access數(shù)據(jù)庫快速地訪問。VisualBasic3.0還增加了許多新的金融函數(shù)。此外還增加了相當(dāng)多的專業(yè)級(jí)控件,可以開發(fā)出相當(dāng)水平的Windows應(yīng)用程序。VisualBasic3.0是98年以前中國最流行的VisualBasic版本,因?yàn)樗_發(fā)出來的可執(zhí)行文件非常小,通常能用一張軟盤裝下。不過,VisualBasic采用虛擬機(jī)運(yùn)行P代碼的做法也讓很多開發(fā)者不滿,他們認(rèn)為這樣程序運(yùn)行的效率很低,這時(shí)候VisualBasic的競爭者Delphi也誕生了。

  VisualBasic4.0

  1995——第二次革命性變化,向COM進(jìn)軍

  從1993年到1995年2年中,VisualBasic一直沒有新的動(dòng)靜,焦急的開發(fā)者都想一窺這個(gè)神秘的新版本到底發(fā)生了什么變化。VisualBasic4.0的BETA最后終于和大家見面了。這個(gè)版本包含了16位和32位兩個(gè)版本,16位的版本就像是VisualBasic3.0的升級(jí)版,而32位版則是一場新的革命。首先,人們發(fā)現(xiàn)VBX控件不見了,全部換成了OCX控件,這個(gè)OCX可能是指OLECustomControls,這個(gè)OLE已經(jīng)不是傳統(tǒng)的OLE了,就是COM控件。第二個(gè)最大變化是VisualBasic4.0所用的語言換成了VisualBasicForApplication,這就和Office95所采用的宏語言統(tǒng)一起來,這個(gè)新語言有很多亮點(diǎn):

  1、加入了“類模塊”。這是面向?qū)ο笞钪匾姆庋b性的基礎(chǔ)。

  2、加入了屬性過程,加上函數(shù)過程,子程序過程,VB已經(jīng)有組件開發(fā)所需的封裝性特征。

  3、加入了Byte、Boolean和Object類型。這大大完善了VB的類型系統(tǒng)。

  4、ForEach語句和Collection對(duì)象。ForEach語句給遍歷集合類型提供了極大的方便,在動(dòng)態(tài)增長的Collection上使用ForEach,而不用擔(dān)心集合內(nèi)容的總數(shù)或煩人的下標(biāo)問題。

  這個(gè)版本的VisualBasic還能夠開發(fā)DLL工程,其實(shí)就是COM的DLL,可以將書寫好的類用這種方式和其他語言共享。

  總之,這個(gè)4.0的版本為VisualBasic成為一種COM語言奠定了基礎(chǔ)。用VisualBasic4.0開發(fā)基于COM的DLL比任何一種開發(fā)工具都方便。但是,VisualBasic4.0的性能問題變得更加嚴(yán)重了,P-代碼的組件成為VisualBasic4.0嚴(yán)重的性能瓶頸,而且巨大的運(yùn)行庫也讓用戶感到不滿。VisualBasic4.0對(duì)以前版本的支持也不好,使用了大量VBX的項(xiàng)目很難移植到VisualBasic4.0中。因此,VisualBasic4.0在中國的普及程度非常低。

  VisualBasic5.0

  1997——VisualBasic的豐收年

  1997年,微軟推出了VisualBasic5.0,這個(gè)版本的重要性幾乎和4.0一樣高。COM(這時(shí)候叫ActiveX)已經(jīng)相當(dāng)成熟,VisualBasic5.0當(dāng)然對(duì)它提供了最強(qiáng)的支持。不過,國內(nèi)還沒有意識(shí)到COM的重要性前主要對(duì)這個(gè)版本另一個(gè)最大的亮點(diǎn)十分關(guān)注:本地代碼編譯器。VisualBasic5.0終于在用戶的呼聲中加入了一個(gè)本地代碼編譯器,它可以讓應(yīng)用程序的效率大大提升。除了這個(gè)大家都知道的改進(jìn)以外,VisualBasic5.0對(duì)VisualBasicForApplication語言有重大的完善和豐富:

  1、事件。VisualBasic5.0終于允許用戶自己創(chuàng)建事件,而且這事件的語法相當(dāng)強(qiáng)健和完善,這在一種不支持函數(shù)回調(diào)的語言中是很難得的。VB擁有屬性、方法和事件的完整封裝性。

  2、接口。這是VB實(shí)現(xiàn)多態(tài)性的基礎(chǔ)。同時(shí)為編寫COM組件提供了更多方便。

  3、枚舉。在VisualBasic5.0中枚舉作為Long整型的子類型出現(xiàn),用枚舉可以對(duì)常量進(jìn)行完善的封裝。

  4、類模塊的改進(jìn)。通過類模塊的屬性可以指定類模塊具有多種指定的行為,如私有構(gòu)造函數(shù)等,可以通過這個(gè)功能創(chuàng)建符合Singleton和Monostate模式的設(shè)計(jì)。

  5、Debug.Assert。雖然這個(gè)斷言系統(tǒng)有點(diǎn)雞肋,但是總算是給調(diào)試帶來了方便。

  6、VisualBasic5.0支持創(chuàng)建自己的集合類??梢詣?chuàng)建用于ForEach語句的集合類型。

  7、新的數(shù)據(jù)類型Decimal,可以精確地處理有效數(shù)位較多的計(jì)算。

  VisualBasic5.0的IDE支持“智能感知”,這是一項(xiàng)非常方便開發(fā)者的功能,可以不必記住很長的成員名稱和關(guān)鍵字,只要按“.”,想要的東西統(tǒng)統(tǒng)彈出來。

  VisualBasic5.0還支持開發(fā)自己的ActiveX控件、進(jìn)程內(nèi)的COMDLL組件、進(jìn)程外的COMEXE組件以及在瀏覽器中運(yùn)行的ActiveX文檔。這極大豐富了VisualBasic的開發(fā)能力,在Internet開發(fā)上,VisualBasic5.0也能有所建樹。

  VisualBasic6.0

  VisualBasic6.0主界面

  VisualBasic6.0主界面

  1998——企業(yè)真正高效的源泉

  VisualBasic6.0作為VisualStudio6.0的一員發(fā)布,證明微軟正在改變VisualBasic的產(chǎn)品定位,他想讓VisualBasic成為企業(yè)級(jí)快速開發(fā)的利器。VisualBasic6.0在數(shù)據(jù)訪問方面有了很大的改進(jìn),新的ADO組件讓對(duì)大量數(shù)據(jù)快速訪問成為可能。數(shù)據(jù)環(huán)境和新的報(bào)表功能也讓數(shù)據(jù)開發(fā)有了全新的體驗(yàn)。VisualBasic借助COM/COM+強(qiáng)大的功能,可以開發(fā)具有N層結(jié)構(gòu)的分布式應(yīng)用程序。同時(shí),VisualBasic還可以在IIS上開發(fā)性能超群的Web應(yīng)用程序。VisualBasic6.0在語言方面和IDE方面的改進(jìn)都不大,但是許多新增的組件成為VisualBasic開發(fā)人員手中的利器,如FileSystemObject等。新的字符串函數(shù)Split和Replace等也給VisualBasic的程序員帶來很大方便。

  總之VisualBasic6.0已經(jīng)是非常成熟穩(wěn)定的開發(fā)系統(tǒng),能讓企業(yè)快速建立多層的系統(tǒng)以及Web應(yīng)用程序,成為當(dāng)前Windows上最流行的VisualBasic版本。(目前全國計(jì)算機(jī)二級(jí)考試所用的VB版本也是VisualBasic6.0)

  VisualBasic6.0安裝教程

  1、準(zhǔn)備工作:下載軟件

  2、安裝VisualBasic6.0的步驟

  ①把下載的壓縮包解壓出來。

 ?、谠诮鈮撼鰜淼奈募A中雙擊文件“SETUP.EXE”執(zhí)行安裝程序。出現(xiàn)VB的安裝向?qū)А?/p>

  ③直接點(diǎn)擊“下一步”,選中“接受協(xié)議”,再點(diǎn)擊“下一步”。

  ④在產(chǎn)品的ID號(hào)中全部輸入“1”(用一串“1”把兩個(gè)空格都填寫滿),姓名和公司名稱任意填,再點(diǎn)擊“下一步”。

 ?、葸x中“安裝VisualBasic6.0中文企業(yè)版”,再點(diǎn)擊“下一步”。

  ⑥一般情況下直接點(diǎn)擊“下一步”(公用文件的文件夾可以不需要改變),稍等...,直接點(diǎn)擊“繼續(xù)”,直接點(diǎn)擊“確定”,直接點(diǎn)擊“是”。

 ?、哌x擇“典型安裝”或“自定義安裝”,初學(xué)者可以選前者。在彈出對(duì)話框中直接點(diǎn)擊“是”。

 ?、嘣趶棾龅膶?duì)話框中,點(diǎn)擊“重新啟動(dòng)Windows”。

  繼續(xù)下一步安裝

  3、安裝MSDN(幫助文件)

  MSDN安裝包并不包含在VB企業(yè)版中,需要另外下載!

 ?、僦匮b啟動(dòng)計(jì)算機(jī)后,在出現(xiàn)的VB安裝界面中可以直接安裝幫助文件,選中“安裝MSDN”項(xiàng),再點(diǎn)擊“下一步”。

  ②在彈出的對(duì)話框中按“瀏覽”,找到“MSDNforVB6.0”文件夾。

 ?、郯?ldquo;繼續(xù)”按鈕,再按“確定”,選中“接受協(xié)議”。

 ?、馨?ldquo;自定義安裝”,在“VB6.0幫助文件”前打鉤,再點(diǎn)擊“繼續(xù)”。

  ⑤完成MSDN的安裝,點(diǎn)擊“確定”。

 ?、拗苯狱c(diǎn)擊“下一步”,把“現(xiàn)在注冊(cè)”項(xiàng)去掉,再點(diǎn)擊“完成”,即完成了VB的安裝

  VisualBasic6.0中文企業(yè)版

  VisualBasic6.0中文企業(yè)版

  。

  4、安裝補(bǔ)丁程序

  安裝VB補(bǔ)丁程序這非常重要,它可以避免許多錯(cuò)誤,并可以直接使用Access2000,否則要轉(zhuǎn)換到低版本的Access數(shù)據(jù)庫。

 ?、龠\(yùn)行下載下來的VB60SP6-KB957924-v2-x86-CHS.msi文件,如果運(yùn)行有問題,需要安裝WindowsInstaller。

 ?、谠趶棾龅膶?duì)話框中按“繼續(xù)”,再按“接受”許可協(xié)議。

  ③按“確定”,完成VB補(bǔ)丁程序的安裝。

  5、添加或刪除VisualBasic6.0組件

  在VB6.0安裝完成后,可能還會(huì)遇到需添加未安裝組件或刪除不再需要組件的情況,此時(shí)需做添加或刪除操作。

 ?、僭俅芜\(yùn)行VB6.0安裝程序。

 ?、谶x擇“工作站工具和組件”選項(xiàng)后,打開“添加/刪除”對(duì)話框。

 ?、鄹鶕?jù)需要單擊對(duì)話框中的“添加/刪除”、“重新安裝”或“全部刪除”按鈕。

 ?、軉螕?ldquo;確定”按鈕完成添加/刪除工作。

  VisualBasic.NET

  2002——第三次革命性變化,向.NET進(jìn)軍

  從1998年發(fā)布到2002年正式推出VisualBasic.NET簡直吊足了開發(fā)者的胃口。從2000年就開始傳言的具有繼承、Try…Catch語句等新功能的全新VB7.0一直沒有露面。直到2001年,VisualStudio.NET的第一個(gè)Beta版問世的時(shí)候,所有人都呆了——這是VisualBasic嗎?And語句變成了BitAnd,數(shù)組只能從0下標(biāo)開始,而且連Dim語句的意義都變了,幾乎所有的窗體控件都變了,Long變成了Integer而Integer變成了Short,Variant不見了,Static不能用了……簡直是翻天覆地,人們已經(jīng)無暇關(guān)注這個(gè)版本有什么改進(jìn),轉(zhuǎn)而擔(dān)心我怎么才能接受這個(gè)版本了。其實(shí)VisualBasic.NET完全是為了.NETFramework這一全新的平臺(tái)而設(shè)計(jì)的,VisualBasic.NET的設(shè)計(jì)者一開始沒有掌握好新平臺(tái)和舊語言的平衡。到了Beta2中,很多東西回歸了6.0,如BitAnd又變回了And,數(shù)組的定義語句也變回了原有的意義,Static也回到了VisualBasic中。但是Beta1驚人的變化讓所有的VB開發(fā)者怕了,他們覺得這種語言被改的千瘡百孔,有些人干脆轉(zhuǎn)去研究傳說中的新語言C#。但是VisualBasic.NET渡過幾個(gè)Beta版本之后還是找到了正確的定位。VisualBasic.NET有對(duì)CLR最完善的支持,同時(shí)盡量保留著BASIC易懂的語法風(fēng)格和易用性。VisualBasic.NET經(jīng)常被微軟高管用來比擬上世紀(jì)80年代的視窗系統(tǒng)。這個(gè)版本新增加的功能已經(jīng)數(shù)不清,最重要的幾個(gè)是:

  1、繼承。至此,VisualBasic完成了向面向?qū)ο筠D(zhuǎn)變的道路。

  2、共享成員。

  3、Try…Catch結(jié)構(gòu)化異常處理。

  4、Delegate和Interface。

  5、名稱空間。

  6、對(duì)自由線程的支持。

  特別的是,VisualBasic.NET大大減少了VisualBasic語言的關(guān)鍵字,如GoSub、PSet等等。原先的VisualBasic有多達(dá)120個(gè)關(guān)鍵字,這給寫程序帶來了很大的不便,現(xiàn)在經(jīng)過精簡,VisualBasic脫下了這個(gè)沉重的包袱。

  VisualBasic.NET現(xiàn)在是一門現(xiàn)代的、強(qiáng)壯的、面向?qū)ο蟮?、簡單的可視化開發(fā)語言。強(qiáng)大的語言功能吸引了很多開發(fā)者。歷史是在不斷重演的,VisualBasic.NET如今的處境和VisualBasic4.0很相似,由于兼容性變差,人氣也降低了。同時(shí)由于依附于.NETFramework,程序發(fā)布造成了一定的困難。現(xiàn)在國內(nèi)使用VisualBasic.NET的人相對(duì)于VisualBasic6.0來講顯得很少。但是憑借VisualBasic.NET強(qiáng)大的語言功能和MS的支持,VisualBasic.NET一定會(huì)顯出它的光輝來。

  VisualBasic.NET2003

  2003——穩(wěn)中求變的新版本

  VisualBasic.NET2003是一個(gè)相當(dāng)穩(wěn)重的版本,改變很少,但對(duì)小處有很多改進(jìn)。首先VisualBasic6.0升級(jí)向?qū)ё隽撕艽蟾倪M(jìn),這給從老版本痛苦升級(jí)的人帶來了更多一些的希望。其次在IDE方面,VisualBasic.NET2003修正了許多錯(cuò)誤,還讓事件處理恢復(fù)了6.0的開發(fā)體驗(yàn)。語言方面只有兩項(xiàng)改進(jìn):

  1、在For、ForEach語句中聲明循環(huán)變量。

  2、增加了數(shù)學(xué)移位運(yùn)算符"<<"和">>"。

  在這個(gè)比較成熟穩(wěn)定的新版本下,許多VisualBasic的愛好者開始重新了解VisualBasic.NET,社區(qū)里面也漸漸熱鬧起來。但是,有些使用C#的開發(fā)者堅(jiān)持認(rèn)為VisualBasic.NET是垃圾,盡管當(dāng)時(shí)的VisualBasic.NET擁有比C#更多的功能和更好的IDE(IntegratedDevelopment,集成開發(fā)環(huán)境)。這說明程序員們不了解VisualBasic.NET成為它普及的最大障礙。

  VisualBasic2005

  2005——完美主義的VisualBasic

  為了讓VisualBasic有最佳的開發(fā)體驗(yàn),VisualBasic2005的設(shè)計(jì)者絞盡了腦汁。這次VisualBasic2005光語言上的改進(jìn)就足以讓VisualBasic的開發(fā)人員高興一陣子。

  VisualBasic2005具有下列新增和加強(qiáng)的功能:

  1、泛型。

  2、運(yùn)算符重載。

  3、PartialClass。

  4、窗體的默認(rèn)實(shí)例。

  5、My偽命名空間。

  6、其他語法的多種改進(jìn)。

  現(xiàn)在用VisualBasic2005只要一行代碼就可以讀寫注冊(cè)表、訪問文件、讀寫串口、獲取應(yīng)用程序信息……用VisualBasic2005完全可以稱作享受開發(fā)。而泛型、運(yùn)算符重載等功能又可以讓VisualBasic的開發(fā)人員深入.NETFramework的全部功能,開發(fā)出最優(yōu)秀的應(yīng)用程序。

  VisualBasic2008

  2008——功能極強(qiáng)又簡單易用

  VisualBasic2008具有下列新增和加強(qiáng)的功能:

  1、Language-integratedquery(LINQ)。

  2、物件關(guān)聯(lián)式設(shè)計(jì)工具會(huì)協(xié)助開發(fā)人員建立和編輯,使應(yīng)用程序連接至資料庫的linktosql類別。

  3、Lambda表達(dá)式。

  4、XML數(shù)據(jù)結(jié)構(gòu)。

  VisualBasic2010

  2010——下一代開發(fā)平臺(tái)

  VisualBasic2010具有下列新增和加強(qiáng)的功能:

  1、數(shù)組初始值設(shè)定項(xiàng)。

  2、集合初始值設(shè)定項(xiàng)。

  3、內(nèi)聯(lián)Lambda表達(dá)式。

  4、自動(dòng)實(shí)現(xiàn)屬性。

  5、泛化。

  6、No-PIA部署。

  7、與Python的集成。

  8、并行計(jì)算擴(kuò)展。

  VisualBasic2012(RC)

  VisualBasic2012RC具有下列新增和加強(qiáng)的功能:

  1、異步功能

  2、迭代器

  3、調(diào)用層次結(jié)構(gòu)

  4、調(diào)用方信息

  5、全局命名空間語句中的關(guān)鍵字

  VisualBasic2013

  主要新功能

  1支持Windows8.1App開發(fā)

  2敏捷項(xiàng)目管理(AgilePortfolioManagement)

  3版本控制

  4輕量代碼注釋(lightweightcodecommenting)

  5整合微軟SystemCenterIT管理平臺(tái)

  6定價(jià)與許可

  語言標(biāo)準(zhǔn)

  注釋方式

  在VB中,注釋有2種方式[2]。

  1.以Rem關(guān)鍵字開頭,并且Rem關(guān)鍵字與注釋內(nèi)容之間要加一個(gè)空格。注釋可以是單獨(dú)的一行,也可以寫在其他語句行的后面。如果在其他語句行后使用Rem關(guān)鍵字,則必須使用冒號(hào)(:)與語句隔開。

  2.也可以使用一個(gè)撇號(hào)(')來代替Rem關(guān)鍵字。若使用撇號(hào),則在其他語句行使用時(shí)不必加冒號(hào)。

  如:Msgbox"答案是"&a+b,vbinformation,"A+Bproblem"'彈出a+b的結(jié)果

  特征衡量

  在VisualBasic中,可通過屬性、方法和事件來說明和衡量一個(gè)對(duì)象的特征。

  事件(Event)

  事件是指發(fā)生在某一對(duì)象上的事情。事件又可分為鼠標(biāo)事件和鍵盤事件。例如,在命令按鈕(CommandButton)這一對(duì)象上可能發(fā)生鼠標(biāo)單擊(Click)、鼠標(biāo)移動(dòng)(MouseMove)、鼠標(biāo)按下(MouseDown)等鼠標(biāo)事件,也可能發(fā)生鍵盤按下(KeyDown)等鍵盤事件??傊?,事件指明了對(duì)象“什么情況下做?”,常用于定義對(duì)象發(fā)生某種反映的時(shí)機(jī)和條件。

  方法(Method)

  方法是用來控制對(duì)象的功能及操作的內(nèi)部程序。例如,人具有說話、行走、學(xué)習(xí)、睡覺等功能,在visualBasic中,對(duì)象所能提供的這些功能和操作,就稱作“方法”。以窗體為例,它具有顯示(show)或隱藏(hide)的方法??傊椒ㄖ该髁藢?duì)象“能做什么?”,常用于定義對(duì)象的功能和操作。

  屬性(Property)

  屬性是指用于描述對(duì)象的名稱、位置、顏色、字體等特征的一些指標(biāo)??梢酝ㄟ^屬性改變對(duì)象的特性。

  有些屬性可以在設(shè)計(jì)時(shí)通過屬性窗口來設(shè)置,不用編寫任何代碼;而有些屬性則必須通過編寫代碼,在運(yùn)行程序的同時(shí)進(jìn)行設(shè)置。可以在運(yùn)行時(shí)讀取和設(shè)置取值的屬性成為讀寫屬性,只能讀取的屬性成為只讀屬性??傊畬傩灾该髁藢?duì)象“是什么樣的?”,常用于定義對(duì)象的外觀。

  對(duì)象與類

  對(duì)象(Object)

  VisualBasic.NET具有“面向?qū)ο?rdquo;的特性,VisualBasic.NET應(yīng)用種程序的基本單元是對(duì)象,用VisualBasic.NET編程就是用“對(duì)象”組裝程序。這種“面向?qū)ο?rdquo;的編程方法與傳統(tǒng)的全部用代碼編制程序的方法有很大區(qū)別,就像用集成電路芯片組裝電視機(jī)和用三極管,二極管組裝電視機(jī)的區(qū)別一樣。顯然,“面向?qū)ο?rdquo;的編程方法比傳統(tǒng)的編程方法更簡單,更方便,并且編寫出的程序也更加穩(wěn)定。因此,“對(duì)象”可以被看做VisualBasic.NET程序設(shè)計(jì)的核心。

  在VisualBasic.NET程序設(shè)計(jì)中,對(duì)象中還可以包含頭,手,腿,腳等部位,其中的每個(gè)部位又可以單獨(dú)作為作為被研究的對(duì)象。在VisualBasic.NET程序設(shè)計(jì)中,整個(gè)應(yīng)用程序就是一個(gè)對(duì)象,應(yīng)用程序中又包含著窗體(Form),命令按鈕(Command),菜單(Menu)等對(duì)象。

  類(Class)

  在VisualBasic.NET中,對(duì)象是由類創(chuàng)建的,因此對(duì)象可以說是類的具體實(shí)例,這就好比是蛋糕和做蛋糕的模具之間的關(guān)系。

  各種不同的對(duì)象分屬于各種不同的種類。同一類對(duì)象可能具有一些不同的特征(或是說同一類對(duì)象不一定具有完全相同的特性);具有某些相同的特性的對(duì)象,不一定是同一類對(duì)象,這就好比是人和猴子雖然都有身高、性別等特征,但二者之間還存在著智商、語言等特性差異,這兩個(gè)對(duì)象之間的特性相差很多,根本就不能算是同一類對(duì)象。而男人和女人,雖然有著性別、生理等方面的差異,但他們絕大部分特性相同,可以算是同一種類。由此,可以歸結(jié)為一句話:同一類對(duì)象的絕大部分特性相同。

  相關(guān)控件

  窗體項(xiàng)目。所以VisualBasic中的控件大多和窗體項(xiàng)目有關(guān)。

  分類

  根據(jù)應(yīng)用類型,VisualBasic控件可以分為如下3類:

  內(nèi)置控件

  內(nèi)置控件即VisualBasic工具箱中的控件,里面包含了常見窗體程序所需要的控件

  ActiveX控件

  ActiveX控件包含不同版本VisualBasic提供的控件和僅在專業(yè)版、企業(yè)版中提供的控件,并且還包含第三方提供的控件。

  ActiveX控件是對(duì)VisualBasic內(nèi)置控件的擴(kuò)充,開發(fā)人員可以根據(jù)個(gè)人需要進(jìn)行隨意擴(kuò)充,擴(kuò)充的ActiveX控件將在工具箱中顯示。

  在工具箱中添加ActiveX控件的流程如下。

  (1)打開一個(gè)VisualBasic6.0項(xiàng)目,一次選擇【工程】->【部件】命令,在彈出的“部件”對(duì)話框中選擇“控件”選項(xiàng)卡,在列表框中選擇要添加的ActiveX控件

 ?。?)返回VisualBasic主界面,此時(shí)添加的ActiveX控件已被添加到工具箱內(nèi)

  可插入對(duì)象

  在VisualBasic的工具欄中,可以放置其他的第三方對(duì)象,可以像使用控件一樣輕松使用。添加后的對(duì)象也在工具箱中顯示,添加對(duì)象的方法和添加ActiveX控件類似,只要依次選擇【工程】->【部件】命令,在彈出的“部件”對(duì)話框中選擇“可插入對(duì)象”選項(xiàng)卡,再選擇添加的對(duì)象即可。

  有關(guān)第三方對(duì)象,可以從受信任的來源下載控件,并通過添加引用來導(dǎo)入。支持這些自定義的Vb的控件有:ComponentOneStudio,Spread,ActiveReports、MultiRow等。

  語言特點(diǎn)

  基本特點(diǎn)

  VB的中心思想就是要便于程序員使用,無論是新手或者專家。VB使用了可以簡單建立應(yīng)用程序的GUI系統(tǒng),但是又可以開發(fā)相當(dāng)復(fù)雜的程序。VB的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼來指定組件的屬性和方法。因?yàn)槟J(rèn)的屬性和方法已經(jīng)有一部分定義在了組件內(nèi),所以程序員不用寫多少代碼就可以完成一個(gè)簡單的程序。過去的版本里面VB程序的性能問題一直被放在了桌面上,但是隨著計(jì)算機(jī)速度的飛速增加,關(guān)于性能的爭論已經(jīng)越來越少。

  窗體控件的增加和改變可以用拖放技術(shù)實(shí)現(xiàn)。一個(gè)排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)。每個(gè)控件都有自己的屬性和事件。默認(rèn)的屬性值會(huì)在控件創(chuàng)建的時(shí)候提供,但是程序員也可以進(jìn)行更改。很多的屬性值可以在運(yùn)行時(shí)候隨著用戶的動(dòng)作和修改進(jìn)行改動(dòng),這樣就形成了一個(gè)動(dòng)態(tài)的程序。舉個(gè)例子來說:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運(yùn)行時(shí)候每當(dāng)用戶更改窗口大小,控件也會(huì)隨之改變位置。在文本框中的文字改變事件中加入相應(yīng)的代碼,程序就能夠在文字輸入的時(shí)候自動(dòng)翻譯或者阻止某些字符的輸入。

  VB的程序可以包含一個(gè)或多個(gè)窗體,或者是一個(gè)主窗體和多個(gè)子窗體,類似于操作系統(tǒng)的樣子。有很少功能的對(duì)話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。

  VB的組件既可以擁有用戶界面,也可以沒有。這樣一來服務(wù)器端程序就可以處理增加的模塊。

  VB使用參數(shù)計(jì)算的方法來進(jìn)行垃圾收集,這個(gè)方法中包含有大量的對(duì)象,提供基本的面向?qū)ο笾С?。因?yàn)樵絹碓蕉嘟M件的出現(xiàn),程序員可以選用自己需要的擴(kuò)展庫。和有些語言不一樣,VB對(duì)大小寫不敏感,但是能自動(dòng)轉(zhuǎn)換關(guān)鍵詞到標(biāo)準(zhǔn)的大小寫狀態(tài),以及強(qiáng)制使得符號(hào)表入口的實(shí)體的變量名稱遵循書寫規(guī)則。默認(rèn)情況下字符串的比較是對(duì)大小寫敏感的,但是可以關(guān)閉這個(gè)功能。

  VB使得大量的外界控件有了自己的生存空間。大量的第三方控件針對(duì)VB提供。VB也提供了建立、使用和重用這些控件的方法,但是由于語言問題,從一個(gè)應(yīng)用程序創(chuàng)建另外一個(gè)并不簡單。

  語言缺點(diǎn)

  VisualBasic語言具有不支持繼承、無原生支持多線程、異常處理不完善等三項(xiàng)明顯缺點(diǎn),使其有所局限性(此些缺點(diǎn)皆已在vb.net獲得改進(jìn))。

  不支持繼承

  VB5.0和VB6.0都是基于對(duì)象的編程語言,但是不包含繼承特性。VB中提供了特殊的類的功能,但是還是不能滿足程序員的需求。

  無原生支持多線程

  VisualBasic對(duì)于多線程無原生支持,只能通過WindowsAPI的調(diào)用實(shí)現(xiàn),且極其的不穩(wěn)定。因?yàn)樵贏PI創(chuàng)建的線程中,并沒有自動(dòng)初始化運(yùn)行時(shí)庫,導(dǎo)致部分的函數(shù)無法使用。一般的,在VB6等早期的VB開發(fā)環(huán)境下,使用API創(chuàng)建線程的目的是完成容易使程序假死的大量數(shù)據(jù)或者邏輯的計(jì)算。

  異常處理不完善

  VisualBasic中內(nèi)置異常處理,即使未寫異常處理代碼,一旦用戶出錯(cuò)也會(huì)彈出一個(gè)明確寫出出錯(cuò)原因?qū)υ捒?,接著程序終止。

  VisualBasic中可以使用Err.Raise拋出異常。對(duì)系統(tǒng)及用戶拋出的異常的處理常用兩種模式:一是使用OnErrorResumeNext處理錯(cuò)誤;另一種是使用OnErrorGoto將運(yùn)行引入錯(cuò)誤處理代碼。但相對(duì)C++等語言而言,這樣的異常處理破壞了代碼的結(jié)構(gòu)。

  派生語言

  微軟開發(fā)了一系列由VisualBasic所派生的語言:

  VBA

  VisualBasicforApplications(VBA):包含在微軟的應(yīng)用程序中(如MicrosoftOffice),以及類似WordPerfect、Office這樣第三方的產(chǎn)品里面。VBA這樣嵌入在各種應(yīng)用程序中看起來有些矛盾,但是它的功能和VB一樣強(qiáng)大。

  VBS

  VBScript(VBS):是默認(rèn)的ASP語言,還可以用在Windows腳本編寫和網(wǎng)頁編碼中。盡管它的語法類似于VB,但是它卻是一種完全不同的語言。VBS不使用VB運(yùn)行庫運(yùn)行,而是由Windows腳本主機(jī)解釋執(zhí)行。這兩種語言之中的不同點(diǎn)影響ASP網(wǎng)站的表現(xiàn)。

  vb.net

  VisualBasic.NET(vb.net):當(dāng)微軟準(zhǔn)備開發(fā)一種新的編程工具的時(shí)候,第一決定就是利用VB6.0來進(jìn)行舊改,或者就是重新組建工程開發(fā)新工具。微軟后來開發(fā)了VB的繼任者VisualBasic.NET,同時(shí)也是.NET平臺(tái)的一部分。vb.net編程語言是一種真正的面向?qū)ο缶幊陶Z言,和VB并不完全兼容。

  VisualBasic.NET(vb.net)是新一代的VB語言,并不只是VB6.0的簡單升級(jí),vb.net與VB(泛指VB6.0之前的版本)之間有非常大的區(qū)別。其新特性主要表現(xiàn)在以下幾方面:

  1.vb.net完全集成到VisualStudio集成開發(fā)環(huán)境中,在這種集成開發(fā)環(huán)境與VB在若干方面有差異。主要體現(xiàn)在窗體的布局以及菜單等方面都有所不同。

  2.vb.net項(xiàng)目與VB不同。它使用基于文件夾的模型,所有項(xiàng)目均放置在項(xiàng)目文件夾層次結(jié)構(gòu)中。

  3.vb.net中使用ado.net來訪問數(shù)據(jù)庫,ado.net是.NETFramework的一部分。在vb.net中實(shí)現(xiàn)數(shù)據(jù)訪問的方法主要有兩種:其一是在程序設(shè)計(jì)階段,通過創(chuàng)建、配置數(shù)據(jù)適配器DataAdapter和生成數(shù)據(jù)集DataSet;其二是在運(yùn)行中,通過編程方式動(dòng)態(tài)創(chuàng)建配置數(shù)據(jù)適配器和創(chuàng)建、生成數(shù)據(jù)集。

  4.在vb.net中是使用asp.net技術(shù)來編寫Web頁面的。在asp.net中使用的也不是腳本語言,而是真正意義的編程語言。憑借asp.net的Web應(yīng)用程序、XMLWebServices等基于Web的功能,使得vb.net開發(fā)Web頁面與開發(fā)Windows應(yīng)用程序很相似,Web頁面代碼也顯得有條有理了。

  5.vb.net已經(jīng)成為完全的面向?qū)ο蟮木幊陶Z言,并且新增更多語言特性。

  VisualBasic.NET有提供轉(zhuǎn)換精靈,協(xié)助開發(fā)者將VB6.0的程序代碼轉(zhuǎn)換為vb.net相對(duì)應(yīng)之程序代碼。

  語言爭議

  程序員中,對(duì)于各種語言孰優(yōu)孰劣的爭論并不少見,VisualBasic更是成為了一種充滿了爭議的語言。

  反方觀點(diǎn)

  一些批評(píng)家認(rèn)為VisualBasic是一種給兒童和菜鳥程序員的語言,它自從設(shè)計(jì)開始就是一種簡單的語言。一些C++和Java中的特性在VB中并沒有出現(xiàn)。在感受開發(fā)的方便和快速的同時(shí),一些類似于編譯時(shí)進(jìn)行類型和聲明檢查的功能在默認(rèn)情況下是關(guān)閉的。這樣一些程序員一邊感嘆VB的易用性,一邊沮喪地看著一些類似于“未定義類型”錯(cuò)誤的發(fā)生。

  一些批評(píng)家認(rèn)為VisualBasic的簡單特性使得其在未來具有傷害性。很多人自學(xué)了VB,但是并沒有學(xué)到好的編程習(xí)慣。當(dāng)VB進(jìn)入課堂的時(shí)候,學(xué)生們不會(huì)學(xué)到很多基礎(chǔ)的程序技術(shù)和結(jié)構(gòu),因?yàn)楹芏嗉夹g(shù)已經(jīng)包含在那些對(duì)用戶可見的組件里面了。不用學(xué)習(xí)標(biāo)準(zhǔn)的編程習(xí)慣,因?yàn)閂B具有可視化的特性,所以導(dǎo)致了一些莫名其妙的代碼的產(chǎn)生。而且很多錯(cuò)誤和警告的檢查默認(rèn)情況下都是關(guān)閉的,程序員很難找到隱藏的錯(cuò)誤。有經(jīng)驗(yàn)的程序員在用VB編程的時(shí)候都會(huì)把這些選項(xiàng)打開。

  一些批評(píng)家批評(píng)微軟簡單地拷貝了BASIC的思想到VisualBasic中。

  VisualBasic開發(fā)的程序只能運(yùn)行在MicrosoftWindows中;且運(yùn)行時(shí)還需要VB運(yùn)行庫。

  VisualBasic不能很好的綜合Windows的基礎(chǔ)API,很多時(shí)候要使用低級(jí)運(yùn)算的“小伎倆”來進(jìn)行編程。而C語言的低級(jí)內(nèi)存運(yùn)算比VB的要簡單得多。

  VB語言作為計(jì)算機(jī)語言的入門,是很多學(xué)生學(xué)習(xí)編程的入門級(jí)語言,大學(xué)生利用VB語言開始了他們學(xué)習(xí)計(jì)算機(jī)的世界。

  正方觀點(diǎn)

  任何工具都是針對(duì)不同任務(wù)發(fā)明的,如同刀劍和鋤頭,刀劍高手未必是鋤地高手,刀劍高手除了殺人,不能生產(chǎn)糧食養(yǎng)人,所以任何工具歧視都是錯(cuò)誤的。VisualBasic的強(qiáng)大在于能夠快速開發(fā)企業(yè)級(jí)軟件,使程序員有更多的時(shí)間和精力考慮用戶的需求,生產(chǎn)出滿足用戶需要的軟件,特別適合大型企業(yè)級(jí)軟件的開發(fā),比如MIS、MRP、MRPII、ERP等重量級(jí)的軟件,而不是花很長時(shí)間去制作一個(gè)只有幾K的DLL。

  VisualBasic的最大的優(yōu)勢(shì)在于它的易用性,可以讓經(jīng)驗(yàn)豐富的VB程序員或是剛剛懂得皮毛的人都能用自己的方式快速開發(fā)程序。而且VB的程序可以非常簡單的和數(shù)據(jù)庫連接。比如利用控件可以綁定數(shù)據(jù)庫,這樣一來用VB寫出的程序就可以掌握數(shù)據(jù)庫的所有信息而不用寫一行代碼。

  VisualBasic開發(fā)的程序雖然僅在MicrosoftWindows中得到原生支持,但Linux等平臺(tái)中存在著一些項(xiàng)目,使得能夠使用VisualBasic的代碼在這些平臺(tái)下順利編譯。

  任何語言開發(fā)的程序都需要一定運(yùn)行時(shí)環(huán)境的支持,對(duì)于大型軟件系統(tǒng)來說,需要支撐是很正常的,正所謂“站在巨人的肩膀上”。傳統(tǒng)VisualBasic開發(fā)的程序需要VB運(yùn)行庫的支持;VisualBasic.NET開發(fā)的程序(如C#)需要.NetFramework的支持;Java開發(fā)的程序需要Java虛擬機(jī)的支持


內(nèi)容來自百科網(wǎng)