複製鏈接
請複製以下鏈接發送給好友

Visual Basic

(計算機編程語言)

鎖定
Visual Basic(簡稱VB)是Microsoft開發的一種面向對象編程語言。 使用 Visual Basic即可快速、輕鬆地創建類型安全的.NET應用。 [4] 
“Visual” 指的是開發圖形用户界面 (GUI) 的方法——不需編寫大量代碼去描述界面元素的外觀和位置,而只要把預先建立的對象add到屏幕上的一點即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 語言,是一種在計算技術發展歷史上應用得最為廣泛的語言。
Visual Basic源自於BASIC編程語言。VB擁有圖形用户界面(GUI)和快速應用程序開發(RAD)系統,可以輕易的使用DAORDOADO連接數據庫,或者輕鬆的創建Active X控件,用於高效生成類型安全和麪向對象的應用程序 [2]  。程序員可以輕鬆的使用VB提供的組件快速建立一個應用程序。
軟件名稱
Visual Basic
軟件平台
.NET
上線時間
1991年4月
最近更新時間
2022年9月22日 [5] 
軟件語言
Visual Basic
開發商
Microsoft
軟件授權
Microsoft
軟件版本
Visual Basic 16.9 [5] 
軟件大小
188 MB

Visual Basic產生背景

VB 6.0 啓動畫面 VB 6.0 啓動畫面
1991年4月,微軟公司推出了 Visual Basic 1.0Windows版本,這個連接編程語言用户界面的進步被稱為Tripod(有些時候叫做Ruby),最初的設計是由阿蘭·庫珀(Alan Cooper)完成的。在當時,它是第一個“可視”的編程軟件。 [1]  [3] 
而後多年,Visual Basic經過多次發展,其發展歷程展示在“Visual Basic發展簡史”表中。
在2020年3月11日,微軟宣佈不會再開發VB或增加功能。
Visual Basic 發展簡史
發佈日期
名稱
説明
.NET Framework 引入之前
1991-04
Visual Basic 1.0 Windows 版本

1992-09
Visual Basic 1.0 DOS 版本

1992-11
Visual Basic 2.0
對於上一個版本的界面和速度都有所改善。
1993-06
Visual Basic 3.0
包含一個數據引擎,可以直接讀取 Access 數據庫。
1995-08
Visual Basic 4.0
發佈了32位和16位的版本。其中包含了對類的支持。
1997-02
Visual Basic 5.0
包含了對用户自建控件的支持,且從這個版本開始 VB 可以支持中文。
1998-10
Visual Basic 6.0

.NET Framework 引入之後
2002-02
Visual Basic .NET 2002 (7.0)
由於其使用了新的核心和特性,所以很多 VB 的程序員都要改寫程序。
2003-04
Visual Basic .NET 2003 (7.1)
主要改進了運行狀況,提升了 IDE 以及運行時穩定性。
2005-11
Visual Basic 2005 (8.0)
是 vb .net 的重大轉變,微軟決意在其名稱中去掉了".NET"部份。VB2005 提供 My 偽命名空間、泛型、操作符重載等新語言特性。
2007-11
Visual Basic 2008 (9.0)
提供支持 IIF 函數、匿名類、LINQ、Lambda 表達式、XML 數據結構等新語言特性。
2008-03
微軟宣佈結束對於 VB 6.0 的延長支持。
2010-04
Visual Studio 2010 (10.0)
提供支持 Dynamic Language Runtime (DLR)、自動實現屬性、集合初始化、不需要在代碼斷行書寫時輸入下劃線“_”等新語言特性。
2012-05
Visual Studio 2012 (11.0) RC
提供支持更簡易的異步編程(Asynchronous Programming)、Iterator、擴充 Global 關鍵詞等新語言特性。
2013-11-13-2
Visual Studio 2013

2014-11-13
Visual Studio 2015
Windows、iOS 以及 Android 應用開發

Visual Basic語言特色

製作應用程序安裝盤等為用户提供了友好的集成開發環境,具體表現在:
可視化的設計平台:在使用傳統的程序設計語言編程時,一般需要通過編寫程序來設計應用程序的界面(如界面的外觀和位置等),在設計過程中看不見界面的實際效果。而在Visual Basic 6.0中,採用面向對象程序設計方法(Object-Oriented Programming),把程序和數據封裝起來作為一個對象,每個對象都是可視的。開發人員在界面設計時,可以直接用Visual Basic 6.0的工具箱在屏幕上"畫"出窗口、菜單、命令按鍵等不同類型的對象,併為每個對象設置屬性。開發人員要做的僅僅是對要完成事件過程的對象進行編寫代碼,因而程序設計的效率可大大提高。
事件驅動的編程機制:面向過程的程序是由一個主程序和若干個子程序及函數組成的。程序運行時總是先從主程序開始,由主程序調用子程序和函數,開發人員在編程時必須事先確定整個程序的執行順序。而Visual Basic 6.0事件驅動的編程是針對用户觸發某個對象的相關事件進行編碼,每個事件都可以驅動一段程序的運行。開發人員只要編寫響應用户動作的代碼。這樣的應用程序代碼精簡,比較容易編寫與維護。
結構化的程序設計語言:Visual Basic 6.0具有豐富的數據類型和眾多的內部函數。其採用模塊化和結構化程序設計語言,結構清晰,語法簡單,容易學習。
強大的數據庫功能:Visual Basic 6.0利用數據控件可以訪問Access、FoxPro等多種數據庫系統,也可以訪問Excel、Lotus等多種電子表格
ActiveX技術:ActiveX發展了原有的OLE技術,使開發人員擺脱了特定語言的束縛,方便地使用其他應用程序提供的功能,使Visual Basic 6.0能夠開發集聲音、圖像、動畫、字處理、電子表格、Web等對象於一體的應用程序。
網絡功能:Visual Basic 6.0提供的DHTML(動態HTML設計工具可以使開發者動態地創建和編輯Web頁面,使用户能開發出多功能的網絡應用軟件

Visual Basic語言基礎

Visual Basic註釋方式

在VB中,註釋有2種方式。
1.以Rem關鍵字開頭,並且Rem關鍵字與註釋內容之間要加一個空格。註釋可以是單獨的一行,也可以寫在其他語句行的後面。如果在其他語句行後使用Rem關鍵字,則必須使用冒號(:)與語句隔開。
2.使用一個撇號(')來代替Rem關鍵字。若使用撇號,則在其他語句行使用時不必加冒號。

Visual Basic特徵衡量

在 Visual Basic 中,可通過屬性方法事件來説明和衡量一個對象的特徵。
事件(Event)
事件是指發生在某一對象上的事情。事件又可分為鼠標事件和鍵盤事件。例如,在命令按鈕(Command Button)這一對象上可能發生鼠標單擊(Click)、鼠標移動(Mouse Move)、鼠標按下(Mouse Down)等鼠標事件,也可能發生鍵盤按下(Key Down)等鍵盤事件。總之,事件指明瞭對象“什麼情況下做?”,常用於定義對象發生某種反映的時機和條件。
方法(Method)
方法是用來控制對象的功能及操作的內部程序。例如,人具有説話、行走、學習、睡覺等功能,在visual Basic中,對象所能提供的這些功能和操作,就稱作“方法”。以窗體為例,它具有顯示(show)或隱藏(hide)的方法。總之,方法指明瞭對象“能做什麼?”,常用於定義對象的功能和操作。
屬性(Property)
屬性是指用於描述對象的名稱、位置、顏色、字體等特徵的一些指標。可以通過屬性改變對象的特性。
有些屬性可以在設計時通過屬性窗口來設置,不用編寫任何代碼;而有些屬性則必須通過編寫代碼,在運行程序的同時進行設置。可以在運行時讀取和設置取值的屬性成為讀寫屬性,只能讀取的屬性成為只讀屬性。總之屬性指明瞭對象“是什麼樣的?”,常用於定義對象的外觀。

Visual Basic對象與類

對象(Object)
Visual Basic.NET 具有“面向對象”的特性,Visual Basic.NET 應用種程序的基本單元是對象,用 Visual Basic.NET 編程就是用“對象”組裝程序。這種“面向對象”的編程方法與傳統的全部用代碼編制程序的方法有很大區別,就像用集成電路芯片組裝電視機和用三極管二極管組裝電視機的區別一樣。顯然,“面向對象”的編程方法比傳統的編程方法更簡單,更方便,並且編寫出的程序也更加穩定。因此,“對象”可以被看做 Visual Basic.NET 程序設計的核心。
在 Visual Basic.NET程序設計中,對象中還可以包含頭,手,腿,腳等部位,其中的每個部位又可以單獨作為作為被研究的對象。在 Visual Basic.NET程序設計中,整個應用程序就是一個對象,應用程序中又包含着窗體(Form),命令按鈕(Command),菜單(Menu)等對象。
類(Class)
在 Visual Basic.NET中,對象是由類創建的,因此對象可以説是類的具體實例,這就好比是蛋糕和做蛋糕的模具之間的關係。
各種不同的對象分屬於各種不同的種類。同一類對象可能具有一些不同的特徵(或是説同一類對象不一定具有完全相同的特性);具有某些相同的特性的對象,不一定是同一類對象,這就好比是人和猴子雖然都有身高、性別等特徵,但二者之間還存在着智商、語言等特性差異,這兩個對象之間的特性相差很多,根本就不能算是同一類對象。而男人和女人,雖然有着性別、生理等方面的差異,但他們絕大部分特性相同,可以算是同一種類。由此,可以歸結為一句話:同一類對象的絕大部分特性相同。

Visual Basic相關控件

根據應用類型,Visual Basic控件可以分為如下3類:
內置控件
內置控件即Visual Basic工具箱中的控件,裏面包含了常見窗體程序所需要的控件
Visual Basic中,大部分的程序執行都是在事件中完成的。
在代碼中,控件的每一個事件都需要聲明,聲明方法類似一個子過程的聲明。大部分的控件在雙擊控件進入代碼界面的時候都會自動補完該控件的最常用事件的聲明。具體代碼示範如下:
ActiveX控件包含不同版本Visual Basic提供的控件和僅在專業版、企業版中提供的控件,並且還包含第三方提供的控件。ActiveX控件是對Visual Basic內置控件的擴充,開發人員可以根據個人需要進行隨意擴充,擴充的ActiveX控件將在工具箱中顯示。
可插入對象
在Visual Basic的工具欄中,可以放置其他的第三方對象,可以像使用控件一樣輕鬆使用。添加後的對象也在工具箱中顯示。有關第三方對象,可以從受信任的來源下載控件,並通過添加引用來導入。支持這些自定義的Vb的控件有:ComponentOne Studio,SpreadActiveReports、MultiRow等。

Visual Basic語言特點

Visual Basic基本特點

VB 的中心思想就是要便於程序員使用,無論是新手或者專家。VB使用了可以簡單建立應用程序的GUI 系統,但是又可以開發相當複雜的程序。VB 的程序是一種基於窗體的可視化組件安排的聯合,並且增加代碼來指定組件的屬性和方法。因為默認的屬性和方法已經有一部分定義在了組件內,所以程序員不用寫多少代碼就可以完成一個簡單的程序。過去的版本里面 VB 程序的性能問題一直被放在了桌面上,但是隨着計算機速度的飛速增加,關於性能的爭論已經越來越少。
窗體控件的增加和改變可以用拖放技術實現。一個排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)屬性值會在控件創建的時候提供,但是程序員也可以進行更改。很多的屬性值可以在運行時候隨着用户的動作和修改進行改動,這樣就形成了一個動態的程序。舉個例子來説:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運行時候每當用户更改窗口大小,控件也會隨之改變位置。在文本框中的文字改變事件中加入相應的代碼,程序就能夠在文字輸入的時候自動翻譯或者阻止某些字符的輸入。
VB 的程序可以包含一個或多個窗體,或者是一個主窗體和多個子窗體,類似於操作系統的樣子。有很少功能的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。
VB 的組件既可以擁有用户界面,也可以沒有。這樣一來服務器端程序就可以處理增加的模塊。
VB 使用參數計算的方法來進行垃圾收集,這個方法中包含有大量的對象,提供基本的面向對象支持。因為越來越多組件的出現,程序員可以選用自己需要的擴展庫。和有些語言不一樣,VB 對大小寫不敏感,但是能自動轉換關鍵詞到標準的大小寫狀態,以及強制使得符號表入口的實體的變量名稱遵循書寫規則。默認情況下字符串的比較是對大小寫敏感的,但是可以關閉這個功能。
VB 使得大量的外界控件有了自己的生存空間。大量的第三方控件針對 VB 提供。VB 也提供了建立、使用和重用這些控件的方法,但是由於語言問題,從一個應用程序創建另外一個並不簡單。

Visual Basic語言缺點

Visual Basic 語言具有不支持繼承無原生支持多線程異常處理不完善等三項明顯缺點,使其有所侷限性(此些缺點皆已在 vb .net 獲得改進)。
不支持繼承
VB 5.0 和 VB 6.0 都是基於對象編程語言,但是不包含繼承特性。VB 中提供了特殊的類的功能,但是還是不能滿足程序員的需求。
無原生支持多線程
Visual Basic 對於多線程無原生支持,只能通過Windows API的調用實現,且極其的不穩定。因為在API創建的線程中,並沒有自動初始化運行時庫,導致部分的函數無法使用。一般的,在VB6等早期的VB開發環境下,使用API創建線程的目的是完成容易使程序假死的大量數據或者邏輯的計算。
異常處理不完善
Visual Basic 中內置異常處理,即使未寫異常處理代碼,一旦用户出錯也會彈出一個明確寫出出錯原因對話框,接着程序終止。
Visual Basic 中可以使用 Err.Raise拋出異常。對系統及用户拋出的異常的處理常用兩種模式:一是使用 On Error Resume Next 處理錯誤;另一種是使用 On Error Goto 將運行引入錯誤處理代碼。但相對 C++ 等語言而言,這樣的異常處理破壞了代碼的結構。

Visual Basic派生語言

微軟開發了一系列由 Visual Basic 所派生的語言:

Visual BasicVBA

Visual Basic for Applications(VBA):包含在微軟的應用程序中(如Microsoft Office),以及類似WordPerfect、Office這樣第三方的產品裏面。VBA 這樣嵌入在各種應用程序中看起來有些矛盾,但是它的功能和 VB 一樣強大。

Visual BasicVBS

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

Visual Basicvb.net

Visual Basic.net(vb.net):當微軟準備開發一種新的編程工具的時候,第一決定就是利用 VB 6.0 來進行舊改,或者就是重新組建工程開發新工具。微軟後來開發了 VB 的繼任者Visual Basic.net,同時也是.net平台的一部分。vb.net編程語言是一種真正的面向對象編程語言,和 VB 並不完全兼容。
Visual Basic.net(vb.net) 是新一代的 VB 語言,並不只是 VB 6.0 的簡單升級,vb.net 與 VB (泛指 VB 6.0 之前的版本) 之間有非常大的區別。其新特性主要表現在以下幾方面:
1.vb.net 完全集成到 Visual Studio 集成開發環境中,在這種集成開發環境與 VB 在若干方面有差異。主要體現在窗體的佈局以及菜單等方面都有所不同。
2.vb.net 項目與 VB 不同。它使用基於文件夾的模型,所有項目均放置在項目文件夾層次結構中。
3.vb.net 中使用ado.net來訪問數據庫,ado.net是.netFramework的一部分。在 vb.net 中實現數據訪問的方法主要有兩種:其一是在程序設計階段,通過創建、配置數據適配器 DataAdapter 和生成數據集 DataSet;其二是在運行中,通過編程方式動態創建配置數據適配器和創建、生成數據集。
4.在 vb.net 中是使用asp.net技術來編寫 Web 頁面的。在asp.net中使用的也不是腳本語言,而是真正意義的編程語言。憑藉asp.net的 Web 應用程序、XML Web Services 等基於 Web 的功能,使得 vb.net 開發 Web 頁面與開發 Windows 應用程序很相似,Web 頁面代碼也顯得有條有理了。
5.vb.net 已經成為完全的面向對象的編程語言,並且新增更多語言特性。
Visual Basic.net有提供轉換精靈,協助開發者將 VB 6.0 的程序代碼轉換為 vb.net 相對應之程序代碼。

Visual Basic語言爭議

程序員中,對於各種語言孰優孰劣的爭論並不少見,Visual Basic 更是成為了一種充滿了爭議的語言。

Visual Basic反方觀點

一些批評家認為 Visual Basic 是一種給兒童和菜鳥程序員的語言,它自從設計開始就是一種簡單的語言。一些C++和Java中的特性在 VB 中並沒有出現。在感受開發的方便和快速的同時,一些類似於編譯時進行類型和聲明檢查的功能在默認情況下是關閉的。這樣一些程序員一邊感嘆 VB 的易用性,一邊沮喪地看着一些類似於“未定義類型”錯誤的發生。
一些批評家認為 Visual Basic 的簡單特性使得其在未來具有傷害性。很多人自學了 VB,但是並沒有學到好的編程習慣。當 VB 進入課堂的時候,學生們不會學到很多基礎的程序技術和結構,因為很多技術已經包含在那些對用户可見的組件裏面了。不用學習標準的編程習慣,因為 VB 具有可視化的特性,所以導致了一些莫名其妙的代碼的產生。而且很多錯誤和警告的檢查默認情況下都是關閉的,程序員很難找到隱藏的錯誤。有經驗的程序員在用 VB 編程的時候都會把這些選項打開。
一些批評家批評微軟簡單地拷貝了BASIC的思想到 Visual Basic 中。
Visual Basic 開發的程序只能運行在Microsoft Windows中;且運行時還需要 VB 運行庫
Visual Basic 不能很好的綜合Windows的基礎 API,很多時候要使用低級運算的“小伎倆”來進行編程。而C 語言的低級內存運算比 VB 的要簡單得多。
VB語言作為計算機語言的入門,是很多學生學習編程的入門級語言,大學生利用VB語言開始了他們學習計算機的世界。

Visual Basic正方觀點

任何工具都是針對不同任務發明的,如同刀劍和鋤頭,刀劍高手未必是鋤地高手,刀劍高手除了殺人,不能生產糧食養人,所以任何工具歧視都是錯誤的。Visual Basic的強大在於能夠快速開發企業級軟件,使程序員有更多的時間和精力考慮用户的需求,生產出滿足用户需要的軟件,特別適合大型企業級軟件的開發,比如MIS、MRP、MRP IIERP等重量級的軟件,而不是花很長時間去製作一個只有幾K的DLL。
Visual Basic 的最大的優勢在於它的易用性,可以讓經驗豐富的VB程序員或是剛剛懂得皮毛的人都能用自己的方式快速開發程序。而且 VB 的程序可以非常簡單的和數據庫連接。比如利用控件可以綁定數據庫,這樣一來用VB寫出的程序就可以掌握數據庫的所有信息而不用寫一行代碼。
Visual Basic 開發的程序雖然僅在 Microsoft Windows 中得到原生支持,但 Linux 等平台中存在着一些項目,使得能夠使用 Visual Basic 的代碼在這些平台下順利編譯。
任何語言開發的程序都需要一定運行時環境的支持,對於大型軟件系統來説,需要支撐是很正常的,正所謂“站在巨人的肩膀上”。傳統 Visual Basic 開發的程序需要 VB運行庫的支持;Visual Basic .NET 開發的程序(如C#)需要 .Net Framework 的支持;Java 開發的程序需要 Java虛擬機的支持。
參考資料