日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
經(jīng)典講解CLR是什么?

CLR是什么呢?上次講到運(yùn)行在.NET Framework中的代碼叫做managed code,反之叫做unmanaged code。相比unmanaged code,managed code 有很多好處,比如可以用多種編程語言編寫、提高安全性、易于版本控制和程序發(fā)布等等。

創(chuàng)新互聯(lián)公司主營(yíng)寧城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),寧城h5微信小程序定制開發(fā)搭建,寧城網(wǎng)站營(yíng)銷推廣歡迎寧城等地區(qū)企業(yè)咨詢

這些都是由CLR提供的。但也有一些不利點(diǎn),最容易想到的就是代碼運(yùn)行速度問題了。

要為managed code提供以上功能,CLR是什么呢?必須知道代碼中的數(shù)據(jù)類型、類和與她有關(guān)連的assembly的定義。這些信息叫做metadata,而metadata就包含在代碼中的某個(gè)部分(編譯后)。CLR利用這個(gè)metadata加載代碼段、管理內(nèi)存、執(zhí)行方法調(diào)用等操作。

.NET出來以前,在不同編程語言之間共享原代碼,簡(jiǎn)直是不可能的事情。因?yàn)槊總€(gè)編程語言定義的數(shù)據(jù)類型不同,而且語法也不同。微軟大師們想到了把數(shù)據(jù)類型統(tǒng)一的好辦法。這個(gè)技術(shù)叫CTS(common type system)?,F(xiàn)在做項(xiàng)目開發(fā)就比較簡(jiǎn)單了(用不同語言),比如一個(gè)項(xiàng)目組里有會(huì)用VB的,會(huì)用C++的。

可能以前的方法是把兩個(gè)人之間互相調(diào)用的功能寫成DLL或COM。但現(xiàn)在不用這么麻煩了,你直接就可以使用其他語言編寫的代碼了。具體一點(diǎn),用VB.NET可以繼承C++.NET寫的類,反過來也是可以的。

我們安裝軟件的時(shí)候常碰到這樣的提示 - 系統(tǒng)中的組件比要安裝的組件的新,你要替換還是保留?是不是很討厭?!現(xiàn)在開始你就用.NET吧,她不會(huì)因?yàn)檫@個(gè)“小”問題而打擾你了。

因?yàn)槊總€(gè)代碼都包含與她相關(guān)的metadata,CLR會(huì)根據(jù)這個(gè)信息來管理代碼的不同版本。而且因?yàn)椴挥冒汛a的信息注冊(cè)到注冊(cè)表,所以可以用X-COPY的方式安裝代碼(就是簡(jiǎn)單的拷貝粘貼了)。

是用VB做好呢?還是用C++做好呢?這些問題是我們做項(xiàng)目的時(shí)候常要考慮的問題。但在.NET用什么編程語言已經(jīng)變得不重要了(但還是有一定的差別,在特定項(xiàng)目中),因?yàn)镃LR提供CTS(還有base class library),而且都運(yùn)行在CLR上面。

在.NET中VB,C++等語言都有了相當(dāng)多的提高,而且有了新的語言C#。C#已經(jīng)申請(qǐng)了標(biāo)準(zhǔn)而且通過,可想而知她的POWE了。大家知道borland也發(fā)布了相關(guān)的開發(fā)工具C# builder。

關(guān)于CLR是什么做個(gè)小結(jié)

1、.NET代碼都包含與自己相關(guān)的信息叫做metadata。

2、 CLR提供CTS(CLS也有功勞),所以可以在不同編程語言之間共享原代碼。

3、 用metadata管理代碼信息(不是利用注冊(cè)表),所以代碼易于安裝。

4、 使用統(tǒng)一的數(shù)據(jù)類型和類庫,所以編程語言的選擇變得不重要了,而且易于團(tuán)隊(duì)開發(fā)。

代碼在CLR中的運(yùn)行過程

1、選擇編譯器

首先CLR選擇編譯器,因?yàn)镃LR中可以運(yùn)行不同語言開發(fā)出來的代碼。

2、把代碼編譯成MSIL

CLR利用選擇的編譯器生成MSIL(Microsoft intermediate language)和metadata把她們加載到PE(portable executable file)。

MSIL:解釋語言,包含代碼信息,讓JIT易于編譯成機(jī)器語言。與操作系統(tǒng)和編程語言無關(guān)。

PE:可執(zhí)行文件格式,windows就是DLL或EXE了。

3、用JIT編譯器把MSIL編譯成機(jī)器語言

有兩種方式一種是只編譯當(dāng)前執(zhí)行的代碼段,另一種是把整個(gè)代碼一次性編譯。JIT會(huì)檢測(cè)代碼的安全性。

4、 執(zhí)行代碼

代碼***調(diào)用就會(huì)編譯成機(jī)器代碼,再次調(diào)用的時(shí)候就不再重新編譯了。

相關(guān)工具

-MSIL生成器 - MSIL Assembler(ilasm.exe)

-MSIL反編譯器 - MSIL Assembler(ildasm.exe)

通過看完此篇文章,你一定了解了CLR是什么。


網(wǎng)站題目:經(jīng)典講解CLR是什么?
文章位置:http://m.5511xx.com/article/cdhgoco.html