|
|
visual basic(vb)是一種由微軟公司開發的包含協助開發環境的事件驅動編程語言。從任何標準來說,vb都是世界上使用人數最多的語言——不僅是盛贊vb的開發者還是抱怨vb的開發者的數量。它源自於basic編程語言。vb擁有圖形用戶界面(gui)和快速應用程序開發(rad)係統,可以輕易的使用dao、rdo、ado連接數據庫,或者輕鬆的創建activex控件。程序員可以輕鬆的使用vb提供的組件快速建立一個應用程序。
發展歷史
1991年,微軟公司推出了visual basic 1.0版。這在當時引起了很大的轟動。這個連接編程語言和用戶界面的進步被稱為tripod(有些時候叫做ruby),最初的設計是由阿蘭·庫珀(alan cooper)完成的。許多專傢把vb的出現當做是軟件開發史上的一個具有劃時代意義的事件。其實,以我們現在的目光來看,vb1.0的功能實在是太弱了;(不過最近vb6.0, vb.net的功能相當大!)。但在當時,它是第一個“可視”的編程軟件。這使得程序員欣喜之極,都嘗試在vb的平臺上進行軟件創作。微軟也不失時機地在四年內接連推出vb2.0,vb3.0,4.0三個版本。並且從vb3開始,微軟將access的數據庫驅動集成到了vb中,這使得vb的數據庫編程能力大大提高。從vb4開始,vb也引入了面嚮對象的程序設計思想。vb功能強大,學習簡單。而且,vb還引入了“控件”的概念,使得大量已經編好的vb程序可以被我們直接拿來使用。vb1.0的dos版本vb1.0於1991年發佈。這個連接編程語言和用戶界面的進步被稱為tripod(有些時候叫做ruby),最初的設計是由阿蘭·庫珀(alan cooper)完成的
2002年visual basic .net 2002 (v7.0)問世,2003年visual basic .net 2003 (v7.1)問世,2005年11月7日visual basic 2005 (v8.0)問世,同時間推出visual basic 2005的免費簡化版本visual basic 2005 express edition給visual basic初學者及學生使用。
vb 2005的“顯著”優點是,可以直接編寫出xp風格的按鈕,以及其他的控件。但是其編寫的小程序占用近10mb的內存。
通過幾年的發展,它已成為一種專業化的開發語言和環境。用戶可用visual basic快速創建windows程序,現在還可以編寫企業水平的客戶端/服務器程序及強大的數據庫應用程序。
vb會吸引更多的贊譽和批評,也會繼續為廣大的用戶和程序員使用。它非常適合用來開發擁有友好界面的程序(比如針對終端的數據),但是不適合開發其它程序(比如聯合計算程序)。
語言特性
一個典型的vb進程vb的中心思想就是要便於程序員使用,無論是新手或者專傢。vb使用了可以簡單建立應用程序的gui係統,但是又可以開發相當復雜的程序。vb的程序是一種基於窗體的可視化組件安排的聯合,並且增加代碼來指定組建的屬性和方法。因為默認的屬性和方法已經有一部分定義在了組件內,所以程序員不用寫多少代碼就可以完成一個簡單的程序。過去的版本裏面vb程序的性能問題一直被放在了桌面上,但是隨着計算機速度的飛速增加,關於性能的爭論已經越來越少。
窗體控件的增加和改變可以用拖放技術實現。一個排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)。每個控件都有自己的屬性和事件。默認的屬性值會在控件創建的時候提供,但是程序員也可以進行更改。很多的屬性值可以在運行時候隨着用戶的動作和修改進行改動,這樣就形成了一個動態的程序。舉個例子來說:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運行時候每當用戶更改窗口大小,控件也會隨之改變位置。在文本框中的文字改變事件中加入相應的代碼,程序就能夠在文字輸入的時候自動翻譯或者阻止某些字符的輸入。
vb的程序可以包含一個或多個窗體,或者是一個主窗體和多個子窗體,類似於操作係統的樣子。有很少功能的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。
vb的組件既可以擁有用戶界面,也可以沒有。這樣一來服務器端程序就可以處理增加的模塊。
vb使用參數計算的方法來進行垃圾收集,這個方法中包含有大量的對象,提供基本的面嚮對象支持。因為越來越多組建的出現,程序員可以選用自己需要的擴展庫。和有些語言不一樣,vb對大小寫不敏感,但是能自動轉換關鍵詞到標準的大小寫狀態,以及強製使得符號表入口的實體的變量名稱遵循書寫規則。默認情況下字符串的比較是對大小寫敏感的,但是可以關閉這個功能。
vb使得大量的外界控件有了自己的生存空間。大量的第三方控件針對vb提供。vb也提供了建立、使用和重用這些控件的方法,但是由於語言問題,從一個應用程序創建另外一個並不簡單。
術語
在討論visual basic時,經常可以聽到以下這些術語,因此對這些術語的基本理解十分有幫助。
控件——簡單的說,控件就是構成或者說建造visual basic應用程序的圖形化工具,包括窗體、按鈕、復選框、列表框、數據控件、表格控件和圖片控件等等...。
事件——由用戶或操作係統引發的動作。事件的示例有擊鍵、單擊鼠標(click)、雙擊鼠標(dblclick)、一段時間的限製,或從端口接收數據。
方法——嵌入在對象定義中的程序代碼,它定義對象怎樣處理信息並響應某事件。例如,數據庫對象有打開紀錄集並從一個記錄移動到另一個記錄的方法程序的基本元素,它含有定義其特徵的屬性,定義其任務和識別它可以響應的事件的方法。控件和窗體是visual basic中所有對象的示例。
對象——一個控件、窗體等都可被看作一個對象。
過程——為完成某些特定的任務而編寫的代碼段,過程通常用於響應特定的事件,也可以當作應用程序的用戶自定義函數來使用。
屬性——屬性是組成用戶界面的各對象的性質的具體描述。例如上述“對象”中所提到的尺寸、位置、顔色、寬度、高度等等都稱為控件的 屬性。屬性决定對象的外觀,有時也决定對象的行為。對象的屬性絶大部分是vb中已經事先定義好的,但也有的屬性是需要在應用 過程中纔去定義的。屬性即可為對象提供數據,也能從對象取回信息。
vb的局限性
繼承。vb5和vb6都是面嚮對象的編程語言,但是不包含繼承特性。vb中提供了特殊的類的功能,但是還是不能滿足程序員的需求。vb.net 包含了所有面嚮對象的特性。
多綫程支持 (vb.net 2002以及之後的版本,都支持多綫程技術。)
異常處理。vb.net中使用了try-catch-finally來處理異常。而vb中衹有"on error goto line"語句。
對指針的支持非常有限。
vb衹能支持8到32位的整形,很多語言都有無限製的支持。
vb不允許在任何數組內存在不變的變量。
vb不支持以上特性,程序員需要自己建構方法來實現相似的功能。
爭議
反對觀點:
vb是一種充滿了爭議的語言:很多程序員對vb程序的質量有強烈的感受。很多人認為vb不配他們使用,認為它是一種給兒童和菜鳥程序員的語言。它自從設計開始就是一種簡單的語言。一些c++和java中的特性在vb中並沒有出現。在感受開發的方便和快速的同時,一些類似於編譯時進行類型和聲明檢查的功能在默認情況下是關閉的。這樣一些程序員一邊感嘆vb的易用性,一般沮喪地地看着一些類似於“未定義類型”錯誤的發生。
一些批評傢認為vb的簡單特性使得其在未來具有傷害性。很多人自學了vb,但是並沒有學到好的編程習慣。當vb進入課堂的時候,學生們不會學到很多基礎的程序技術和結構,因為很多技術已經包含在那些對用戶可見的組件裏面了。不用學習標準的編程習慣,因為vb具有可視化的特性,所以導致了一些莫名其妙的代碼的産生。而且很多錯誤和警告的檢查默認情況下都是關閉的,程序員很難找到隱藏的錯誤。有經驗的程序員在用vb編程的時候都會把這些選項打開。
很多批評傢批評微軟簡單地拷貝了basic的思想到vb中。著名的計算機科學家edsger dijkstra說過一句名言:“如果一個學生最早學過basic,那麽幾乎不可能讓他學會優秀的編程:因為這些人已經放棄了涅磐的希望。”(dijkstra對待fortran、pl/1、cobol和apl同樣也毫不留情。)
另外一個笑話是:“真正的程序員不用basic。12歲以下的孩子纔用。”
並不是非常簡便,它開發的程序衹能運行在microsoft windows中。
個頭太大了。visual studio要用好幾張盤才能裝下。vb程序在運行時候還需要一個1.4m大小的運行庫。
ide中有錯誤。
vb不能很好的綜合windows的基礎api,很多時候要使用低級運算的“小伎倆”來進行編程。而c語言的低級內存運算比vb的要簡單得多。
支持觀點:
但是很多vb的支持者解釋說vb的易用性就是它最大的優勢,可以讓經驗豐富的vb程序員或是剛剛懂得皮毛的人都能用自己的方式快速開發程序。而且vb的程序可以非常簡單的和數據庫連接。比如利用控件可以綁定數據庫,這樣一來用vb寫出的程序就可以掌握數據庫的所有信息而不用寫一行代碼。
很多語言的特性比如gosub、on error和用變量名字的最後一個字符判斷聲明類型(比如字符串型str$)都是從vb中來的。vb的語法和絶大部分語言都不同,可能會讓新的程序員混淆。比如聲明“dim a,b,c as integer”聲明了c為整形變量,但是a、b都是variant類型的。 {這兒我說明一下,如果想申明3個integer,必須寫 dim a as integer, b as integer, c as integer;而直接寫dim a,後面不寫類型,則自動變成variant類型——占用大量資源。} 還有一些特性,比如下劃綫字符“_”用於一行代碼分多行寫時候。一些程序員在使用的時候由於不規範使得便引起報錯。
發展時間綫
1991年4月,visual basic 1.0 windows版本發佈
1992年9月,visual basic 1.0 dos版本發佈。
1992年11月,vb2.0發佈。它對於上一個版本的界面和速度都有所改善。
1993年夏天,vb3.0發佈,分為標準版和專業版。其中包含一個數據引擎,可以直接讀取access數據庫。
1995年8月,vb4.0發佈了32位版本和16位的版本。其中包含了對類的支持。
1997年2月,vb5.0發佈。程序員可以用32位的版本導入由4.0版本創建的16位程序,並且能順利編譯。同時還包含了對用戶自建控件的支持。
1998年夏天,vb6.0發佈。
2001年,visual basic.net和.net framework發佈。由於其使用了新的核心和特性,所以很多vb的程序員都要改寫程序。
2003年,visual basic.net 2003和.net framework 1.1發佈。
2004年,微軟開放了visual studio 2005的測試版本(代號whidbey)。包含了.net framework2.0的測試版本。
2005年,微軟宣佈將不會再對非.net版本的vb進行支持。vb社群立即作出反應表示關心這個消息,一些老用戶還遞交了希望能夠繼續對vb進行技術支持的請願書。微軟目前還不願意改變他們的决定。
由vb派生的語言
微軟開發了一係列有關vb的腳本語言:
visual basic for applications,即vba,包含在微軟的應用程序中(比如microsoft office),以及類似wordperfect office這樣第三方的産品裏面。vba這樣嵌入在各種應用程序中看起來有些矛盾,但是它的功能和vb一樣強大。
vbscript是默認的asp語言,還可以用在windows腳本編寫和網頁編碼中。儘管它的語法類似於vb,但是它卻是一種完全不同的語言。vbs不使用vb運行庫運行,而是由windows腳本主機解釋執行。這兩種語言之中的不同點影響asp網站的表現。
當微軟準備開發一種新的編程工具的時候,第一决定就是利用最搶手的vb6來進行舊改,或者就是重新組建工程開發新工具。微軟後來開發了vb的繼任者visual basic .net,同時也是.net平臺的一部分。vb.net編程語言是一種真正的面嚮對象編程語言,和vb並不完全兼容。
關於vb.net
visual studio.net 2005已經在2005年11月7日發佈。
visual basic.net(簡稱vb.net)是新一代的vb。它不是vb 6.0的簡單升級,vb.net與vb之間有非常大的區別。其新特性主要表現在以下幾方面:
1.vb.net完全集成到visual studio集成開發環境中,在這種集成開發環境與vb在若幹方面有差異。主要體現在窗體的佈局以及菜單等方面都有所不同。
2.vb.net項目與vb不同。它使用基於文件夾的模型,所有項目均放置在項目文件夾層次結構中。
3.vb.net中使用ado.net來訪問數據庫,ado.net是.net框架的一部分。在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已經成為完全的面嚮對象的編程語言。 |
|
1991年,微軟公司推出了visual basic 1.0版。這在當時引起了很大的轟動。這個連接編程語言和用戶界面的進步被稱為Tripod(有些時候叫做Ruby),最初的設計是由阿蘭·庫珀(Alan Cooper)完成的。許多專傢把VB的出現當做是軟件開發史上的一個具有劃時代意義的事件。其實,以我們現在的目光來看,VB1.0的功能實在是太弱了;(不過最近VB6.0, VB.NET的功能相當大!)。但在當時,它是第一個“可視”的編程軟件。這使得程序員欣喜之極,都嘗試在VB的平臺上進行軟件創作。微軟也不失時機地在四年內接連推出VB2.0,VB3.0,4.0三個版本。並且從VB3開始,微軟將ACCESS的數據庫驅動集成到了VB中,這使得VB的數據庫編程能力大大提高。從VB4開始,VB也引入了面嚮對象的程序設計思想。VB功能強大,學習簡單。而且,VB還引入了“控件”的概念,使得大量已經編好的VB程序可以被我們直接拿來使用。
2002年visual basic .NET 2002 (v7.0)問世,2003年visual basic .NET 2003 (v7.1)問世,2005年11月7日visual basic 2005 (v8.0)問世,同時間推出visual basic 2005的免費簡化版本visual basic 2005 Express Edition給visual basic初學者及學生使用。VB 2005的“顯著”優點是,可以直接編寫出XP風格的按鈕,以及其他的控件。但是其編寫的小程序占用近10MB的內存。2007年12月,微軟推出了Visual Studio 2008 Beta 2 (v9),在代碼輸入上可比VB2005快很多,在非特殊的情況下,VB2008會自動開啓、自動完成關鍵字,而且支持最新的.NET Framework 3.5 Beta 2。
通過幾年的發展,它已成為一種專業化的開發語言和環境。用戶可用visual basic快速創建Windows程序,現在還可以編寫企業水平的客戶端/服務器程序及強大的數據庫應用程序。
VB會吸引更多的贊譽和批評,也會繼續為廣大的用戶和程序員使用。它非常適合用來開發擁有友好界面的程序(比如針對終端的數據),但是不適合開發其它程序(比如聯合計算程序)。 |
|
一個典型的VB進程VB的中心思想就是要便於程序員使用,無論是新手或者專傢。VB使用了可以簡單建立應用程序的GUI係統,但是又可以開發相當復雜的程序。VB的程序是一種基於窗體的可視化組件安排的聯合,並且增加代碼來指定組建的屬性和方法。因為默認的屬性和方法已經有一部分定義在了組件內,所以程序員不用寫多少代碼就可以完成一個簡單的程序。過去的版本裏面VB程序的性能問題一直被放在了桌面上,但是隨着計算機速度的飛速增加,關於性能的爭論已經越來越少。
窗體控件的增加和改變可以用拖放技術實現。一個排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)。每個控件都有自己的屬性和事件。默認的屬性值會在控件創建的時候提供,但是程序員也可以進行更改。很多的屬性值可以在運行時候隨着用戶的動作和修改進行改動,這樣就形成了一個動態的程序。舉個例子來說:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運行時候每當用戶更改窗口大小,控件也會隨之改變位置。在文本框中的文字改變事件中加入相應的代碼,程序就能夠在文字輸入的時候自動翻譯或者阻止某些字符的輸入。
VB的程序可以包含一個或多個窗體,或者是一個主窗體和多個子窗體,類似於操作係統的樣子。有很少功能的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。
VB的組件既可以擁有用戶界面,也可以沒有。這樣一來服務器端程序就可以處理增加的模塊。
VB使用參數計算的方法來進行垃圾收集,這個方法中包含有大量的對象,提供基本的面嚮對象支持。因為越來越多組建的出現,程序員可以選用自己需要的擴展庫。和有些語言不一樣,VB對大小寫不敏感,但是能自動轉換關鍵詞到標準的大小寫狀態,以及強製使得符號表入口的實體的變量名稱遵循書寫規則。默認情況下字符串的比較是對大小寫敏感的,但是可以關閉這個功能。
VB使得大量的外界控件有了自己的生存空間。大量的第三方控件針對VB提供。VB也提供了建立、使用和重用這些控件的方法,但是由於語言問題,從一個應用程序創建另外一個並不簡單。 |
|
在討論visual basic時,經常可以聽到以下這些術語,因此對這些術語的基本理解十分有幫助。
控件
簡單的說,控件就是構成或者說建造visual basic應用程序的圖形化工具,包括窗體、按鈕、復選框、列表框、數據控件、表格控件和圖片控件等等...。
事件
由用戶或操作係統引發的動作。事件的示例有擊鍵、單擊鼠標(Click)、雙擊鼠標(DblClick)、一段時間的限製,或從端口接收數據。
方法
嵌入在對象定義中的程序代碼,它定義對象怎樣處理信息並響應某事件。例如,數據庫對象有打開紀錄集並從一個記錄移動到另一個記錄的方法程序的基本元素,它含有定義其特徵的屬性,定義其任務和識別它可以響應的事件的方法。控件和窗體是visual basic中所有對象的示例。
對象
一個控件、窗體等都可被看作一個對象。
過程
為完成某些特定的任務而編寫的代碼段,過程通常用於響應特定的事件,也可以當作應用程序的用戶自定義函數來使用。
屬性
屬性是組成用戶界面的各對象的性質的具體描述。例如上述“對象”中所提到的尺寸、位置、顔色、寬度、高度等等都稱為控件的 屬性。屬性决定對象的外觀,有時也决定對象的行為。對象的屬性絶大部分是VB中已經事先定義好的,但也有的屬性是需要在應用 過程中纔去定義的。屬性即可為對象提供數據,也能從對象取回信息。 |
|
不支持繼承
VB5和VB6都是面嚮對象的編程語言,但是不包含繼承特性。VB中提供了特殊的類的功能,但是還是不能滿足程序員的需求。VB.net 包含了所有面嚮對象的特性。
多綫程無原生支持
visual basic 對於多綫程無原生支持,衹能通過 Windows API 的調用實現。VB.Net 2002 以及之後的版本,都支持多綫程技術。
異常處理不完善
Visual Baisc 中內置異常處理,即使未寫異常處理代碼,一旦用戶出錯也會彈出一個明確寫出出錯原因對話框,接着程序終止。
visual basic 中可以使用 Err.Raise 拋出異常。對係統及用戶拋出的異常的處理常用兩種模式:一是使用 On Error Resume Next 處理錯誤;另一種是使用 On Error Goto 將運行引入錯誤處理代碼。但相對 C++ 等語言而言,這樣的異常處理破壞了代碼的結構。 |
|
程序員中,對於各種語言孰優孰劣的爭論並不少見,visual basic 更是成為了一種充滿了爭議的語言。
反方觀點
visual basic 是一種給兒童和菜鳥程序員的語言,它自從設計開始就是一種簡單的語言。一些 C++ 和 Java 中的特性在 VB 中並沒有出現。在感受開發的方便和快速的同時,一些類似於編譯時進行類型和聲明檢查的功能在默認情況下是關閉的。這樣一些程序員一邊感嘆 VB 的易用性,一般沮喪地地看着一些類似於“未定義類型”錯誤的發生。
一些批評傢認為 VB 的簡單特性使得其在未來具有傷害性。很多人自學了 VB,但是並沒有學到好的編程習慣。當 VB 進入課堂的時候,學生們不會學到很多基礎的程序技術和結構,因為很多技術已經包含在那些對用戶可見的組件裏面了。不用學習標準的編程習慣,因為 VB 具有可視化的特性,所以導致了一些莫名其妙的代碼的産生。而且很多錯誤和警告的檢查默認情況下都是關閉的,程序員很難找到隱藏的錯誤。有經驗的程序員在用 VB 編程的時候都會把這些選項打開。
一些批評傢批評微軟簡單地拷貝了 BASIC 的思想到 VB 中。著名的計算機科學家 Edsger Dijkstra 說過一句名言:“如果一個學生最早學過 BASIC,那麽幾乎不可能讓他學會優秀的編程:因為這些人已經放棄了涅磐的希望。”(Dijkstra 對待 Fortran、PL/1、COBOL 和 APL 同樣也毫不留情。)
visual basic 開發的程序衹能運行在Microsoft Windows中,VB 程序在運行時候還需要運行庫。
visual basic 不能很好的綜合 Windows 的基礎 API,很多時候要使用低級運算的“小伎倆”來進行編程。而 C 語言的低級內存運算比 VB 的要簡單得多。
正方觀點
visual basic 的最大的優勢在於它的易用性,可以讓經驗豐富的VB程序員或是剛剛懂得皮毛的人都能用自己的方式快速開發程序。而且 VB 的程序可以非常簡單的和數據庫連接。比如利用控件可以綁定數據庫,這樣一來用VB寫出的程序就可以掌握數據庫的所有信息而不用寫一行代碼。 |
|
1991年4月,visual basic 1.0 Windows版本發佈
1992年9月,visual basic 1.0 DOS版本發佈。
1992年11月,VB2.0發佈。它對於上一個版本的界面和速度都有所改善。
1993年夏天,VB3.0發佈,分為標準版和專業版。其中包含一個數據引擎,可以直接讀取Access數據庫。
1995年8月,VB4.0發佈了32位版本和16位的版本。其中包含了對類的支持。
1997年2月,VB5.0發佈。程序員可以用32位的版本導入由4.0版本創建的16位程序,並且能順利編譯。同時還包含了對用戶自建控件的支持。
1998年夏天,VB6.0發佈。
2001年,visual basic.net和.NET Framework發佈。由於其使用了新的核心和特性,所以很多VB的程序員都要改寫程序。
2003年,visual basic.net 2003和.NET Framework 1.1發佈。
2004年,微軟開放了Visual Studio 2005的測試版本(代號Whidbey)。包含了.NET Framework2.0的測試版本。
2005年,微軟宣佈將不會再對非.NET版本的VB進行支持。VB社群立即作出反應表示關心這個消息,一些老用戶還遞交了希望能夠繼續對VB進行技術支持的請願書。微軟目前還不願意改變他們的决定。
2007年底,微軟推出了Visual Studio 2008 Beta 2 (v9),在代碼輸入上可比VB2005快很多,在非特殊的情況下,VB2008會自動開啓、自動完成關鍵字,而且支持最新的.NET Framework 3.5 Beta 2。 |
|
微軟開發了一係列有關VB的腳本語言:
visual basic for Applications,即VBA,包含在微軟的應用程序中(比如Microsoft Office),以及類似WordPerfect Office這樣第三方的産品裏面。VBA這樣嵌入在各種應用程序中看起來有些矛盾,但是它的功能和VB一樣強大。
VBScript是默認的ASP語言,還可以用在Windows腳本編寫和網頁編碼中。儘管它的語法類似於VB,但是它卻是一種完全不同的語言。VBS不使用VB運行庫運行,而是由Windows腳本主機解釋執行。這兩種語言之中的不同點影響ASP網站的表現。
當微軟準備開發一種新的編程工具的時候,第一决定就是利用最搶手的VB6來進行舊改,或者就是重新組建工程開發新工具。微軟後來開發了VB的繼任者visual basic .NET,同時也是.NET平臺的一部分。VB.net編程語言是一種真正的面嚮對象編程語言,和VB並不完全兼容。 |
|
Visual Studio.net 2005已經在2005年11月7日發佈。
visual basic.NET(簡稱VB.NET)是新一代的VB。它不是VB 6.0的簡單升級,VB.NET與VB之間有非常大的區別。其新特性主要表現在以下幾方面:
1.VB.NET完全集成到Visual Studio集成開發環境中,在這種集成開發環境與VB在若幹方面有差異。主要體現在窗體的佈局以及菜單等方面都有所不同。
2.VB.NET項目與VB不同。它使用基於文件夾的模型,所有項目均放置在項目文件夾層次結構中。
3.VB.NET中使用ADO.NET來訪問數據庫,ADO.NET是.NET框架的一部分。在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從1991年誕生以來,現在已經13年了。BASIC是微軟的起傢産品,微軟當然不忘了這位功臣。隨着每一次微軟技術的浪潮,visual basic都會隨之獲得新生。可以預見,將來無論微軟又發明了什麽技術或平臺,visual basic一定會首先以新的姿態登上去的。如果你想緊跟微軟,永遠在最新的技術上最快速地開發,你就應該選擇visual basic。
1991-西雅圖夜空的雷電
隨着Windows 3.0的推出,越來越多的開發商對這個圖形界面的操作係統産生了興趣,大量的Windows應用程序開始涌現。但是,Windows程序的開發相對於傳統的DOS有很大的不同,開發者必須將很多精力放在開發GUI上,這讓很多希望學習Windows開發的人員卻步。1991年,微軟公司展示了一個叫Thunder的産品,所有的開發者都驚呆了,它竟然可以用鼠標“畫”出所需的用戶界面,然後用簡單的BASIC語言編寫業務邏輯,就生成一個完整的應用程序。這種全新的“Visual”的開發就像雷電(Thunder)一樣,給Windows開發人員開闢了新的天地。這個産品最終被定名為visual basic,采用事件驅動,Quick BASIC的語法和可視化的IDE。visual basic 1.0帶來的最新的開發體驗就是事件驅動,它不同於傳統的過程式開發。同時,VBX控件讓可視化組件的概念進入visual basic。visual basic 1.0是革命性的BASIC,它的誕生也是VB史上的一段佳話。
visual basic 1.0
1992-漸入佳境的visual basic
由於Windows 3.1的推出,Windows已經充分獲得了用戶的認可,Windows開發也進入一個新的時代。visual basic 1.0的功能過於簡單,相對於Windows 3.1的強大功能沒有發揮出來。所以,微軟在1992年推出了新版本visual basic 2.0。這個版本最大的改進就是加入了對象型變量,比如
Dim b As CommandButton
Dim c As Control
而且有了最原始的“繼承”概念,對象型變量分為一般類型(Control和Form)和專有類型(CommandButton和Form1等),一般類型的變量可以引用專有類型的實例,甚至通過後期綁定訪問專有類型的屬性和方法。還可以通過TypeOf…Is運算符獲取對象實例的運行時類型信息(這個功能就是當今C#的is運算符或Java的instanceof運算符)。除了對語言的改進和擴充,visual basic 2.0對VBX有了很好的支持,許多第三方控件涌現出來,極大地豐富了visual basic的功能。微軟還為visual basic 2.0增加了OLE和簡單的數據訪問功能。
visual basic 2.0標準版
visual basic 2.0專業版
1993-數據庫組件新添力量
visual basic 2.0推出沒幾個月,微軟就發佈了新版本的visual basic 3.0,可以看出VB這時候旺盛的生命力。乍一看,visual basic 3.0的界面沒有太大的變化,但其實這個版本是非常及時的。它增加了最新的ODBC2.0的支持,Jet數據引擎的支持和新版本OLE的支持。最吸引人的地方是它對數據庫的支持大大增強了,Grid控件和數據控件能夠創建出色的數據窗口應用程序,而Jet引擎讓visual basic能對最新的Access數據庫快速地訪問。visual basic 3.0還增加了許多新的金融函數。此外還增加了相當多的專業級控件,可以開發出相當水平的Windows應用程序。visual basic 3.0是98年以前中國最流行的visual basic版本,因為它開發出來的可執行文件非常小,通常能用一張軟盤裝下。不過,visual basic采用虛擬機運行P代碼的做法也讓很多開發者不滿,他們認為這樣程序運行的效率很低,這時候visual basic的競爭者Delphi也誕生了。
visual basic 3.0標準版
visual basic 3.0特別版
1995-第二次革命性變化,COM進軍。
從1993年到1995年年中,visual basic一直沒有新的動靜,焦急的開發者都想一窺這個神秘的新版本到底發生了什麽變化。visual basic 4.0的BETA最後終於和大傢見面了。這個版本包含了16位和32位兩個版本,16位的版本就像是visual basic 3.0的升級版,而32位版則是一場新的革命。首先,人們發現VBX控件不見了,全部換成了OCX控件,這個OCX可能是指OLE Custom Controls,這個OLE已經不是傳統的OLE了,用現在的話說,它就是COM控件。第二個最大變化是visual basic 4.0所用的語言換成了visual basic For Application,這就和Office 95所采用的宏語言統一起來,這個新語言有很多亮點:
1、 加入了“類模塊”。這是面嚮對象最重要的封裝性的基礎。
2、 加入了屬性過程,加上函數過程,子程序過程,VB已經有組件開發所需的封裝性特徵。
3、 加入了Byte類型、Boolean類型和Object類型。這大大完善了VB的類型係統。
4、 For Each語句和Collection對象。For Each語句給遍歷集合類型提供了極大的方便,現在可以在動態增長的Collection上使用For Each,而不用擔心集合內容的總數或煩人的下標問題。
這個版本的visual basic還能夠開發DLL工程,其實就是COM的DLL,可以將書寫好的類用這種方式和其他語言共享。
總之,這個4.0的版本為visual basic成為一種COM語言奠定了基礎。用visual basic 4.0開發基於COM的DLL比任何一種開發工具都方便。但是,visual basic 4.0的性能問題變得更加嚴重了,P-代碼的組件成為visual basic 4.0嚴重的性能瓶頸,而且巨大的運行庫也讓用戶感到不滿。visual basic 4.0對以前版本的支持也不好,使用了大量VBX的項目很難移植到visual basic 4.0中。因此,visual basic 4.0在中國的普及程度非常低。
visual basic 4.0
1997-visual basic的豐收年
1997年,微軟推出了visual basic 5.0,這個版本的重要性幾乎和4.0一樣高。COM(這時候叫ActiveX)已經相當成熟,visual basic 5.0當然對它提供了最強的支持。不過,國內還沒有意識到COM的重要性前主要對這個版本另一個最大的亮點十分關註:本地代碼編譯器。visual basic 5.0終於在用戶的呼聲中加入了一個本地代碼編譯器,它可以讓應用程序的效率大大提升。除了這個大傢都知道的改進以外,visual basic 5.0對visual basic For Application語言有重大的完善和豐富:
5、 事件。visual basic 5.0終於允許用戶自己創建事件,而且這事件的語法相當強健和完善,這在一種不支持函數回調的語言中是很難得的。現在,VB擁有屬性、方法和事件的完整封裝性。
6、 接口。這是VB實現多態性的基礎。同時為編寫COM組件提供了更多方便。
7、 枚舉。在visual basic 5.0中枚舉作為Long整型的子類型出現,用枚舉可以對常量進行完善的封裝。
8、 類模塊的改進。通過類模塊的屬性可以指定類模塊具有多種指定的行為,如私有構造函數等,可以通過這個功能創建符合Singleton和Monostate模式的設計。
9、 Debug.Assert。雖然這個斷言係統有點雞肋,但是總算是給調試帶來了方便。
10、 visual basic 5.0支持創建自己的集合類。可以創建用於For Each語句的集合類型。
11、新的數據類型Decimal,可以精確地處理有效數位較多的計算。
visual basic 5.0的IDE支持“智能感知”,這是一項非常方便開發者的功能,可以不必記住很長的成員名稱和關鍵字,衹要按“.”,想要的東西統統彈出來。
visual basic 5.0還支持開發自己的ActiveX 控件、進程內的COM DLL組件、進程外的COM EXE組件以及在瀏覽器中運行的ActiveX文檔。這極大豐富了visual basic的開發能力,在Internet開發上,visual basic 5.0也能有所建樹。
visual basic 5.0學習版——我的第一份正版VB
1998-企業真正高效的源泉
visual basic 6.0作為Visual Studio 6.0的一員發佈,證明微軟正在改變visual basic的産品定位,他想讓visual basic成為企業級快速開發的利器。visual basic 6.0在數據訪問方面有了很大的改進,新的ADO組件讓對大量數據快速訪問成為可能。數據環境和新的報表功能也讓數據開發有了全新的體驗。visual basic 藉助COM/COM+強大的功能,可以開發具有N層結構的分佈式應用程序。同時,visual basic還可以在IIS上開發性能超群的Web應用程序。visual basic 6.0在語言方面和IDE方面的改進都不大,但是許多新增的組件成為visual basic開發人員手中的利器,如File System Object等。新的字符串函數Split和Replace等也給visual basic的程序員帶來很大方便。
總之visual basic 6.0已經是非常成熟穩定的開發係統,能讓企業快速建立多層的係統以及Web應用程序,成為當前Windows上最流行的visual basic版本。
visual basic 6.0
2002-第三次革命性變化,.NET進軍
從1998年發佈到2002年正式推出visual basic. NET簡直吊足了開發者的胃口。從2000年就開始傳言的具有繼承、Try…Catch語句等新功能的全新VB7.0一直沒有露面。直到2001年,Visual Studio.NET的第一個BETA版問世的時候,所有人都呆了——這是visual basic嗎?And語句變成了BitAnd,數組衹能從0下標開始,而且連Dim語句的意義都變了,幾乎所有的窗體控件都變了,Long變成了Integer而Integer變成了Short,Variant不見了,Static不能用了……簡直是翻天覆地,人們已經無暇關註這個版本有什麽改進,轉而擔心我怎麽才能接受這個本本了。其實visual basic. NET完全是為了.NET Framework這一全新的平臺而設計的,visual basic. NET的設計者一開始沒有掌握好新平臺和舊語言的平衡。到了BETA2中,很多東西回歸了6.0,如BitAnd又變回了And,數組的定義語句也變回了原有的意義,Static也回到了visual basic中。但是BETA1驚人的變化讓所有的VB開發者怕了,他們覺得這種語言被改的千瘡百孔,有些人幹脆轉去研究傳說中的新語言C#。但是visual basic. NET渡過幾個BETA版本之後還是找到了正確的定位。visual basic. NET有對CLR最完善的支持,同時盡量保留着BASIC易懂的語法風格和易用性。這個版本新增加的功能已經數不清,最重要的幾個是:
1、 繼承。至此,visual basic完成了嚮面嚮對象轉變的道路。
2、 共享成員。
3、 Try…Catch結構化異常處理。
4、 Delegate和Interface。
5、 名稱空間。
6、 對自由綫程的支持。
特別的是,visual basic. NET大大減少了visual basic語言的關鍵字,如GoSub、PSet等等。原先的visual basic有多達120個關鍵字,這給寫程序帶來了很大的不便,現在經過精簡,visual basic脫下了這個沉重的包袱。
visual basic. NET現在是一門現代的、強壯的、面嚮對象的、簡單的可視化開發語言。強大的語言功能吸引了很多開發者。歷史是在不斷重演的,visual basic. NET如今的處境和visual basic 4.0很相似,由於兼容性變差,人氣也降低了。同時由於依附於.NET Framework,程序發佈造成了一定的睏難。現在國內使用visual basic. NET的人相對於visual basic 6.0來講顯得很少。但是憑藉visual basic. NET強大的語言功能和MS的支持,visual basic. NET一定會顯出它的光輝來。
2003-穩中求變的新版本
visual basic. NET 2003是一個相當穩重的版本,改變很少,但對小處有很多改進。首先visual basic 6.0升級嚮導做了很大改進,這給從老版本痛苦升級的人帶來了更多一些的希望。其次在IDE方面,visual basic. NET 2003修正了許多錯誤,還讓事件處理恢復了6.0的開發體驗。語言方面衹有兩項改進:
1、 在For、For Each語句中聲明循環變量。
2、 增加了數學移位運算符<<和>>。
在這個比較成熟穩定的新版本下,許多visual basic的愛好和開始重新瞭解visual basic. NET,社區裏面也漸漸熱鬧起來。但是,有些使用C#的開發者堅持認為visual basic. NET是垃圾,儘管visual basic. NET擁有比C#更多的功能和更好的IDE。這說明不瞭解visual basic. NET成為它普及的最大障礙。
2005-完美主義的visual basic,能否再現輝煌?
為了讓visual basic有最佳的開發體驗,visual basic 2005的設計者絞盡了腦汁。這次visual basic 2005光語言上的改進就足以讓visual basic的開發人員高興一陣子。大傢可以去看看我那篇介紹visual basic 2005新增功能的貼子。挑重要的列在下邊:
1、 泛型
2、 運算符重載
3、 Partial Type
4、 窗體的默認實例(讓你用VB6的語法使用窗體)
5、 語法的多種改進
6、My關鍵字
現在用visual basic 2005衹要一行代碼就可以讀寫註册表、訪問文件、讀寫串口、獲取應用程序信息…… 用visual basic 2005完全可以稱作享受開發。而泛型、運算符重載等功能又可以讓visual basic的開發人員深入.NET Framework的全部功能,開發出最優秀的應用程序。 |