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

Visual Basic

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

  發(fā)展歷程

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

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

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

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

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

  VisualBasic1.0

  1991——西雅圖夜空的雷電

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

  VisualBasic2.0

  1992——漸入佳境

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

  DimCommand1AsCommandButton

  DimcAsControl

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

  VisualBasic3.0

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

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

  VisualBasic4.0

  1995——第二次革命性變化,向COM進軍

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

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

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

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

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

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

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

  VisualBasic5.0

  1997——VisualBasic的豐收年

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

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

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

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

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

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

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

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

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

  VisualBasic5.0還支持開發(fā)自己的ActiveX控件、進程內(nèi)的COMDLL組件、進程外的COMEXE組件以及在瀏覽器中運行的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è)級快速開發(fā)的利器。VisualBasic6.0在數(shù)據(jù)訪問方面有了很大的改進,新的ADO組件讓對大量數(shù)據(jù)快速訪問成為可能。數(shù)據(jù)環(huán)境和新的報表功能也讓數(shù)據(jù)開發(fā)有了全新的體驗。VisualBasic借助COM/COM+強大的功能,可以開發(fā)具有N層結(jié)構(gòu)的分布式應(yīng)用程序。同時,VisualBasic還可以在IIS上開發(fā)性能超群的Web應(yīng)用程序。VisualBasic6.0在語言方面和IDE方面的改進都不大,但是許多新增的組件成為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版本。(目前全國計算機二級考試所用的VB版本也是VisualBasic6.0)

  VisualBasic6.0安裝教程

  1、準備工作:下載軟件

  2、安裝VisualBasic6.0的步驟

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

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

 ?、壑苯狱c擊“下一步”,選中“接受協(xié)議”,再點擊“下一步”。

 ?、茉诋a(chǎn)品的ID號中全部輸入“1”(用一串“1”把兩個空格都填寫滿),姓名和公司名稱任意填,再點擊“下一步”。

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

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

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

 ?、嘣趶棾龅膶υ捒蛑校c擊“重新啟動Windows”。

  繼續(xù)下一步安裝

  3、安裝MSDN(幫助文件)

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

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

 ?、谠趶棾龅膶υ捒蛑邪?ldquo;瀏覽”,找到“MSDNforVB6.0”文件夾。

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

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

 ?、萃瓿蒑SDN的安裝,點擊“確定”。

  ⑥直接點擊“下一步”,把“現(xiàn)在注冊”項去掉,再點擊“完成”,即完成了VB的安裝

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

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

  。

  4、安裝補丁程序

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

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

 ?、谠趶棾龅膶υ捒蛑邪?ldquo;繼續(xù)”,再按“接受”許可協(xié)議。

 ?、郯?ldquo;確定”,完成VB補丁程序的安裝。

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

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

 ?、僭俅芜\行VB6.0安裝程序。

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

  ③根據(jù)需要單擊對話框中的“添加/刪除”、“重新安裝”或“全部刪除”按鈕。

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

  VisualBasic.NET

  2002——第三次革命性變化,向.NET進軍

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

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

  2、共享成員。

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

  4、Delegate和Interface。

  5、名稱空間。

  6、對自由線程的支持。

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

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

  VisualBasic.NET2003

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

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

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

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

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

  VisualBasic2005

  2005——完美主義的VisualBasic

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

  VisualBasic2005具有下列新增和加強的功能:

  1、泛型。

  2、運算符重載。

  3、PartialClass。

  4、窗體的默認實例。

  5、My偽命名空間。

  6、其他語法的多種改進。

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

  VisualBasic2008

  2008——功能極強又簡單易用

  VisualBasic2008具有下列新增和加強的功能:

  1、Language-integratedquery(LINQ)。

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

  3、Lambda表達式。

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

  VisualBasic2010

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

  VisualBasic2010具有下列新增和加強的功能:

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

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

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

  4、自動實現(xiàn)屬性。

  5、泛化。

  6、No-PIA部署。

  7、與Python的集成。

  8、并行計算擴展。

  VisualBasic2012(RC)

  VisualBasic2012RC具有下列新增和加強的功能:

  1、異步功能

  2、迭代器

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

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

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

  VisualBasic2013

  主要新功能

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

  2敏捷項目管理(AgilePortfolioManagement)

  3版本控制

  4輕量代碼注釋(lightweightcodecommenting)

  5整合微軟SystemCenterIT管理平臺

  6定價與許可

  語言標準

  注釋方式

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

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

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

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

  特征衡量

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

  事件(Event)

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

  方法(Method)

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

  屬性(Property)

  屬性是指用于描述對象的名稱、位置、顏色、字體等特征的一些指標。可以通過屬性改變對象的特性。

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

  對象與類

  對象(Object)

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

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

  類(Class)

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

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

  相關(guān)控件

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

  分類

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

  內(nèi)置控件

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

  ActiveX控件

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

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

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

 ?。?)打開一個VisualBasic6.0項目,一次選擇【工程】->【部件】命令,在彈出的“部件”對話框中選擇“控件”選項卡,在列表框中選擇要添加的ActiveX控件

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

  可插入對象

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

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

  語言特點

  基本特點

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

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

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

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

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

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

  語言缺點

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

  不支持繼承

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

  無原生支持多線程

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

  異常處理不完善

  VisualBasic中內(nèi)置異常處理,即使未寫異常處理代碼,一旦用戶出錯也會彈出一個明確寫出出錯原因?qū)υ捒颍又绦蚪K止。

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

  派生語言

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

  VBA

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

  VBS

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

  vb.net

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

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

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

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

  3.vb.net中使用ado.net來訪問數(shù)據(jù)庫,ado.net是.NETFramework的一部分。在vb.net中實現(xiàn)數(shù)據(jù)訪問的方法主要有兩種:其一是在程序設(shè)計階段,通過創(chuàng)建、配置數(shù)據(jù)適配器DataAdapter和生成數(shù)據(jù)集DataSet;其二是在運行中,通過編程方式動態(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相對應(yīng)之程序代碼。

  語言爭議

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

  反方觀點

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

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

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

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

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

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

  正方觀點

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

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

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

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


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