隨著資訊產業軟硬體技術的提昇與網際網路服務的快速成長,電腦系統間的互動顯得格外的頻繁,而其軟體的製作也日趨複雜,各家資訊業者的解決方案也不斷地在推陳出新。
近幾年來Sun所推出的Java挾帶著其物件導向程式設計及跨平台的優勢特性,很快地在資訊市場中佔有一襲之地。微軟的Visual
Basic在物件導向程式設計的領域中缺席了十多年之後終於在今年正式的推出了其物件導向程式設計的語言:VB.Net。
對於一個使用VB6.0的程式設計師而言,新版的VB.Net究竟有哪些不一樣的地方呢?
作業平台的差異:
為了支援XML、Web
Services及跨平台等特性,微軟推出了.Net Framework 的平台,此平台除了提供共通語言執行環境之外(Comman
Language Runtime),還提供了一個完整的類別程式庫(Comman Class
Library),以供程式設計師可在支援此平台的程式語言中,以自己熟識的語言來開發元件及應用程式,且可輕易地與其他程式設計師所開發的元件相整合。而VB.Net在經過編譯之後,就是一個可在.Net
Framework執行環境中執行的中介程式碼,此中介程式碼會在實際執行時經由.Net Framework中的Just in time
Compiler將其編譯成該平台下的實際執行碼,以逹到跨平台的功能。.Net Framework的角色其實就和Java 的VM一樣。
是一完整的物件導向程式設計語言:
除了在VB6.0版就提供的封裝功能之外,另外提供了物件類別繼承的機制與類別成員多型的功能。
基礎程式語言的變革:
資料型別:所有的資料型別改以物件的方式來呈現新的面貌,其在記憶體中所佔的容量大小也有所改變;不再以Variant型別來當作其universal
data type ,改以Object型別為其universal data type。
˙變數的宣告:
在VB6.0版中,宣告 Dim A,B as
Integer ,則A為Variant型別,B為Integer型別。
在VB.Net中,宣告 Dim A,B as Integer,則A和B皆為Integer,另外,允許在宣告變數的同時給予起始值,如Dim
A as Integer = 10
˙陣列的宣告:
不再支援Option
Base與索引範圍的宣告方式(如Dim A(3 To 9) as integer),一律以索引值0為其起始索引。
˙Call By Reference 或 Call By Value:
在VB6.0版中,副程式參數列中的參數若未特別宣告,則其預設為Call By Reference,而在VB.Net中,則預設為Call
By Value。
˙指定運算子的增加:
除了原有的 =
之外,另外提供^=、*=、/=、\=、+=、-=、&= 等指定運算子。
˙其它:
有些在VB6.0版就不建議使用的功能在VB.Net便不再支援,如GoSub。
結構化的例外處理:
仍保留VB6.0版的On Error Goto
的例外處理功能,但提供更有效率的結構化例外處理架構:Try…Catch…Finally…End Try
功能非凡的整合開發環境:VS.Net
除了VB6.0原有的IDE功能之外,更提供伺服器總管讓程式設計師可輕易的在VS.Net中直接連上遠端的Server,以便瀏覽或處理Server上的資料;另外,也提供動態的說明以方便程式設計師可迅速的查詢相關資訊。有關VS.Net,其功能強大,您可從MSDN中得到更多的資訊。
組件的概念:
以往在VB6.0中所開發的元件常有版本不同却互相覆蓋的問題,為了解決這個問題,.Net
Framework把元件的識別資料從Registry中撤回直接放在可執行的Exe檔或Dll檔中。
命名空間的概念:
採用階層式的命名空間概念,以逹到有效分辨及管理組件的功能。
截然不同的資料存取模式:
VB6.0版透過ADO物件到後端資料庫存取資料時的Cursor概念,已不再被ADO.Net重用。在ADO.Net中為了因應服務大量的前端客戶所可能帶來的負擔,推出了可離線處理的作業模式。其作業模式與相關的物件類別,是需要VB6.0版的程式設計師多費心力去了解的。
其他:
可在Windows Form
的應用程式中撰寫程式以取用網際網路上的Web Services、發送E-mail及撰寫Socket程式設計等等。
總而言之,VB.Net在Visual
Basic的家族中,雖然看起來似乎是流著相同的血脈,但它其實是以脫胎換骨的全新風貌來展現其強大的功能。
除非您認為微軟會在資訊市場的洪流中消聲匿跡,否則,了解VB.Net對一個資訊人而言現在應該就是最好的時機。 |