發(fā)展歷程
1991年,微軟公司推出了VisualBasic1.0。當時引起了很大的轟動。這個連接編程語言和用戶界面的進步被稱為Tripod(有些時候叫做Ruby),最初的設計是由阿蘭·庫珀(AlanCooper)完成的。
許多專家把VB的出現(xiàn)當做是軟件開發(fā)史上的一個具有劃時代意義的事件。在當時,它是第一個“可視”的編程軟件。這使得程序員欣喜之極,都嘗試在VB的平臺上進行軟件創(chuàng)作。
微軟也不失時機地在四年內(nèi)接連推出2.0、3.0、4.0三個版本。并且從VB3.0開始,微軟將Access的數(shù)據(jù)庫驅動集成到了VB中,這使得VB的數(shù)據(jù)庫編程能力大大提高。從VB4.0開始,VB也引入了面向對象的程序設計思想。VB功能強大,學習簡單。而且,VB還引入了“控件”的概念,使得大量已經(jīng)編好的VB程序可以被我們直接拿來使用。
2002年開始,微軟將.NETFramework與VisualBasic結合而成為VisualBasic.NET(vb.net),重新打造VB,新增許多特性及語法,又將VB推向一個新的高度。最新版本VisualBasic2012也將帶來許多令人期待的新功能。
通過幾年的發(fā)展,它已成為一種專業(yè)化的開發(fā)語言和環(huán)境。用戶可用VisualBasic快速創(chuàng)建Windows程序,并可編寫企業(yè)水平的客戶端/服務器程序及強大的數(shù)據(jù)庫應用程序。
VisualBasic1.0
1991——西雅圖夜空的雷電
隨著Windows3.0的推出,越來越多的開發(fā)商對這個圖形界面的操作系統(tǒng)產(chǎn)生了興趣,大量的Windows應用程序開始涌現(xiàn)。但是,Windows程序的開發(fā)相對于傳統(tǒng)的DOS有很大的不同,開發(fā)者必須將很多精力放在開發(fā)GUI上,這讓很多希望學習Windows開發(fā)的人員怯步。1991年,微軟公司展示了一個叫Thunder的產(chǎn)品,所有的開發(fā)者都驚呆了,它竟然可以用鼠標“畫”出所需的用戶界面,然后用簡單的BASIC語言編寫業(yè)務邏輯,就生成一個完整的應用程序。這種全新的“Visual”的開發(fā)就像雷電(Thunder)一樣,給Windows開發(fā)人員開辟了新的天地。這個產(chǎn)品最終被定名為VisualBasic,采用事件驅動,QuickBASIC的語法和可視化的IDE。VisualBasic1.0帶來的最新的開發(fā)體驗就是事件驅動,它不同于傳統(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運算符獲取對象實例的運行時類型信息(這個功能就是當今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ù)窗口應用程序,而Jet引擎讓VisualBasic能對最新的Access數(shù)據(jù)庫快速地訪問。VisualBasic3.0還增加了許多新的金融函數(shù)。此外還增加了相當多的專業(yè)級控件,可以開發(fā)出相當水平的Windows應用程序。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、加入了“類模塊”。這是面向對象最重要的封裝性的基礎。
2、加入了屬性過程,加上函數(shù)過程,子程序過程,VB已經(jīng)有組件開發(fā)所需的封裝性特征。
3、加入了Byte、Boolean和Object類型。這大大完善了VB的類型系統(tǒng)。
4、ForEach語句和Collection對象。ForEach語句給遍歷集合類型提供了極大的方便,在動態(tài)增長的Collection上使用ForEach,而不用擔心集合內(nèi)容的總數(shù)或煩人的下標問題。
這個版本的VisualBasic還能夠開發(fā)DLL工程,其實就是COM的DLL,可以將書寫好的類用這種方式和其他語言共享。
總之,這個4.0的版本為VisualBasic成為一種COM語言奠定了基礎。用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)相當成熟,VisualBasic5.0當然對它提供了最強的支持。不過,國內(nèi)還沒有意識到COM的重要性前主要對這個版本另一個最大的亮點十分關注:本地代碼編譯器。VisualBasic5.0終于在用戶的呼聲中加入了一個本地代碼編譯器,它可以讓應用程序的效率大大提升。除了這個大家都知道的改進以外,VisualBasic5.0對VisualBasicForApplication語言有重大的完善和豐富:
1、事件。VisualBasic5.0終于允許用戶自己創(chuàng)建事件,而且這事件的語法相當強健和完善,這在一種不支持函數(shù)回調的語言中是很難得的。VB擁有屬性、方法和事件的完整封裝性。
2、接口。這是VB實現(xiàn)多態(tài)性的基礎。同時為編寫COM組件提供了更多方便。
3、枚舉。在VisualBasic5.0中枚舉作為Long整型的子類型出現(xiàn),用枚舉可以對常量進行完善的封裝。
4、類模塊的改進。通過類模塊的屬性可以指定類模塊具有多種指定的行為,如私有構造函數(shù)等,可以通過這個功能創(chuàng)建符合Singleton和Monostate模式的設計。
5、Debug.Assert。雖然這個斷言系統(tǒng)有點雞肋,但是總算是給調試帶來了方便。
6、VisualBasic5.0支持創(chuàng)建自己的集合類??梢詣?chuàng)建用于ForEach語句的集合類型。
7、新的數(shù)據(jù)類型Decimal,可以精確地處理有效數(shù)位較多的計算。
VisualBasic5.0的IDE支持“智能感知”,這是一項非常方便開發(fā)者的功能,可以不必記住很長的成員名稱和關鍵字,只要按“.”,想要的東西統(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層結構的分布式應用程序。同時,VisualBasic還可以在IIS上開發(fā)性能超群的Web應用程序。VisualBasic6.0在語言方面和IDE方面的改進都不大,但是許多新增的組件成為VisualBasic開發(fā)人員手中的利器,如FileSystemObject等。新的字符串函數(shù)Split和Replace等也給VisualBasic的程序員帶來很大方便。
總之VisualBasic6.0已經(jīng)是非常成熟穩(wěn)定的開發(fā)系統(tǒng),能讓企業(yè)快速建立多層的系統(tǒng)以及Web應用程序,成為當前Windows上最流行的VisualBasic版本。(目前全國計算機二級考試所用的VB版本也是VisualBasic6.0)
VisualBasic6.0安裝教程
1、準備工作:下載軟件
2、安裝VisualBasic6.0的步驟
?、侔严螺d的壓縮包解壓出來。
?、谠诮鈮撼鰜淼奈募A中雙擊文件“SETUP.EXE”執(zhí)行安裝程序。出現(xiàn)VB的安裝向導。
?、壑苯狱c擊“下一步”,選中“接受協(xié)議”,再點擊“下一步”。
④在產(chǎn)品的ID號中全部輸入“1”(用一串“1”把兩個空格都填寫滿),姓名和公司名稱任意填,再點擊“下一步”。
?、葸x中“安裝VisualBasic6.0中文企業(yè)版”,再點擊“下一步”。
⑥一般情況下直接點擊“下一步”(公用文件的文件夾可以不需要改變),稍等...,直接點擊“繼續(xù)”,直接點擊“確定”,直接點擊“是”。
?、哌x擇“典型安裝”或“自定義安裝”,初學者可以選前者。在彈出對話框中直接點擊“是”。
?、嘣趶棾龅膶υ捒蛑?,點擊“重新啟動Windows”。
繼續(xù)下一步安裝
3、安裝MSDN(幫助文件)
MSDN安裝包并不包含在VB企業(yè)版中,需要另外下載!
?、僦匮b啟動計算機后,在出現(xiàn)的VB安裝界面中可以直接安裝幫助文件,選中“安裝MSDN”項,再點擊“下一步”。
?、谠趶棾龅膶υ捒蛑邪?ldquo;瀏覽”,找到“MSDNforVB6.0”文件夾。
③按“繼續(xù)”按鈕,再按“確定”,選中“接受協(xié)議”。
④按“自定義安裝”,在“VB6.0幫助文件”前打鉤,再點擊“繼續(xù)”。
?、萃瓿蒑SDN的安裝,點擊“確定”。
⑥直接點擊“下一步”,把“現(xiàn)在注冊”項去掉,再點擊“完成”,即完成了VB的安裝
VisualBasic6.0中文企業(yè)版
VisualBasic6.0中文企業(yè)版
。
4、安裝補丁程序
安裝VB補丁程序這非常重要,它可以避免許多錯誤,并可以直接使用Access2000,否則要轉換到低版本的Access數(shù)據(jù)庫。
?、龠\行下載下來的VB60SP6-KB957924-v2-x86-CHS.msi文件,如果運行有問題,需要安裝WindowsInstaller。
?、谠趶棾龅膶υ捒蛑邪?ldquo;繼續(xù)”,再按“接受”許可協(xié)議。
③按“確定”,完成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)無暇關注這個版本有什么改進,轉而擔心我怎么才能接受這個版本了。其實VisualBasic.NET完全是為了.NETFramework這一全新的平臺而設計的,VisualBasic.NET的設計者一開始沒有掌握好新平臺和舊語言的平衡。到了Beta2中,很多東西回歸了6.0,如BitAnd又變回了And,數(shù)組的定義語句也變回了原有的意義,Static也回到了VisualBasic中。但是Beta1驚人的變化讓所有的VB開發(fā)者怕了,他們覺得這種語言被改的千瘡百孔,有些人干脆轉去研究傳說中的新語言C#。但是VisualBasic.NET渡過幾個Beta版本之后還是找到了正確的定位。VisualBasic.NET有對CLR最完善的支持,同時盡量保留著BASIC易懂的語法風格和易用性。VisualBasic.NET經(jīng)常被微軟高管用來比擬上世紀80年代的視窗系統(tǒng)。這個版本新增加的功能已經(jīng)數(shù)不清,最重要的幾個是:
1、繼承。至此,VisualBasic完成了向面向對象轉變的道路。
2、共享成員。
3、Try…Catch結構化異常處理。
4、Delegate和Interface。
5、名稱空間。
6、對自由線程的支持。
特別的是,VisualBasic.NET大大減少了VisualBasic語言的關鍵字,如GoSub、PSet等等。原先的VisualBasic有多達120個關鍵字,這給寫程序帶來了很大的不便,現(xiàn)在經(jīng)過精簡,VisualBasic脫下了這個沉重的包袱。
VisualBasic.NET現(xiàn)在是一門現(xiàn)代的、強壯的、面向對象的、簡單的可視化開發(fā)語言。強大的語言功能吸引了很多開發(fā)者。歷史是在不斷重演的,VisualBasic.NET如今的處境和VisualBasic4.0很相似,由于兼容性變差,人氣也降低了。同時由于依附于.NETFramework,程序發(fā)布造成了一定的困難。現(xiàn)在國內(nèi)使用VisualBasic.NET的人相對于VisualBasic6.0來講顯得很少。但是憑借VisualBasic.NET強大的語言功能和MS的支持,VisualBasic.NET一定會顯出它的光輝來。
VisualBasic.NET2003
2003——穩(wěn)中求變的新版本
VisualBasic.NET2003是一個相當穩(wěn)重的版本,改變很少,但對小處有很多改進。首先VisualBasic6.0升級向導做了很大改進,這給從老版本痛苦升級的人帶來了更多一些的希望。其次在IDE方面,VisualBasic.NET2003修正了許多錯誤,還讓事件處理恢復了6.0的開發(fā)體驗。語言方面只有兩項改進:
1、在For、ForEach語句中聲明循環(huán)變量。
2、增加了數(shù)學移位運算符"<<"和">>"。
在這個比較成熟穩(wěn)定的新版本下,許多VisualBasic的愛好者開始重新了解VisualBasic.NET,社區(qū)里面也漸漸熱鬧起來。但是,有些使用C#的開發(fā)者堅持認為VisualBasic.NET是垃圾,盡管當時的VisualBasic.NET擁有比C#更多的功能和更好的IDE(IntegratedDevelopment,集成開發(fā)環(huán)境)。這說明程序員們不了解VisualBasic.NET成為它普及的最大障礙。
VisualBasic2005
2005——完美主義的VisualBasic
為了讓VisualBasic有最佳的開發(fā)體驗,VisualBasic2005的設計者絞盡了腦汁。這次VisualBasic2005光語言上的改進就足以讓VisualBasic的開發(fā)人員高興一陣子。
VisualBasic2005具有下列新增和加強的功能:
1、泛型。
2、運算符重載。
3、PartialClass。
4、窗體的默認實例。
5、My偽命名空間。
6、其他語法的多種改進。
現(xiàn)在用VisualBasic2005只要一行代碼就可以讀寫注冊表、訪問文件、讀寫串口、獲取應用程序信息……用VisualBasic2005完全可以稱作享受開發(fā)。而泛型、運算符重載等功能又可以讓VisualBasic的開發(fā)人員深入.NETFramework的全部功能,開發(fā)出最優(yōu)秀的應用程序。
VisualBasic2008
2008——功能極強又簡單易用
VisualBasic2008具有下列新增和加強的功能:
1、Language-integratedquery(LINQ)。
2、物件關聯(lián)式設計工具會協(xié)助開發(fā)人員建立和編輯,使應用程序連接至資料庫的linktosql類別。
3、Lambda表達式。
4、XML數(shù)據(jù)結構。
VisualBasic2010
2010——下一代開發(fā)平臺
VisualBasic2010具有下列新增和加強的功能:
1、數(shù)組初始值設定項。
2、集合初始值設定項。
3、內(nèi)聯(lián)Lambda表達式。
4、自動實現(xiàn)屬性。
5、泛化。
6、No-PIA部署。
7、與Python的集成。
8、并行計算擴展。
VisualBasic2012(RC)
VisualBasic2012RC具有下列新增和加強的功能:
1、異步功能
2、迭代器
3、調用層次結構
4、調用方信息
5、全局命名空間語句中的關鍵字
VisualBasic2013
主要新功能
1支持Windows8.1App開發(fā)
2敏捷項目管理(AgilePortfolioManagement)
3版本控制
4輕量代碼注釋(lightweightcodecommenting)
5整合微軟SystemCenterIT管理平臺
6定價與許可
語言標準
注釋方式
在VB中,注釋有2種方式[2]。
1.以Rem關鍵字開頭,并且Rem關鍵字與注釋內(nèi)容之間要加一個空格。注釋可以是單獨的一行,也可以寫在其他語句行的后面。如果在其他語句行后使用Rem關鍵字,則必須使用冒號(:)與語句隔開。
2.也可以使用一個撇號(')來代替Rem關鍵字。若使用撇號,則在其他語句行使用時不必加冒號。
如:Msgbox"答案是"&a+b,vbinformation,"A+Bproblem"'彈出a+b的結果
特征衡量
在VisualBasic中,可通過屬性、方法和事件來說明和衡量一個對象的特征。
事件(Event)
事件是指發(fā)生在某一對象上的事情。事件又可分為鼠標事件和鍵盤事件。例如,在命令按鈕(CommandButton)這一對象上可能發(fā)生鼠標單擊(Click)、鼠標移動(MouseMove)、鼠標按下(MouseDown)等鼠標事件,也可能發(fā)生鍵盤按下(KeyDown)等鍵盤事件??傊录该髁藢ο?ldquo;什么情況下做?”,常用于定義對象發(fā)生某種反映的時機和條件。
方法(Method)
方法是用來控制對象的功能及操作的內(nèi)部程序。例如,人具有說話、行走、學習、睡覺等功能,在visualBasic中,對象所能提供的這些功能和操作,就稱作“方法”。以窗體為例,它具有顯示(show)或隱藏(hide)的方法??傊椒ㄖ该髁藢ο?ldquo;能做什么?”,常用于定義對象的功能和操作。
屬性(Property)
屬性是指用于描述對象的名稱、位置、顏色、字體等特征的一些指標??梢酝ㄟ^屬性改變對象的特性。
有些屬性可以在設計時通過屬性窗口來設置,不用編寫任何代碼;而有些屬性則必須通過編寫代碼,在運行程序的同時進行設置??梢栽谶\行時讀取和設置取值的屬性成為讀寫屬性,只能讀取的屬性成為只讀屬性。總之屬性指明了對象“是什么樣的?”,常用于定義對象的外觀。
對象與類
對象(Object)
VisualBasic.NET具有“面向對象”的特性,VisualBasic.NET應用種程序的基本單元是對象,用VisualBasic.NET編程就是用“對象”組裝程序。這種“面向對象”的編程方法與傳統(tǒng)的全部用代碼編制程序的方法有很大區(qū)別,就像用集成電路芯片組裝電視機和用三極管,二極管組裝電視機的區(qū)別一樣。顯然,“面向對象”的編程方法比傳統(tǒng)的編程方法更簡單,更方便,并且編寫出的程序也更加穩(wěn)定。因此,“對象”可以被看做VisualBasic.NET程序設計的核心。
在VisualBasic.NET程序設計中,對象中還可以包含頭,手,腿,腳等部位,其中的每個部位又可以單獨作為作為被研究的對象。在VisualBasic.NET程序設計中,整個應用程序就是一個對象,應用程序中又包含著窗體(Form),命令按鈕(Command),菜單(Menu)等對象。
類(Class)
在VisualBasic.NET中,對象是由類創(chuàng)建的,因此對象可以說是類的具體實例,這就好比是蛋糕和做蛋糕的模具之間的關系。
各種不同的對象分屬于各種不同的種類。同一類對象可能具有一些不同的特征(或是說同一類對象不一定具有完全相同的特性);具有某些相同的特性的對象,不一定是同一類對象,這就好比是人和猴子雖然都有身高、性別等特征,但二者之間還存在著智商、語言等特性差異,這兩個對象之間的特性相差很多,根本就不能算是同一類對象。而男人和女人,雖然有著性別、生理等方面的差異,但他們絕大部分特性相同,可以算是同一種類。由此,可以歸結為一句話:同一類對象的絕大部分特性相同。
相關控件
窗體項目。所以VisualBasic中的控件大多和窗體項目有關。
分類
根據(jù)應用類型,VisualBasic控件可以分為如下3類:
內(nèi)置控件
內(nèi)置控件即VisualBasic工具箱中的控件,里面包含了常見窗體程序所需要的控件
ActiveX控件
ActiveX控件包含不同版本VisualBasic提供的控件和僅在專業(yè)版、企業(yè)版中提供的控件,并且還包含第三方提供的控件。
ActiveX控件是對VisualBasic內(nèi)置控件的擴充,開發(fā)人員可以根據(jù)個人需要進行隨意擴充,擴充的ActiveX控件將在工具箱中顯示。
在工具箱中添加ActiveX控件的流程如下。
(1)打開一個VisualBasic6.0項目,一次選擇【工程】->【部件】命令,在彈出的“部件”對話框中選擇“控件”選項卡,在列表框中選擇要添加的ActiveX控件
?。?)返回VisualBasic主界面,此時添加的ActiveX控件已被添加到工具箱內(nèi)
可插入對象
在VisualBasic的工具欄中,可以放置其他的第三方對象,可以像使用控件一樣輕松使用。添加后的對象也在工具箱中顯示,添加對象的方法和添加ActiveX控件類似,只要依次選擇【工程】->【部件】命令,在彈出的“部件”對話框中選擇“可插入對象”選項卡,再選擇添加的對象即可。
有關第三方對象,可以從受信任的來源下載控件,并通過添加引用來導入。支持這些自定義的Vb的控件有:ComponentOneStudio,Spread,ActiveReports、MultiRow等。
語言特點
基本特點
VB的中心思想就是要便于程序員使用,無論是新手或者專家。VB使用了可以簡單建立應用程序的GUI系統(tǒng),但是又可以開發(fā)相當復雜的程序。VB的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼來指定組件的屬性和方法。因為默認的屬性和方法已經(jīng)有一部分定義在了組件內(nèi),所以程序員不用寫多少代碼就可以完成一個簡單的程序。過去的版本里面VB程序的性能問題一直被放在了桌面上,但是隨著計算機速度的飛速增加,關于性能的爭論已經(jīng)越來越少。
窗體控件的增加和改變可以用拖放技術實現(xiàn)。一個排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)。每個控件都有自己的屬性和事件。默認的屬性值會在控件創(chuàng)建的時候提供,但是程序員也可以進行更改。很多的屬性值可以在運行時候隨著用戶的動作和修改進行改動,這樣就形成了一個動態(tài)的程序。舉個例子來說:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運行時候每當用戶更改窗口大小,控件也會隨之改變位置。在文本框中的文字改變事件中加入相應的代碼,程序就能夠在文字輸入的時候自動翻譯或者阻止某些字符的輸入。
VB的程序可以包含一個或多個窗體,或者是一個主窗體和多個子窗體,類似于操作系統(tǒng)的樣子。有很少功能的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。
VB的組件既可以擁有用戶界面,也可以沒有。這樣一來服務器端程序就可以處理增加的模塊。
VB使用參數(shù)計算的方法來進行垃圾收集,這個方法中包含有大量的對象,提供基本的面向對象支持。因為越來越多組件的出現(xiàn),程序員可以選用自己需要的擴展庫。和有些語言不一樣,VB對大小寫不敏感,但是能自動轉換關鍵詞到標準的大小寫狀態(tài),以及強制使得符號表入口的實體的變量名稱遵循書寫規(guī)則。默認情況下字符串的比較是對大小寫敏感的,但是可以關閉這個功能。
VB使得大量的外界控件有了自己的生存空間。大量的第三方控件針對VB提供。VB也提供了建立、使用和重用這些控件的方法,但是由于語言問題,從一個應用程序創(chuàng)建另外一個并不簡單。
語言缺點
VisualBasic語言具有不支持繼承、無原生支持多線程、異常處理不完善等三項明顯缺點,使其有所局限性(此些缺點皆已在vb.net獲得改進)。
不支持繼承
VB5.0和VB6.0都是基于對象的編程語言,但是不包含繼承特性。VB中提供了特殊的類的功能,但是還是不能滿足程序員的需求。
無原生支持多線程
VisualBasic對于多線程無原生支持,只能通過WindowsAPI的調用實現(xiàn),且極其的不穩(wěn)定。因為在API創(chuàng)建的線程中,并沒有自動初始化運行時庫,導致部分的函數(shù)無法使用。一般的,在VB6等早期的VB開發(fā)環(huán)境下,使用API創(chuàng)建線程的目的是完成容易使程序假死的大量數(shù)據(jù)或者邏輯的計算。
異常處理不完善
VisualBasic中內(nèi)置異常處理,即使未寫異常處理代碼,一旦用戶出錯也會彈出一個明確寫出出錯原因對話框,接著程序終止。
VisualBasic中可以使用Err.Raise拋出異常。對系統(tǒng)及用戶拋出的異常的處理常用兩種模式:一是使用OnErrorResumeNext處理錯誤;另一種是使用OnErrorGoto將運行引入錯誤處理代碼。但相對C++等語言而言,這樣的異常處理破壞了代碼的結構。
派生語言
微軟開發(fā)了一系列由VisualBasic所派生的語言:
VBA
VisualBasicforApplications(VBA):包含在微軟的應用程序中(如MicrosoftOffice),以及類似WordPerfect、Office這樣第三方的產(chǎn)品里面。VBA這樣嵌入在各種應用程序中看起來有些矛盾,但是它的功能和VB一樣強大。
VBS
VBScript(VBS):是默認的ASP語言,還可以用在Windows腳本編寫和網(wǎng)頁編碼中。盡管它的語法類似于VB,但是它卻是一種完全不同的語言。VBS不使用VB運行庫運行,而是由Windows腳本主機解釋執(zhí)行。這兩種語言之中的不同點影響ASP網(wǎng)站的表現(xiàn)。
vb.net
VisualBasic.NET(vb.net):當微軟準備開發(fā)一種新的編程工具的時候,第一決定就是利用VB6.0來進行舊改,或者就是重新組建工程開發(fā)新工具。微軟后來開發(fā)了VB的繼任者VisualBasic.NET,同時也是.NET平臺的一部分。vb.net編程語言是一種真正的面向對象編程語言,和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不同。它使用基于文件夾的模型,所有項目均放置在項目文件夾層次結構中。
3.vb.net中使用ado.net來訪問數(shù)據(jù)庫,ado.net是.NETFramework的一部分。在vb.net中實現(xiàn)數(shù)據(jù)訪問的方法主要有兩種:其一是在程序設計階段,通過創(chuàng)建、配置數(shù)據(jù)適配器DataAdapter和生成數(shù)據(jù)集DataSet;其二是在運行中,通過編程方式動態(tài)創(chuàng)建配置數(shù)據(jù)適配器和創(chuàng)建、生成數(shù)據(jù)集。
4.在vb.net中是使用asp.net技術來編寫Web頁面的。在asp.net中使用的也不是腳本語言,而是真正意義的編程語言。憑借asp.net的Web應用程序、XMLWebServices等基于Web的功能,使得vb.net開發(fā)Web頁面與開發(fā)Windows應用程序很相似,Web頁面代碼也顯得有條有理了。
5.vb.net已經(jīng)成為完全的面向對象的編程語言,并且新增更多語言特性。
VisualBasic.NET有提供轉換精靈,協(xié)助開發(fā)者將VB6.0的程序代碼轉換為vb.net相對應之程序代碼。
語言爭議
程序員中,對于各種語言孰優(yōu)孰劣的爭論并不少見,VisualBasic更是成為了一種充滿了爭議的語言。
反方觀點
一些批評家認為VisualBasic是一種給兒童和菜鳥程序員的語言,它自從設計開始就是一種簡單的語言。一些C++和Java中的特性在VB中并沒有出現(xiàn)。在感受開發(fā)的方便和快速的同時,一些類似于編譯時進行類型和聲明檢查的功能在默認情況下是關閉的。這樣一些程序員一邊感嘆VB的易用性,一邊沮喪地看著一些類似于“未定義類型”錯誤的發(fā)生。
一些批評家認為VisualBasic的簡單特性使得其在未來具有傷害性。很多人自學了VB,但是并沒有學到好的編程習慣。當VB進入課堂的時候,學生們不會學到很多基礎的程序技術和結構,因為很多技術已經(jīng)包含在那些對用戶可見的組件里面了。不用學習標準的編程習慣,因為VB具有可視化的特性,所以導致了一些莫名其妙的代碼的產(chǎn)生。而且很多錯誤和警告的檢查默認情況下都是關閉的,程序員很難找到隱藏的錯誤。有經(jīng)驗的程序員在用VB編程的時候都會把這些選項打開。
一些批評家批評微軟簡單地拷貝了BASIC的思想到VisualBasic中。
VisualBasic開發(fā)的程序只能運行在MicrosoftWindows中;且運行時還需要VB運行庫。
VisualBasic不能很好的綜合Windows的基礎API,很多時候要使用低級運算的“小伎倆”來進行編程。而C語言的低級內(nèi)存運算比VB的要簡單得多。
VB語言作為計算機語言的入門,是很多學生學習編程的入門級語言,大學生利用VB語言開始了他們學習計算機的世界。
正方觀點
任何工具都是針對不同任務發(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)