偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

VB.NET開(kāi)發(fā)創(chuàng)建.NET應(yīng)用程序

開(kāi)發(fā) 后端
進(jìn)行一個(gè)正確的VB.NET開(kāi)發(fā),可以幫助我們實(shí)現(xiàn)純.NET應(yīng)用程序。這一方式非常有助于企業(yè)的功能需求,在實(shí)際應(yīng)用中體現(xiàn)了非常大的好處。

VB.NET編程語(yǔ)言已經(jīng)推出,就為廣大開(kāi)發(fā)工作者們提供了非常大的好處,其特有的功能大大的吸引了編程人員的眼球。我工作過(guò)的許多公司在選擇VB.NET開(kāi)發(fā)作為他們的核心開(kāi)發(fā)工具時(shí)都經(jīng)歷了一個(gè)長(zhǎng)時(shí)間的抉擇,他們所關(guān)心的最主要的問(wèn)題之一是如果他們不使用C#語(yǔ)言就不能開(kāi)發(fā)出純.NET框架代碼。#t#

主要有兩個(gè)原因使他們得出這樣的結(jié)論:首先,由于VB(6.0或早期版本)運(yùn)行時(shí)的限制,VB在開(kāi)發(fā)COM構(gòu)件的能力方面不如C語(yǔ)言功能強(qiáng)大,他們關(guān)心這些限制是否在.NET中依舊存在;再者,由于微軟提倡將C#作為在.NET平臺(tái)上的主要開(kāi)發(fā)工具,很多VB開(kāi)發(fā)者懷疑微軟是否已經(jīng)在VB.NET改進(jìn)了VB先前版本的功能。

有個(gè)客戶(hù)曾經(jīng)跟我提起過(guò)這個(gè)問(wèn)題,還特意請(qǐng)求我?guī)椭墓驹诓灰蕾?lài)VB6中的任何功能時(shí)如何使用VB.NET作為純.NET開(kāi)發(fā)語(yǔ)言。當(dāng)我問(wèn)他為什么他認(rèn)為VB.NET不是純.NET開(kāi)發(fā)語(yǔ)言時(shí),他告訴我他最近將一個(gè)項(xiàng)目從VB6升級(jí)到VB.NET時(shí),他在VB.NET中看到有很多象Imports Microsoft.VisualBasic和Imports Microsoft.VisualBasic.Compatibilit的輸入語(yǔ)句,這些語(yǔ)句表明了VB.NET開(kāi)發(fā)依舊在使用早期VB版本的一些功能;他說(shuō)“如果VB.NET開(kāi)發(fā)是.NET環(huán)境中一流的開(kāi)發(fā)語(yǔ)言,為什幺還要用到早先VB版本中的功能呢?”。為了回答他的這個(gè)問(wèn)題,并且給VB.NET的開(kāi)發(fā)者提供一個(gè)如何使用這些包的建議,我將在此文章中解釋為什么微軟還在.NET平臺(tái)中實(shí)現(xiàn)VB早期版本的中的一些功能的原因。

VB中的核心動(dòng)態(tài)鏈接庫(kù)(DLL)

將核心VB語(yǔ)言建造到.NET框架的方式同C#一樣,主要的區(qū)別是微軟為VB的開(kāi)發(fā)者將兩個(gè)附加的庫(kù)增加到.NET中。首先,Microsoft.VisualBasic是.NET中可重新分發(fā)包的一個(gè)重要組成部分,它是VB早期版本的功能在.NET中的一個(gè)實(shí)現(xiàn),同時(shí)兩者也有一些細(xì)微的差別。實(shí)際上,有些VB函數(shù)(尤其是類(lèi)型轉(zhuǎn)換部分的函數(shù))比.NET的通用語(yǔ)言運(yùn)行時(shí)(CLR)所提供的對(duì)象有著更好的性能。例如,使用CInt()就比使用Convert對(duì)象要好;另外,有些VB函數(shù)替你做了一些額外的工作,例如,函數(shù)CStr()在轉(zhuǎn)換字符串時(shí)也自動(dòng)進(jìn)行了區(qū)域性方面的處理,如果你用Convert對(duì)象就必須自己做這些額外的工作。

同時(shí).NET中的庫(kù)也提供了VB開(kāi)發(fā)者原來(lái)經(jīng)常使用的一些通用環(huán)境常量,例如,vbCrLf回車(chē)換行符。其實(shí)如果你不想使用原來(lái)的老式常量,你能使用System.Environment.Newline方法或System.Convert.ToChar(13)&System.Convert.ToChar(10)來(lái)得到同樣的常量。象vbCrLf這樣的常量引用在.NET中直接被映像到框架底層的調(diào)用,所以在性能方面應(yīng)該沒(méi)有什么影響。像上面這種情況,編譯器將它優(yōu)化成單個(gè)字符串,如果它是一個(gè)變量,它就直接被映像到\r\n,將它翻譯成一個(gè)回車(chē)換行符。VB早期版本的函數(shù)也直接被映像到.NET框架底層的調(diào)用,象msgbox語(yǔ)句直接映像成.NET框架中的MessageBox,這種情況由于兩者編譯完了以后生成的中間語(yǔ)言(IL)基本上是相同的,所以在性能方面幾乎沒(méi)有什么影響。

在VB早期版本中的有些特性,象函數(shù)InputBox、控制數(shù)組和對(duì)ADO的支持在.NET框架中的沒(méi)有直接的等同物。但是對(duì)于這些不能直接支持的特性,微軟提供了另外一個(gè)名為Microsoft.VisualBasic.Compatibility的庫(kù),這個(gè)庫(kù)是為使VS.NET具有向下兼容性而提供的,所以如果你的VB應(yīng)用程序沒(méi)有升級(jí)一定不要使用其中的功能。Microsoft.VisualBasic.Compatibility包含對(duì)控制數(shù)組、環(huán)境函數(shù)和字體轉(zhuǎn)換的支持。微軟所提供的另外一個(gè)名為Microsoft.VisualBasic.Compatibility.Data庫(kù)可以支持ADO對(duì)象、接口和方法,使用這個(gè)庫(kù)可以象早期VB版本中的ADO一樣來(lái)操縱數(shù)據(jù)庫(kù)。關(guān)于是否應(yīng)該花費(fèi)時(shí)間和精力來(lái)學(xué)習(xí)這些老版本中的功能,你應(yīng)該留意一下VS.NET幫助文件的警告信息。

“警告:當(dāng)你用Visual Basic.NET開(kāi)發(fā).NET應(yīng)用程序時(shí),最好不要使用VisualBasic.Compatibility命名空間中所提供的功能,將來(lái)的VB版本可能不再支持此命名空間,使用.NET中別的命名空間所提供的相同功能的函數(shù)和對(duì)象。”

由此可見(jiàn),在使用VB.NET開(kāi)發(fā)時(shí),你應(yīng)該注意可以使用VB早期版本中的那些功能,不可以使用那些功能,不可使用的部分.NET中別的包中都提供了相同的功能。清楚這些以后,這樣你既可以使用VB早期版本中的一些功能,又可以開(kāi)發(fā)純.NET應(yīng)用程序。所以,你大可不必為創(chuàng)建純.NET應(yīng)用程序放棄在VB上的多年的培訓(xùn)投資和實(shí)踐經(jīng)驗(yàn)而使用C#,因?yàn)閂B.NET同樣可以利用.NET框架提供給C#的所有功能。實(shí)際上,我曾經(jīng)向我的客戶(hù)推薦不要使用微軟提供的升級(jí)向?qū)?,因?yàn)樵撓驅(qū)г谏?jí)過(guò)程中會(huì)將.NET中所提供的向下兼容的庫(kù)增加到.NET項(xiàng)目中,所以應(yīng)該直接構(gòu)造.NET應(yīng)用程序,然后將原來(lái)應(yīng)用程序中的代碼移植到新應(yīng)用程序中,用.NET新的功能替代不被.NET支持的老式功能,這樣開(kāi)發(fā)出的應(yīng)用程序?qū)⑹羌?NET應(yīng)用程序。

Microsoft.VisualBasic支持純.NET應(yīng)用程序

Microsoft VisualBasic是VB語(yǔ)言自身在.NET框架中的實(shí)現(xiàn),它所提供的功能是真正基于.NET的,而不僅僅是為了與VB早期版本的兼容。在VS.NET項(xiàng)目中的那些關(guān)于Microsoft.VisualBasic的Imports語(yǔ)句不會(huì)在性能方面造成什么影響,主要作用是當(dāng)你用到相關(guān)功能后,它會(huì)告之編譯器在什么地方可以找到調(diào)用的代碼。

.NET框架會(huì)長(zhǎng)期保留Microsoft.VisualBasic包,并且總是可以被重新發(fā)布。正如VB.NET產(chǎn)品組的一個(gè)成員所說(shuō),“你并不能因?yàn)閯h除Microsoft.VisualBasic.dll而獲得什么,這個(gè)動(dòng)態(tài)鏈接庫(kù)中的功能并不是VB早期版本所遺留下來(lái)的,它們?cè)赩B.NET開(kāi)發(fā)中已經(jīng)被重新實(shí)現(xiàn)了,并且被VB的開(kāi)發(fā)者所熟知,具有向前兼容性,所以使用它不會(huì)對(duì)應(yīng)用程序有什么危害。最后,如果你重用VB例子中的代碼,你也會(huì)用到這些功能。刪除這個(gè)動(dòng)態(tài)鏈接庫(kù)并不能使你開(kāi)發(fā)更純的.NET應(yīng)用程序,你只是丟失了一些對(duì)你有用的類(lèi)罷了。”

責(zé)任編輯:曹凱 來(lái)源: IT168
相關(guān)推薦

2009-10-21 09:24:31

VB.NET應(yīng)用程序

2009-10-27 12:20:06

VB.NET多線程應(yīng)用

2009-10-09 17:01:32

VB.NET多線程

2009-11-03 09:26:13

VB.NET方法

2009-10-14 14:04:29

VB.NET創(chuàng)建Web

2010-01-12 18:00:50

VB.NET界面

2010-01-12 16:20:44

VB.NET類(lèi)

2009-10-09 15:59:41

VB.NET對(duì)象

2009-10-30 15:37:23

VB.NET Sub創(chuàng)

2009-11-02 15:57:36

VB.NET WEB

2010-01-07 15:25:11

VB.NET數(shù)組

2009-11-10 16:46:52

VB.NET指針應(yīng)用

2009-10-26 10:44:27

VB.NET API函

2010-01-07 15:57:02

VB.NET ForEach

2010-01-18 17:09:52

VB.NET創(chuàng)建虛擬目

2009-10-10 15:43:51

2009-11-02 13:54:27

VB.NET shel

2009-10-15 10:46:03

PPC客戶(hù)端程序VB.NET創(chuàng)建

2010-01-14 18:14:22

VB.NET開(kāi)發(fā)特點(diǎn)

2009-10-27 13:34:32

VB.NET WEB服
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)