.NET 不是一門(mén)語(yǔ)言,也不是一門(mén)技術(shù),.NET 是一個(gè)框架,在 .NET 框架上可以有很多種語(yǔ)言,包括 VB.NET,它們所開(kāi)發(fā)的程序源代碼并不是直接編譯成能夠直接在操作系統(tǒng)上執(zhí)行的二進(jìn)制本地代碼,而是被編譯成為中間代碼,然后通過(guò) .NET Framework的通用語(yǔ)言運(yùn)行時(shí)(CLR)——執(zhí)行。
所有的.Net編程語(yǔ)言都被編譯成這種被稱(chēng)為MSIL(Microsoft Intermediate Language )的中間代碼,這與Java的字節(jié)碼類(lèi)似。因此雖然最終的程序在表面上仍然與傳統(tǒng)意義上的可執(zhí)行文件都具有“.exe”的后綴名。但是實(shí)際上,如果計(jì)算機(jī)上沒(méi)有安裝 .Net Framework,那么這些程序?qū)⒉荒軌虮粓?zhí)行。
在程序執(zhí)行時(shí),.Net Framework將中間代碼翻譯成為二進(jìn)制機(jī)器碼,從而使它得到正確的運(yùn)行。最終的二進(jìn)制代碼被存儲(chǔ)在一個(gè)緩沖區(qū)中。所以一旦程序使用了相同的代碼,那么將會(huì)調(diào)用緩沖區(qū)中的版本。這樣如果一個(gè).Net程序第二次被運(yùn)行,那么這種翻譯不需要進(jìn)行第二次,速度會(huì)明顯加快。
VB.NET代碼之所以不直接編譯成二進(jìn)制機(jī)器碼,是基于.NET跨平臺(tái)這一目標(biāo)的考慮。
聯(lián)系客服