不能簡單認(rèn)為VB .net是VB的新版本。首先VB .net是完全面向?qū)ο蟮恼Z言,而另一個不是完全面向?qū)ο蟮?,其次VB .NET是構(gòu)建于.Net framework之上的。當(dāng)然,它們同屬Basic系列語言,又同為微軟所開發(fā),語法上有一定的相似或沿襲是很正常的,但不能因此認(rèn)為VB .NET是VB的升級版。
不同點主要表現(xiàn)在:數(shù)據(jù)訪問技術(shù),數(shù)據(jù)訪問具體實現(xiàn)方法和數(shù)據(jù)綁定
在數(shù)據(jù)訪問技術(shù)上,VB6.0是通過ADO(Active X Date Object,即Active X數(shù)據(jù)對象)來實現(xiàn)對數(shù)據(jù)庫的訪問,同時也為了保證對早期版本的兼容,也提供RDO(遠(yuǎn)程數(shù)據(jù)對象)和DAO(數(shù)據(jù)訪問對象)二種數(shù)據(jù)訪問技術(shù)。VB.net使用ADO.net訪問數(shù)據(jù)庫,ADO.NET是.NET框架的一部分。其中vb.net也可以使用ADO來訪問數(shù)據(jù)庫,但是ADO在vb.net中是以COM組件的形式出現(xiàn)的。通過添加引用才可以在VB.NET中使用,添加引用的過程,就是對COM組件互操作。
在數(shù)據(jù)訪問的具體方法上,VB6.0實現(xiàn)數(shù)據(jù)的訪問主要是兩種方法:第一是在程序設(shè)計階段,可通過把數(shù)據(jù)源綁定到ADODC控件和使用數(shù)據(jù)環(huán)境,第二在運行時,可以通過編程方式創(chuàng)建記錄集RecordSet對象與記錄集對象數(shù)據(jù)。vb.net在實現(xiàn)數(shù)據(jù)訪問的時候也有兩種方法:第一,在程序設(shè)計階段,通過創(chuàng)建、配置數(shù)據(jù)適配器DataAdater和生成數(shù)據(jù)集DataSet;第二,通過編程方式動態(tài)創(chuàng)建、配置適配器和創(chuàng)建、生成數(shù)據(jù)集。
在數(shù)據(jù)綁定(Date Bind)上,vb6.0通過這些控件來實現(xiàn)數(shù)據(jù)綁定:DataChanged、DataField、DataFormat、DataMember和DataSource.通常把控件的顯示屬性綁定到數(shù)據(jù)源中的相應(yīng)字段。而在VB.net中,數(shù)據(jù)綁定的應(yīng)用范圍比較廣泛,在vb.net中,可以將任何控件的任何屬性綁定到包含數(shù)據(jù)的任何結(jié)構(gòu)中。
在使用VB6.0和VB.NET編寫應(yīng)用程序的時候,雖然都可以從工具相中選擇組件,通過拖入方式在應(yīng)用程序中加入組件,但是二者在實現(xiàn)機理上卻存在根本不同。
在VB6。0中,應(yīng)用程序中創(chuàng)建的組件全部是COM組件,即可在COM應(yīng)用程序中使用ActiveX控件、ActiveX 類型的DLL 和 ActiveX類型的EXE。
在VB.NET中,向窗體中拖入組件,都是基于繼承,從,NET框架提供的SDK中相應(yīng)的類繼承,經(jīng)過實例化后,通過添加功能才能把組件加入到設(shè)計窗體中。這些過程都可以在VB.NET的源代碼中找到。VB.NET中使用的每一個組件都是從Component或Control基類派生出來的。
vb.net 完全符合面向?qū)ο蟮木幊陶Z言抽象、封裝、繼承的四大特性,而vb不支持繼承。
vb中只是On Error…goto和On Errer Resume Next ,這些錯誤稱為非結(jié)構(gòu)化異常處理。而在vb.net中采用的結(jié)構(gòu)化異常處理機制,try…catch…finally控制。
VB.NET提供了靈活的讀寫文件功能,可以使用多種方法獲得相同的結(jié)果。
對于想從VB轉(zhuǎn)到VB .NET的開發(fā)者來說,如果你只是喜歡Basic系列語言的代碼風(fēng)格,那么你的遷移會很順利,如果你想沿襲之前VB的編程思想和習(xí)慣,你會很苦惱,原因之一就是VB .NET貫穿的是完全面向?qū)ο蟮乃枷耄鳹B不是。
微軟為使VB開發(fā)者更容易轉(zhuǎn)到VB .NET,兼容一些VB6函數(shù)和庫的用法,但是比不上.NET語言中自帶的可替換的函數(shù)和庫來得高效,所以我們應(yīng)該盡量使用.NET下的新方法。微軟還提供了VB到VB .NET的自動轉(zhuǎn)換器,雖幾經(jīng)改進,但仍無法轉(zhuǎn)換全部代碼,幾乎所有非小型程序都需要人工修改以完成編譯。為了運行優(yōu)化,大多程序需要大量工作去重構(gòu)。
聯(lián)系客服