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

圖文講解.NET CLR是什么

開發 后端
文章主要介紹了.NET CLR是什么。兩個圖例可以讓你清晰的知道C#和.NET CLR的區別,CLR為開發者提供了哪些服務,讓你深入了解其中的奧秘。

大家首先要清楚的是,.NET平臺與C#不是一回事.這點大家一定要明白,對開發人員來講他有兩個概念。第一,它是C#,VB.net等程序運行的平臺。第二,它因為為這些語言提供了豐富的類庫(稱之為基類庫),.NET CLR是什么我們現在來一起看看吧。

NET CLR是什么

對于一個將要面向.NET平臺進行開發的人來說,了解一下.NET平臺的整個構成是非常有必要的,如圖1所示即說明了.NET平臺的整體結構:

.NET平臺的整體結構

這個圖就是著名的.NET平臺結構圖,從這個圖上可以看到,.NET Framework是在Microsoft.NET平臺上開發的基礎,ASP.NET、Windows Forms 和VS.NET都不過是.NET平臺開發的一部分,他的用于.NET應用程序的開發及展示。.NET平臺的核心技術為:通用語言運行時(CLR:Common Language Runtiome)、基類庫(BCL:Base Class Library)、.NET語言及Visual Studio.NET

從這個圖上可以看出,.NET Framework是架構在Windows平臺上的一個虛擬的運行平臺,你可以想象將最下層Windows換做其他的操作系統,例如說Linux,一樣可以實現使用符合CLS(Common Language Specification,通用語言規范)的.NET語言,(VB.NET、C#、JScript.NET等),來創建ASP.NET或Windows Form(可能會叫Linux Forms)應用程序的功能,這其實就是Mono計劃要實現的功能。所以可以這么認為,理論上,C#是一種可以跨平臺的語言,這很象Java。C#另一個比較象Java的地方是,它也是一種(特殊意義上的)語言,同Java一樣,C#編寫的程序代碼也是先通過C#編譯器編譯為一種特殊的字節代碼, (Microsoft Intermediate Language,MSIL,微軟)中間語言,運行時再經由特定的編譯器(JIT編譯器,Just In tIME,  JITer)編譯為機器代碼,以供操作系統執行.
 不僅是C#語言,所有.NET語言(將會包括我們常用的幾十種現代的編碼語言)都可以編寫面向CLR的程序代碼,這種代碼在.NET中被稱為托管代碼(Managed Code),所有的Managed Code都直接運行在CLR上,具有與平臺無關的特性。

解釋性的語言很安全,并且可以通過他的運行平臺為其賦予更多的功能,例如自動內存管理,異常處理等,事實上,C#語言的許多特點都是由CLR提供的,如圖2所示的CLR結構圖說明了這一點。

CLR結構圖

從圖2可以看到,C#所具有的許多特點都是由CLR提供的,如類型安全(Type Checker)、垃圾回收(Garbage Collector)、異常處理(Exception Manager)、向下兼容(COM Marshaler)等,具體的說,.NET上的CLR為開發者提供如下的服務:
◆平臺無關:CLR實際上是提供了一項使用了虛擬機技術的產品,他構架在操作系統之上,并不要求程序的運行平臺是 Windows系統,只要是能夠支持它的運行庫的系統,都可以在上面運行.NET應用。所以,一個完全由托管代碼組成的應用程序,只要編譯一次,就可以在任何支持.NET的平臺上運行.
◆跨語言集成:CLR語序開發這以任何語言進行開發,用這些語言開發的代碼,可以在CLR環境下緊密無縫的進行交叉調用,例如,可以用VB聲明一個基類對象,然后在C#代碼中直接創建次基類的派生類。
◆自動內存管理:CLR提供了拉架收集機制,可以自動管理內存。當對象或變量的生命周期結速后,CLR會自動釋放他們所占用的內存.
◆跨語言異處理
◆版本控制
◆.NET安全
◆簡單的組件互操作性。
◆自描述組件:自描述組件是指將所有數據和代碼都放在一個文件中的執行文件。自描訴組件可以大大簡化系統的開發和配置,并且改進系統的可靠性。

通用語言運行時(CommonLanguageRuntiome,CLR)最早被稱為下一代Windows服務運行時(NGWS Runtime).它是直接建立在操作系統上的一個虛擬環境,主要的任務是管理代碼的運行。CLR現在支持幾十種現代的編程語言為它編寫代碼,然后以一種中間語言(Intermediate Langeoage,IL)代碼的形成被執行。并且,CLR還提供了許多功能以簡化代碼的開發和應用配置,同時也改善了應用程序的可靠性。如你所知,如果某種語言的編譯器是以運行時為目標的,那么利用該語言開發生成的代碼在.NET中被稱為托管代碼,因為這樣的代碼是直接運行在CLR上的,所以具有與平臺無關的特點。

在.NET平臺結構圖中,CLR的上面是.NET的基類庫,這組基類庫包括從基本輸入輸出到數據訪問等各方面,提供了一個統一的面向對象的,層次化的,可擴展的編程接口。從.NET平臺結構圖中也可以看到,基類庫可以被各種語言調用和擴展,也就是說不管是 C#,VB.NET還是VC++.NET,都可以自由的調用,.NET的類庫,因為C#自身只有77個關鍵字,而且語法對程序員來說無需費工夫學習。 BCL則相反,它包含了4500個以上的類和無數的方法,屬性,在你的C#程序中隨時都可能會用到它來完成自己的任務.

還有一個很重要的概念你需要明白,這就是公共語言架構(Common Language Infrastructure,CLI).CLI是CLR的一個子集,也就是.NET中最最終對編譯成MSIL代碼的應用程序的運行環境進行管理的那一部分。在CLR結構圖中CLI位于下半部分,主要包括類加載器(Class Loader)、實時編譯器(IL To Native Compilers)和一個運行時環境的垃圾收集及將使用任何語言編寫的代碼,通過其特定的編譯器轉換為MSIL代碼之后運行其上,甚至還可以自己寫 MSIL在CLI上運行.以上就是介紹.NET CLR是什么。

【編輯推薦】

  1. 使用CLR存儲過程來傳回訊息實戰案例
  2. 經典案例之創建CLR存儲過程
  3. 概括Visual Studio CLR調試器兩種方法
  4. Visual Studio中SQL SERVER CLR代碼調試工具使用講解
  5. 全面概括SQL SERVER調用CLR類庫實現步驟
責任編輯:田樹 來源: cnblogs
相關推薦

2009-09-17 18:27:40

CLR是什么

2009-09-17 18:40:12

CLR是什么

2009-11-03 15:24:14

ADO.NET對象模型

2009-10-29 09:48:12

DAO.NET Dat

2009-11-04 13:20:28

ADO.NET Dat

2009-09-18 13:05:59

.NET CLR

2009-09-18 10:40:05

CLR存儲過程

2009-10-23 09:36:25

.Net Compac

2009-10-23 10:50:04

CLR安全性

2009-09-25 17:03:29

Hibernate是什

2009-10-22 09:29:23

CLR是什么

2010-09-08 17:40:56

協議棧是什么

2009-10-13 17:08:10

CLR VB.NET

2009-10-22 11:25:08

CLR函數壓縮

2010-09-06 16:53:38

Windows PPP

2009-09-18 11:29:23

.NET CLR

2009-03-17 16:29:53

SQL ServerCLR.NET Framew

2012-06-12 09:46:21

Linux碎片整理

2009-09-18 11:13:09

.Net CLR

2009-10-23 11:12:21

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲第一天堂 | 小草久久久久久久久爱六 | 一级做a爰片性色毛片 | 一区二区三区欧美 | 亚洲传媒在线 | 青青草一区二区 | 九九热这里只有精品6 | 亚洲精品在线免费 | 国产日韩欧美 | 国偷自产av一区二区三区 | 色男人的天堂 | 一区二区精品视频 | 国产精品二区三区 | www亚洲精品 | 二区视频| 精品91久久 | 国产一二区视频 | 亚洲精品天堂 | 国产精品成人一区二区三区 | 免费激情网站 | 国产精品久久a | 国产欧美性成人精品午夜 | 亚洲一区二区在线播放 | 国产99精品| 午夜免费观看网站 | 亚洲成人一区二区三区 | 亚洲精品在线免费 | 日韩三区 | 成人小视频在线观看 | 欧美日韩综合精品 | 国产乱精品一区二区三区 | 久久久久国产精品免费免费搜索 | 天天弄天天操 | 日韩在线播放网址 | 日韩三级| 成人亚洲在线 | 99精品在线观看 | 亚洲视频在线一区 | 天天爽夜夜骑 | 国产亚洲精品久久久久久牛牛 | 亚洲国产视频一区二区 |