從這一章開始,我們將通過一個系列的講座來向諸位展現Visual Basic .Net的獨特魅力以及使用它開發應用程序的基本方法。Visual Basic .Net是微軟公司在2002年推出的一種開發基于.Net平臺應用程序的開發語言,也是微軟公司極力推薦的一種開發.Net平臺應用程序的開發語言。首先還是讓我們來簡單了解一下Visual Basic .Net和其前一個版本,也是目前世界上擁有最多使用者的開發語言--Visual Basic 6.0的主要區別。
一. Visual Basic和Visual Basic .Net的主要區別:
雖然說Visual Basic .Net是Visual Basic 6.0的后繼版本,但在我看來Visual Basic .Net
除了在語法上還保留Visual Basic原有的蹤影以外,因為二者幾乎在90%以上保持相似或相同。但在其他很多方面,Visual Basic .Net都和Visual Basic截然不同。也許正是這些不同點,才使得Visual Basic .Net功能更強大,更有生命力,但同樣也為Visual Basic程序員轉型為為Visual Basic .Net程序員帶來了困難。因為Visual Basic .Net提出了很多新的功能、概念和觀點,掌握Visual Basic .Net不僅要掌握語法,還需要理解并運用這些新的功能、概念和觀點。當然也需要掌握.Net框架,理解CLR(Common Language Runtime,通用語言進行時)。下面就從數據訪問、Web開發和組件創建三個方面來簡要談談二者的區別:
1. 數據訪問:
不同點主要表現在:數據訪問技術、數據訪問具體實現方法和數據綁定上的不同。
在數據訪問技術上,Visual Basic 6.0是通過ADO(Active X Data Object,即:Active X數據對象)來實現對數據庫訪問的。同時為了保證對早期版本的兼容,也提供RDO(遠程數據對象)和DAO(數據訪問對象)二種數據訪問技術。在Visual Basic .Net中是使用ADO.NET來訪問數據庫,ADO.NET是.NET框架的一部分,其對應的類庫是.Net FramWork SDK的真子集。ADO和ADO.NET這兩種技術在概念、功能和實現上都有許多差異。由于篇幅所限,這里就不一一介紹了。其實在Visual Basic .Net中也可以使用ADO來訪問數據庫,但ADO在Visual Basic .Net中是以COM組件的形式出現的,通過添加引用才可以在Visual Basic .Net中使用。添加引用的過程,其實就是對COM組件互操作。經過互操作后的COM組件,已經并非先前意義上的COM組件,而是轉變成可供Visual Basic .Net直接使用的.Net類庫。
在數據訪問的具體實現方法上,Visual Basic 6.0實現數據訪問主要是兩種方法:其一是在程序設計階段,可通過把數據源綁定到ADODC控件或使用數據環境;其二在運行時,可以通過編程方式創建記錄集RecordSet對象并與記錄集對象交換數據。同樣在Visual Basic .Net中實現數據訪問的方法主要也是二種:其一是在程序設計階段,通過創建、配置數據適配器DataAdapter和生成數據集DataSet;其二在運行中,通過編程方式動態創建、配置數據適配器和創建、生成數據集。
在數據綁定(Data Bind)上,在Visual Basic 6.0中實現數據綁定通過設置控件的下列屬性來實現:DataChanged、DataField、DataFormat、DataMember 和 DataSource。通常是把控件的顯示屬性綁定到數據源中的相應字段。在Visual Basic .Net中,數據綁定的應用范圍可廣泛得多,Visual Basic .Net中可以將任何控件的任何屬性綁定到包含數據的任何結構中。
2. Web開發:
Visual Basic是使用Active Server Page(簡稱ASP)來創建在 Web應用程序。在ASP中,編寫Web頁面并非純正的Visual Basic語言,而是Visual Basic腳本語言--VBScript。在Visual Basic .Net中是使用ASP.NET技術來編寫Web頁面。在ASP.NET中使用的也不再是腳本語言,而是真正意義編程語言,其中就可以是Visual Basic .Net。開發過ASP頁面的朋友都清楚,雖然編寫ASP頁面對開發工具要求很低,但由于其是面向過程式開發,所以稍微復雜一點的ASP代碼都顯得雜亂無章,這都給程序設計、調試、修改帶來了麻煩。而Visual Basic .Net是建立在新的框架結構上,Visual Basic .Net完全支持Web編程。憑借ASP.NET的Web 應用程序、XML Web services等等基于Web上的功能,使得Visual Basic .Net開發Web 頁面與開發Windows編程很相似,Web頁面代碼也不顯得有條有理了。
3. 組件創建:
在使用Visual Basic 6.0和Visual Basic .Net編寫應用程序時,雖然都可以通過從工具箱中選擇組件,通過拖入方式在應用程序中加入組件,但二者在實現機理上卻存在根本不同。在Visual Basic 6.0中,應用程序中創建的組件全部是COM組件,即可在COM應用程序中使用的ActiveX控件、ActiveX 類型的DLL 和 ActiveX類型的EXE。而在Visual Basic .Net中,向窗體中拖入的組件,都是基于繼承,從.Net框架提供的SDK中相應的類繼承,經過實例化后,通過添加功能才把組件加入到設計窗體中。這些過程都可以在Visual Basic .Net的源代碼中找到。Visual Basic .Net中使用的每一個組件都是從Component或Control基類派生出來的。
當然Visual Basic和Visual Basic .Net之間還存在很多差別,如:Visual Basic 6.0 只提供單線程模式,并不支持多線程。而在Visual Basic .Net全面支持多線程。并且在Visual Basic .Net中還增加了結構化異常處理等新的功能。所以對于那些Visual Basic的程序員,從Visual Basic程序員轉型到Visual Basic .Net就有極強的必要性,下面就簡要介紹一下這種必要性。
二.從Visual Basic轉型到Visual Basic .Net的必然和必要性:
雖然Visual Basic得到了很多人的認可,也有許多配套產品都提供了Visual Basic的接口。但隨之時間的延續,其缺點也逐漸暴露了,有些甚至是無法"容忍"的。首先作為一種解釋性的語言,不僅程序執行速度慢,并且在分發應用程序時,還需要帶上解釋庫;其次Visual Basic并非完全的面向對象的開發語言,從根本上說,它應該是一種面向過程的開發語言。
而Visual Basic .Net做為下一代的Visual Basic語言,它是一種為開發.Net平臺應用程序而度身定做的程序語言。因為Visual Basic .Net中完全集成了.Net FrameWork(.Net框架)和CLR(Common Language Runtime,即:公共語言運行時)。同時.Net 框架和公共語言運行時又共同提供Visual Basic .Net語言互操作性、垃圾資源回收、可靠安全性和版本改進的支持。通過Visual Basic .Net能夠簡便、快捷地創建.Net平臺應用程序、XML Web services 和 ASP.NET Web 應用程序。Visual Basic .Net做為開發.Net平臺的程序語言,那它就為開發現跨平臺程序創造了可能。因為我們知道,微軟推出.Net,其目的之一就是實現跨平臺。雖然目前微軟只提供了在Windows平臺上運行的.Net框架,還無法實現真正意義上的跨平臺,但隨著MONO的出現(雖然它還存在很多問題,并且目前的MONO只為C#提供支持),但可以預見的是在不久的將來,Visual Basic .Net實現Write Once And Run AnyWhere的時間不會太久。
Visual Basic .Net是一種編譯性的語言,但這種編譯和以前接觸的編譯有所區別。因為經過Visual Basic .Net編譯器編譯后得到文件并不是可以在計算機直接運行的二進制文件。它的性質是一種IL文件(中間語言文件)。在運行IL文件時,首先是通過CLR下的JIT(即時編譯器),把這種IL文件再編譯成二進制文件。我們看到的程序運行,其實是經過JIT編譯后的二進制文件在執行。這時可能有很多朋友會問,這種二次編譯是否多此一舉,具體實現中是否很麻煩,是否會影響程序的運行速度?二次編譯的確是影響了程序運行的速度,但它卻為實現跨平臺帶來了可能。其實這種編譯過程猶如Java中的JVM(Java虛擬機)。正是JVM才使得Java能夠開發出跨平臺的應用程序。二次編譯是CLR在.Net框架下自動實現IL文件到二進制文件轉變的,它是一種自動完成的,并不需要人員的參與,所以它并不會給程序執行帶來麻煩。
Visual Basic .Net 還是一種真正的面向對象的開發語言,可以說OOP思想已經深入到語言中的任一角落,如:在Visual Basic .Net中創建的Windows組件,就是從類中繼承,類經過實例化得到的。Visual Basic .Net還增加了許多新功能和改進功能,如繼承、接口和重載等,這些都使Visual Basic .Net成為功能強大的面向對象的編程語言。
微軟公司在推出Visual Basic .Net的同時,還推出了Visual Basic .Net的開發工具Visual Studio .Net。Java程序員羨慕Visual Basic .Net程序員的重要原因之一就是,Visual Basic .Net擁有一個任何比目前Java程序員所使用的開發環境都好的集成開發環境--Visual Studio .Net。
三.Visual Basic .Net開發利器Visual Studio .Net簡介:
微軟公司提供了四個不同的Visual Studio .Net版本,分別是:企業級結構設計版、企業級開發版、專業版和學院版。其中學院版主要是為在校大學生學習Visual Studio.Net準備的,它又分成三個獨立的版本:Visual C#標準版、Visual Basic .Net標準版和Visual C++標準版。上述的每一個版本的價格都不菲。現在在市面上買到主要是7張CD碟片的Visual Studio .Net企業級結構設計版。(請注意:本文介紹的是Visual Studio .Net 2002,.Net FrameWork SDK 版本號是3705)下面就以此版本討論一下如何安裝Visual Studio .Net。
1、 安裝 Visual Studio .NET 版本的系統要求:
每一個版本的Visual Studio .Net有著不同的組件組合,這也就決定了對計算機有著不同的系統要求。建議您的計算機系統滿足下列要求:
操作系統:
Windows XP 專業版、Windows XP Home、Windows 2000服務器版、Windows 2000專業版、Windows 4.0 Workstation、Windows NT 4.0 Server、Windows .Net Server版
處理器:
Pentium II 級、主頻450 MHz以上處理器,推薦使用Pentium III 級,主頻600MHz處理器
內 存:
Windows XP 專業版160 MB RAM
Windows 2000 專業版 96 MB RAM
Windows 2000 服務器版192 MB RAM
Windows NT 4.0 Workstation 64 MB RAM
Windows NT 4.0 Server 160 MB RAM
硬 盤:
Visual Studio .Net學院版在安裝驅動器上有 2.5 GB可用空間,包括系統驅動器上的 500 MB
專業版和企業版在安裝驅動器上有 3.5 GB可用空間,包括系統驅動器上的 500 MB
CD或DVD驅動器:必須
視 頻:800 x 600分辨率,256 色。推薦使用16 位增強色
鼠 標:Microsoft 鼠標或兼容指針設備
2、安裝Visual Studio .Net
這里主要談論市面上最常見的Visual Studio .Net 2002企業級結構設計版的安裝過程。其他版本與之類似。
市面上的Visual Studio .Net企業級結構設計版是由7張CD光盤構成,其實只需要其中的前5張光盤就能夠正確安裝Visual Studio .Net了,其中第五張光盤是組件更新光盤。安裝Visual Stuido .Net了的具體步驟如下:
(1)、關閉所有已打開的應用程序,以避免在安裝過程中發生多余的重啟動
(2)、關閉計算機中的反病毒程序,因為安裝程序要運行訪問文件系統對象的腳本,此時反病毒程序可能會提示警告,嚴重的可能造成無法正確安裝。
(3)、在上述工作完成后,插入Visual Studio .NET 第一張光盤,并執行其中的Setup.exe程序。此時安裝程序首先掃描您的計算機以了解已安裝的組件。如果該掃描過程確定系統需要更新組件,則在彈出的【安裝】對話框中會出現"步驟 1:安裝 Windows 組件更新"。選擇步驟 1 更新系統組件,此時安裝程序會提示您插入組件更新光盤,即第五張光盤。如果不需要組件更新,則該選項不可用。更新系統組件以后,計算機會重新啟動。此時再插入第一張光盤,【安裝】對話框將啟用"步驟 2:安裝 Visual Studio .NET"。選擇步驟 2,安裝程序會提示您選擇要安裝的內容和位置,選擇后安裝的內容和位置后,單擊【安裝】按鈕就開始安裝 Visual Studio .NET了。接下來的工作就是根據安裝程序提示在光驅中放入不同的光盤了。
(4)、Visual Studio .Net安裝完畢后,系統會彈出【重新啟動計算機】提示框,單擊【確定】按鈕重新啟動計算機后,Visual Stuio .Net的全部安裝工作就完成了。
下面就使用這個安裝成功的Visual Studio .Net開發出本系列的第一個Visual Basic .Net程序"Hello World!"。
四. 第一個Visual Basic .Net程序"Hello World!":
如果你沒有Visual Studio .Net,你也可以通過一個文本編輯器和從微軟下載安裝.Net
Frame Work SDK來編寫Visual Basic .Net,文本編輯器來編輯Visual Basic .Net源程序,安裝下載的.Net FrameWork SDK后就會用以Visual Basic .Net的編譯器Vbc.exe。通過這個編譯器就可以編譯、聯接用文本編輯器編輯的Visual Basic .Net源文件。雖然這種做法能夠讓我們更加了解Visual Basic .Net的運行機制和一些底層的機理,但卻很難推廣,一方面是Visual Studio .Net的確是太優秀了,利用文本編輯器很難實現如資源編輯、組件編輯等操作。另外一方面,Visual Basic .Net源文件結構相對復雜,用文本編輯器編寫的代碼會導致大量的錯誤,并且這些錯誤有很難查出來,而利用Visual Studio .Net來開發Visual Basic .Net應用程序就能夠大大避免上述的尷尬,并且能夠方便的調試編程中出現的各種警告、錯誤。
1. 本系列文章中介紹程序的編寫、調試和運行的軟件環境:
(1).視窗2000服務器版。
(2).Visual Studio .Net 2002企業級結構設計版。
2. 用Visual Studio .Net開發"Hello World!"程序:
我們知道"Hello World"一般是命令行程序,而這種程序在Visual Studio .Net中被稱為"控制臺程序"。下面是Visual Studio .Net編寫控制臺"Hello World!"程序的具體步驟:
(1)、啟動Visual Studio .Net。
(2)、選擇菜單【文件】|【新建】|【項目】后,彈出【新建項目】對話框。
(3)、將【項目類型】設置為【Visual Basic項目】。
(4)、將【模板】設置為【控制臺應用程序】。
(5)、在【名稱】文本框中輸入【Hello World】。
(6)、在【位置】的文本框中輸入【E:VS.NET項目】,然后單擊【確定】按鈕,則Visual Studio .Net會按照上面設定的參數創建一個控制臺應用程序項目,具體如圖01所示。

圖01:"Hello World"控制臺程序的【新建項目】界面
(7)、在【解決方案資源管理器】窗口中,雙擊Module1.vb文件,進入Module1.vb文件的編輯界面。
(8)、Visual Studio .Net已經為產生Main()函數。在系統創建的Main()函數中加入下面一行代碼就可以了:
Console.WriteLine ("Hello World!")
(9)、選擇【文件】|【保存Module1.vb】菜單或者按快捷鍵Ctrl+S,保存所做的修改。
(10)、此時單擊快捷鍵Ctrl+F5運行程序就可以得到圖02所示運行界面:

圖02:"Hello World"控制臺程序的運行界面
通過以上可見利用Visual Studio .Net編寫控制臺"Hello World!"程序,自始至終只需輸入一行代碼,Visual Studio .Net自動實現源程序編譯、聯接等過程,避免在命令行提示符下敲編譯命令的苦惱。不僅如此Visual Studio .Net自動的語法檢測,既給程序員帶來便捷,又避免了因為拼寫造成的不必要的錯誤。等等這些都比起用行編輯器來編寫Visual Basic .Net程序要方便、簡潔。
"Hello World!"程序是一個控制臺程序,而后面的章節中程序的類型主要是Windows應用程序(一般簡稱WinForm程序)。利用Visual Studio .Net編寫WinForm應用程序和控制臺應用程序步驟基本相似。下面就介紹一下Visual Studio .Net編寫WinForm類型的"Hello World"程序的基本步驟。
3. "Hello World!"程序的WinForm版本:
"Hello World!"程序的WinForm版本的可是我取的名字。此程序同樣也是輸出"Hello World!"字符串,只不過不是在命令提示行中實現,而是通過單擊程序中的按鈕,會彈出一個消息框,并在消息框中顯示"Hello World!"字符串。下面是"Hello World!"程序的WinForm版本的具體步驟:
(1)、啟動Visual Studio .Net。
(2)、選擇菜單【文件】|【新建】|【項目】后,彈出【新建項目】對話框。
(3)、將【項目類型】設置為【Visual Basic項目】。
(4)、將【模板】設置為【Windows應用程序】。
(5)、在【名稱】文本框中輸入【Hello_World程序WinForm版】。
(6)、在【位置】的文本框中輸入【E:VS.NET項目】,然后單擊【確定】按鈕,則Visual Studio .Net會按照上面設定的參數創建一個Windows應用程序項目,具體如圖03所示。

圖03:"Hello World"Windows應用程序的【新建項目】界面
(7)、選擇【工具箱】中的【Windows窗體組件】,并從中拖入一個Button組件到【Form1.vb(設計)】窗口,此組件名稱為button1,雙擊拖入的button1組件, Visual Studio .Net會切換窗口到Form1的設計窗口,并自動產生button1的Click事件對應的代碼。
(8)、在button1的Click事件的代碼區添加下列代碼,下列代碼的功能是彈出"Hello World!"提示框。
MessageBox.Show (" Hello World!")
(9)、選擇【文件】|【保存Form1.vb】菜單或者按快捷鍵Ctrl+S,保存所做的修改。
(10)、選擇【生成】|【生成Hello_World程序WinForm版】菜單,則Visual Studio .Net會自動編譯、連接源程序,并生成Hello_World程序WinForm版的執行文件。
(11)、選擇【調試】|【啟動】菜單或者單擊快捷鍵"F5",則開始運行Hello_World程序WinForm版程序,單擊程序中的【button1】按鈕,則彈出"Hello World!"提示框,具體如圖04所示。

圖04:"Hello_World"程序WinForm版程序的運行界面
至此Hello_World程序WinForm版程序的全部編寫工作就完成了。對于其他的WinForm程序,其編寫的基本步驟是相似的,只不過程序中涉及到更多的組件、類和其他的調用。無非是上面這些操作步驟的變形和再組合。
五.總結:
本文介紹了Visual Basic .Net的優越性及其和其前一個版本Visual Basic的主要區別。以及安裝Visual Basic .Net開發工具Visual Studio .Net的基本方法和使用Visual Studio .Net開發出二種不同類型Visual Basic .Net應用程序的基本步驟和方法。當然要完全掌握、精通這些內容不是一篇文章所能夠完成的。在后面的內容中,將結合更多具體的示例逐步介紹。