成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

經(jīng)典講解 CLR是什么?

開發(fā) 后端
CLR是什么呢?必須知道代碼中的數(shù)據(jù)類型、類和與她有關(guān)連的assembly的定義。這些信息叫做metadata,而metadata就包含在代碼中的某個部分(編譯后)。

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

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

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

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

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

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

因為每個代碼都包含與她相關(guān)的metadata,CLR會根據(jù)這個信息來管理代碼的不同版本。而且因為不用把代碼的信息注冊到注冊表,所以可以用X-COPY的方式安裝代碼(就是簡單的拷貝粘貼了)。

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

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

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

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

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

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

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

代碼在CLR中的運行過程

1、選擇編譯器

首先CLR選擇編譯器,因為CLR中可以運行不同語言開發(fā)出來的代碼。

2、把代碼編譯成MSIL

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

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

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

3、用JIT編譯器把MSIL編譯成機器語言

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

4、 執(zhí)行代碼

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

相關(guān)工具

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

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

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

【編輯推薦】

  1. 淺談CLR線程池的缺點及解決方法
  2. CLR線程池的作用與原理淺析
  3. 簡單介紹CLR泛型及其優(yōu)勢
  4. 淺談CLR 4.0安全模型的運作機制
  5. 微軟MVP教你如何看懂.NET CLR基本術(shù)語
責(zé)任編輯:阡陌 來源: 博客
相關(guān)推薦

2009-10-22 16:08:52

.NET CLR是什么

2009-09-18 10:40:05

CLR存儲過程

2009-09-17 18:40:12

CLR是什么

2009-10-23 10:50:04

CLR安全性

2009-09-25 17:03:29

Hibernate是什

2009-10-22 09:29:23

CLR是什么

2009-10-22 14:05:55

CLR存儲過程

2010-09-08 17:40:56

協(xié)議棧是什么

2009-10-22 11:25:08

CLR函數(shù)壓縮

2010-05-27 17:17:37

Subversion入

2009-10-23 11:12:21

SQL Server

2010-05-11 15:19:29

2009-11-09 09:23:10

WCF數(shù)據(jù)契約

2010-03-03 14:05:36

Python實例應(yīng)用

2009-10-23 12:44:35

SQL SERVER

2009-09-11 09:15:32

C# get set

2010-06-02 13:37:28

Linux IPv6配

2009-10-22 13:02:47

SQL SERVER

2009-10-23 09:36:25

.Net Compac

2021-05-31 07:01:46

限流算法令牌
點贊
收藏

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

主站蜘蛛池模板: 久久www免费人成看片高清 | 五月婷婷中文 | 亚洲欧美bt | 久久久久国产精品 | 天天看逼 | 99国产精品久久久久老师 | 国产精品视频一区二区三区不卡 | 2020国产在线 | 91在线电影 | 日本亚洲欧美 | 91福利电影在线观看 | 三级在线观看 | 久久国产精品久久国产精品 | 日本黄色一级片视频 | 中文字幕一区二区三区四区 | 日韩黄色免费 | 亚洲欧美日本在线 | 亚洲成人午夜在线 | 国产亚洲一区二区三区在线观看 | 极品销魂美女一区二区 | 一级黄色片一级黄色片 | 国产精品亚洲欧美日韩一区在线 | chengrenzaixian| 91成人| 久久久成人一区二区免费影院 | 亚洲精品日韩一区二区电影 | 午夜精品视频在线观看 | 日韩精品亚洲专区在线观看 | 国产成人久久精品一区二区三区 | 成人av播放 | 欧洲视频一区 | 国产精品免费一区二区 | 红色av社区 | 少妇午夜一级艳片欧美精品 | av一区二区三区四区 | 久久九九99 | 欧美精品欧美精品系列 | 无码日韩精品一区二区免费 | 成人精品鲁一区一区二区 | 黄色一级视频免费 | 最新午夜综合福利视频 |