欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡(jiǎn)單了解.NET Framework

 更新時(shí)間:2020年07月17日 10:26:24   作者:a說(shuō)你呢  
這篇文章主要介紹了.NET Framework的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的學(xué)習(xí).NET Framework,有意向想學(xué)習(xí).NET Framework的朋友可以了解下

一、CLR集成了很多種語(yǔ)言,他們之間可以互相訪(fǎng)問(wèn),是因?yàn)镃LR建立的標(biāo)準(zhǔn)的類(lèi)型集、元數(shù)據(jù)、公共執(zhí)行環(huán)境。

  由于各種語(yǔ)言間存在著極大的差別,如區(qū)分大小寫(xiě),有的不支持unsigned、操作符重載或者參數(shù)可變方法,所以想要?jiǎng)?chuàng)建這種讓別的語(yǔ)言能訪(fǎng)問(wèn)的程序,自己所用的編程語(yǔ)言只能使用其它語(yǔ)言都支持的那些特性。

  為了幫助我們更好的做到這一點(diǎn),Microsoft定義一個(gè)“公共語(yǔ)言規(guī)范(Common Language Specification,CLS)”。

二、CTS定義了一組語(yǔ)言編譯器必須遵循的規(guī)則,以定義、引用、使用和存儲(chǔ)引用類(lèi)型和值類(lèi)型。因此,遵循CTS在不同語(yǔ)言中編寫(xiě)的對(duì)象才能彼此交互。但并不是所有的類(lèi)型都可以用于所有的語(yǔ)言。

三、Language Complile:語(yǔ)言編譯器,每種語(yǔ)言基于.net的語(yǔ)言都會(huì)有一個(gè)面向CLR的托管模塊,也可以理解為語(yǔ)言

  編譯器,把對(duì)應(yīng)的語(yǔ)言編譯成MSIL。

  MSIL:微軟中間語(yǔ)言,CLR負(fù)責(zé)把中間語(yǔ)言編譯成為執(zhí)行程序的計(jì)算機(jī)可以理解的語(yǔ)言,是一種介于高級(jí)語(yǔ)言和匯編語(yǔ)言的偽匯編語(yǔ)言。

  JIT(Just In-Time Compile):即時(shí)編譯,將MSIL解釋為程序可以理解的語(yǔ)言。

四、CLR的執(zhí)行模型

  1、將源代碼(vb、cs)編譯成托管代碼塊。托管代碼塊有中間語(yǔ)言和元數(shù)據(jù)組成。

  2、將托管代碼合并成程序集,也叫組件(dll)。程序集中包含了一張叫做“清單”的模塊,記錄了構(gòu)成程序集模塊構(gòu)成的信息包括資源文件及需要引用自己的信息。

  3、加載公共語(yǔ)言運(yùn)行庫(kù)。

  4、執(zhí)行程序集的代碼。

       5、生成本地代碼。

五、CLI,公共語(yǔ)言基礎(chǔ)架構(gòu)(Common Language Infrastr)。 CLI是一種規(guī)范。而CLR則是對(duì)這種規(guī)范的一個(gè)實(shí)現(xiàn)。

六、BCL,基礎(chǔ)類(lèi)庫(kù)(Base Class Library)

  BCL是一個(gè)公共變成框架,稱(chēng)為基類(lèi)庫(kù),所有語(yǔ)言的開(kāi)發(fā)者都能利用它。是CIL(Common Language Infrastructure ture,公共語(yǔ)言基礎(chǔ)結(jié)構(gòu))的規(guī)范之一,主要包括:執(zhí)行網(wǎng)絡(luò)操作,執(zhí)行I/O操作,安全管理,文本操作,數(shù)據(jù)庫(kù)操作,XML操作,與事件日志交互,跟蹤和一些診斷操作,使用非托管代碼,創(chuàng)建與調(diào)用動(dòng)態(tài)代碼等,粒度相對(duì)較小,為所有框架提供基礎(chǔ)支持。

七、FCL,框架類(lèi)庫(kù)(Framework Class Library)

  FCL提供了大粒度的編程框架,它是針對(duì)不同應(yīng)用的框架,F(xiàn)CL大部分實(shí)現(xiàn)都引用了BCL,例如我們常說(shuō)的開(kāi)發(fā)框

架:ASP.NET、MVC、WCF和WPF等等,提供了針對(duì)不同層面的變成框架。

八、托管代碼與非托管代碼

  1、托管代碼就是Visual.NET和C#編譯器編譯出來(lái)的代碼,托管代碼在公共語(yǔ)言運(yùn)行庫(kù)(CLR)中運(yùn)行。

  2、非托管代碼是運(yùn)行在公共語(yǔ)言運(yùn)行庫(kù)環(huán)境(CLR)的外部,由操作系統(tǒng)直接執(zhí)行的代碼。非托管代碼必須提供自己的垃圾回收、類(lèi)型檢查、安全支持等服務(wù)。

  區(qū)別:

      1、托管代碼是一種中間語(yǔ)言,運(yùn)行在CLR上;

         非托管代碼被編譯為機(jī)器碼,運(yùn)行在機(jī)器上。

      2、托管代碼獨(dú)立于平臺(tái)和語(yǔ)言,能更好的實(shí)現(xiàn)不同語(yǔ)言平臺(tái)之間的兼容;

        非托管代碼依賴(lài)于平臺(tái)和語(yǔ)言。

      3、托管代碼可享受CLR提供的服務(wù)(如安全檢測(cè)、垃圾回收等),不需要自己完成這些操作;

        非托管代碼需要自己提供安全檢測(cè)、垃圾回收等操作。

      4、.Net有很多非托管的資源,比如StreamWriter、Timer、數(shù)據(jù)庫(kù)鏈接。

九、非托管代碼Unsaft

  Unsaft可以用來(lái)修飾類(lèi)、類(lèi)的成員函數(shù)、類(lèi)的全局變量,但不能用來(lái)修飾類(lèi)成員函數(shù)內(nèi)的局部變量,在公共語(yǔ)言運(yùn)行時(shí)(CLR)中,不安全代碼是值無(wú)法驗(yàn)證的代碼。C#中的不安全代碼不一定是危險(xiǎn)的,只是其安全性無(wú)法由CLR進(jìn)行驗(yàn)證的代碼。因此,CLR只對(duì)在完全受信任的程序集中的不安全代碼執(zhí)行操作。如果使用不安全代碼,由您負(fù)責(zé)確保您的代碼不會(huì)引起安全風(fēng)險(xiǎn)或指針錯(cuò)誤。運(yùn)行Unsaft,需要設(shè)置:

    1、單擊“配置屬性”文件夾。

    2、單擊“生成”屬性頁(yè)。

    3、修改“允許不安全代碼塊”屬性。

十、垃圾回收GC

  1、什么是GC?

    GC(Garbage Collector)如其名,就是垃圾收集,這里僅就內(nèi)存而言。

  2、GC的工作原理:

    GC遍歷應(yīng)用程序在Heap(堆)上動(dòng)態(tài)分配的所有對(duì)象,通過(guò)識(shí)別他們是否被引用來(lái)確定那些對(duì)象是已經(jīng)死亡的、哪些仍需要被使用,已經(jīng)不再被應(yīng)用程序所引用的對(duì)象就是已經(jīng)死亡的對(duì)象,即所謂的垃圾,需要被回收。

 十一、.NET的GC機(jī)制兩個(gè)問(wèn)題:

  1、首先,GC并不是能釋放所有的資源。它不能自動(dòng)釋放非托管資源。

  2、GC并不是實(shí)時(shí)性的,這會(huì)造成系統(tǒng)性能上的瓶頸和不確定性。所以有了IDisposable接口,IDisposable接口定義了Dispose方法,這個(gè)方法用來(lái)供程序員顯示調(diào)用以釋放非托管資源。使用using語(yǔ)句可以簡(jiǎn)化資源管理GC.Collect()方法。 

            作用:強(qiáng)制進(jìn)行垃圾回收。

十二、什么是元數(shù)據(jù)?

  元數(shù)據(jù)是一種二進(jìn)制信息,用以對(duì)存儲(chǔ)在公共語(yǔ)言運(yùn)行庫(kù)可移植可執(zhí)行文件(PE)文件或存儲(chǔ)在內(nèi)存中的程序進(jìn)行描述 

       元數(shù)據(jù)存儲(chǔ)以下信息: 程序集的說(shuō)明、類(lèi)型的說(shuō)明、屬性。

十三、.NET Framework 框架體系

十四、.NET Framework概念回顧

    1、IL/MSIL/CIL  Microsoft Intermedidte Language )微軟中間語(yǔ)言(IL是MSIL的縮寫(xiě),譯為中間語(yǔ)言);

    2、CTS (Common Type System) 通用類(lèi)型系統(tǒng)

    3、CLS (Common Language Specification) 公共語(yǔ)言規(guī)范;

    4、CLR (Common Language Runtime) 公共語(yǔ)言運(yùn)行時(shí)(也由的叫公共語(yǔ)言運(yùn)行庫(kù));

    5、JIT?。↗ust in Time)即時(shí)編譯器;

    6、CLI  公共語(yǔ)言基礎(chǔ)架構(gòu)(Common Language Infrastructure)

    7、BCL    基礎(chǔ)類(lèi)庫(kù)(Base Class Library);

    8、FCL 框架類(lèi)庫(kù)(Framework Class Library);

以上就是簡(jiǎn)單了解.NET Framework的詳細(xì)內(nèi)容,更多關(guān)于.NET Framework的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論