講解VB和VB.NET的主要區(qū)別
VB有很多值得學(xué)習(xí)的地方,這里我們主要介紹VB和VB.NET,包括介紹數(shù)據(jù)訪問、Web開發(fā)和組件創(chuàng)建等方面。
從這一章開始,我們將通過一個(gè)系列的講座來向諸位展現(xiàn)VB.NET的獨(dú)特魅力以及使用它開發(fā)應(yīng)用程序的基本方法。VB.NET是微軟公司在2002年推出的一種開發(fā)基于.Net平臺應(yīng)用程序的開發(fā)語言,也是微軟公司極力推薦的一種開發(fā).Net平臺應(yīng)用程序的開發(fā)語言。首先還是讓我們來簡單了解一下VB.NET和其前一個(gè)版本,也是目前世界上擁有最多使用者的開發(fā)語言--VB 6.0的主要區(qū)別。
VB和VB.NET的主要區(qū)別:
雖然說VB.NET是VB 6.0的后繼版本,但在我看來VB.NET除了在語法上還保留VB原有的蹤影以外,因?yàn)槎邘缀踉?0%以上保持相似或相同。但在其他很多方面,VB.NET都和VB截然不同。也許正是這些不同點(diǎn),才使得VB.NET功能更強(qiáng)大,更有生命力,但同樣也為VB程序員轉(zhuǎn)型為為VB.NET程序員帶來了困難。因?yàn)閂B.NET提出了很多新的功能、概念和觀點(diǎn),掌握VB.NET不僅要掌握語法,還需要理解并運(yùn)用這些新的功能、概念和觀點(diǎn)。當(dāng)然也需要掌握.Net框架,理解CLR(Common Language Runtime,通用語言進(jìn)行時(shí))。下面就從數(shù)據(jù)訪問、Web開發(fā)和組件創(chuàng)建三個(gè)方面來簡要談?wù)劧叩膮^(qū)別:
1. 數(shù)據(jù)訪問:
不同點(diǎn)主要表現(xiàn)在:數(shù)據(jù)訪問技術(shù)、數(shù)據(jù)訪問具體實(shí)現(xiàn)方法和數(shù)據(jù)綁定上的不同。
在數(shù)據(jù)訪問技術(shù)上,VB 6.0是通過ADO(Active X Data Object,即:Active X數(shù)據(jù)對象)來實(shí)現(xiàn)對數(shù)據(jù)庫訪問的。同時(shí)為了保證對早期版本的兼容,也提供RDO(遠(yuǎn)程數(shù)據(jù)對象)和DAO(數(shù)據(jù)訪問對象)二種數(shù)據(jù)訪問技術(shù)。在 VB.NET中是使用ADO.NET來訪問數(shù)據(jù)庫,ADO.NET是.NET框架的一部分,其對應(yīng)的類庫是.Net FramWork SDK的真子集。ADO和ADO.NET這兩種技術(shù)在概念、功能和實(shí)現(xiàn)上都有許多差異。由于篇幅所限,這里就不一一介紹了。其實(shí)在VB.NET中也可以使用ADO來訪問數(shù)據(jù)庫,但ADO在VB.NET中是以COM組件的形式出現(xiàn)的,通過添加引用才可以在VB.NET中使用。添加引用的過程,其實(shí)就是對COM組件互操作。經(jīng)過互操作后的COM組件,已經(jīng)并非先前意義上的COM組件,而是轉(zhuǎn)變成可供VB.NET直接使用的.Net類庫。
在數(shù)據(jù)訪問的具體實(shí)現(xiàn)方法上,VB 6.0實(shí)現(xiàn)數(shù)據(jù)訪問主要是兩種方法:其一是在程序設(shè)計(jì)階段,可通過把數(shù)據(jù)源綁定到ADODC控件或使用數(shù)據(jù)環(huán)境;其二在運(yùn)行時(shí),可以通過編程方式創(chuàng)建記錄集RecordSet對象并與記錄集對象交換數(shù)據(jù)。同樣在VB.NET中實(shí)現(xiàn)數(shù)據(jù)訪問的方法主要也是二種:其一是在程序設(shè)計(jì)階段,通過創(chuàng)建、配置數(shù)據(jù)適配器DataAdapter和生成數(shù)據(jù)集DataSet;其二在運(yùn)行中,通過編程方式動(dòng)態(tài)創(chuàng)建、配置數(shù)據(jù)適配器和創(chuàng)建、生成數(shù)據(jù)集。
在數(shù)據(jù)綁定(Data Bind)上,在VB 6.0中實(shí)現(xiàn)數(shù)據(jù)綁定通過設(shè)置控件的下列屬性來實(shí)現(xiàn):DataChanged、DataField、DataFormat、DataMember 和 DataSource。通常是把控件的顯示屬性綁定到數(shù)據(jù)源中的相應(yīng)字段。在VB.NET中,數(shù)據(jù)綁定的應(yīng)用范圍可廣泛得多,VB.NET中可以將任何控件的任何屬性綁定到包含數(shù)據(jù)的任何結(jié)構(gòu)中。
2. Web開發(fā):
VB是使用Active Server Page(簡稱ASP)來創(chuàng)建在 Web應(yīng)用程序。在ASP中,編寫Web頁面并非純正的VB語言,而是VB腳本語言--VBScript。在VB.NET中是使用ASP.NET技術(shù)來編寫Web頁面。在ASP.NET中使用的也不再是腳本語言,而是真正意義編程語言,其中就可以是VB.NET。開發(fā)過ASP頁面的朋友都清楚,雖然編寫ASP頁面對開發(fā)工具要求很低,但由于其是面向過程式開發(fā),所以稍微復(fù)雜一點(diǎn)的ASP代碼都顯得雜亂無章,這都給程序設(shè)計(jì)、調(diào)試、修改帶來了麻煩。而VB.NET是建立在新的框架結(jié)構(gòu)上,VB.NET完全支持Web編程。憑借ASP.NET的Web 應(yīng)用程序、XML Web services等等基于Web上的功能,使得VB.NET開發(fā)Web 頁面與開發(fā)Windows編程很相似,Web頁面代碼也不顯得有條有理了。
3. 組件創(chuàng)建:
在使用VB和VB.NET編寫應(yīng)用程序時(shí),雖然都可以通過從工具箱中選擇組件,通過拖入方式在應(yīng)用程序中加入組件,但二者在實(shí)現(xiàn)機(jī)理上卻存在根本不同。在VB 6.0中,應(yīng)用程序中創(chuàng)建的組件全部是COM組件,即可在COM應(yīng)用程序中使用的ActiveX控件、ActiveX 類型的DLL 和 ActiveX類型的EXE。而在VB.NET中,向窗體中拖入的組件,都是基于繼承,從.Net框架提供的SDK中相應(yīng)的類繼承,經(jīng)過實(shí)例化后,通過添加功能才把組件加入到設(shè)計(jì)窗體中。這些過程都可以在VB.NET的源代碼中找到。VB.NET中使用的每一個(gè)組件都是從Component或Control基類派生出來的。
當(dāng)然VB和VB.NET之間還存在很多差別,如:VB 6.0 只提供單線程模式,并不支持多線程。而在VB.NET全面支持多線程。并且在VB.NET中還增加了結(jié)構(gòu)化異常處理等新的功能。所以對于那些VB的程序員,從VB程序員轉(zhuǎn)型到VB.NET就有極強(qiáng)的必要性,下面就簡要介紹一下這種必要性。
【編輯推薦】