国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

.net框架程序設計讀書筆記二(Microsoft .net 框架開發平臺體系架構)

.net框架程序設計讀書筆記二(Microsoft .net 框架開發平臺體系架構)

更新時間:2022-05-03 文章作者:未知 信息來源:網絡 閱讀次數:

第一章:Microsoft .net 框架開發平臺體系架構



本章的目標:對.net框架體系架構有一個總體的認識,并對.net框架中出現的一些新的技術和術語有一個基本的了解。



1.1 將源代碼編譯為托管模塊

關于編程語言的選擇

.net框架的核心是通用語言運行時,顧名思義它是一個可被各種不同的編程語言所使用的運行時。CLR的很多特性可用于所有面向它的編程語言,如果CLR用異常來報告錯誤,那么所有面向它的語言都將通過異常來得到錯誤報告。如果CLR允許我們創建線程,那么所有面向它的語言也都可以創建線程。

實際上CLR在運行時對開發人員用何種編程語言來完成源代碼一無所知。這意味著我們應該選擇那些能夠最容易表達我們意圖的編程語言。我們可以用任何自己喜歡的語言(面向CLR的)來編寫代碼。

不同的編程語言允許我們使用不同的語法進行開發,不同的語法對于我們解決各種問題的難易程度是有影響的,例如:對于數學或者金融應用,彩用APL語法更快。



微軟已經創建了以下幾種面向CLR的編譯器 :

托管擴展C++

C#

Visual Basic

Jscript

J#

IL匯編器



我們可以用任何支持CLR的編程語言來創建源代碼文件。然后用相應的編譯器來做語法檢查和源代碼分析。最后生成托管橡塊。



托管模塊



托管模塊是一個需要CLR才能執行的標準Windows可移植可執行(Portable executable,簡稱PE)文件。



托管模塊的組成部分:

l PE表頭

標準Windows PE文件表頭,類似于通用對像文件格式表頭。該表頭指出了文件的類型:GUI(圖形用戶界面),CUI(控制臺用戶界面),或者DLL. 此處的DLl并非我們理解的傳統的windows 動態鏈接庫文件,雖然都叫DLL,但,net平臺中的DLL指程序集文件的一種形式),該表頭還包含文件創建時間。對于包含CPU代碼的模塊,該表頭還會包含有關本地CPU代碼的一些信息



l CLR表頭

包含標識托管模塊的一些信息(可以被CLR或者一些實用工具解析)。

1、 CLR版本號

2、 托管模塊入口點方法(Main方法)的元數據標記

3、 托管模塊的元數據標記

4、 資源

5、 強命名

6、 其他一些意義不是太大的信息的位置和尺寸



l 元數據

每個托管模塊都包含有一些元數據表。元數據表主要分兩種,一種用于描述源代碼中定義的類型和成員,一種用于描述源代碼中的引用類型和成員。



l 中間語言(IL)和代碼

編譯器在編譯源代碼是產生的指令。CLR在運行時會將IL代碼編譯成本地CPU指令



元數據(metadata)就是一個數據表的集合,在這些表中,其中一些用于描述托管模塊中所定義的內容(比如所定義的類型和它們的成員,另外一些用于描述托管模塊中引用的內容(比如被引用的類型和它們的成員)。元數據總是和包含IL代碼的的文件相關聯。



元數據的用處:

1、 省去了源代碼編譯時對頭文件和庫文件的需求,

2、 Visual Studio .Net可以利用元數據來輔助我們編寫代碼。智能感知就是這樣做的。

3、 可以序列化和反序列化

4、 垃圾收集器可以追蹤對像的生存期。





1.2 將托管模塊組合為程序集

CLR實際上并不和托管模塊打交道,它直接打交道的對象是程序集(assembly).程序集是一個抽象的概念,剛開始往往很難理解。首先,程序集是一個或多個托管模塊,以及一些資源文件的邏輯組合。其次,程序集是組件復用,以及實施安全策略和版本的最小單位。根據我們對編譯器和相關工具所做的選擇,程序集可以是一個文件或者多個文件。

默認情況下,編譯器會將產生的托管模塊轉換為一個程序集。也就是說,c#編譯器產生的是一個我包含了清單的托管模。其中的清單表明程序集中僅包含一個文件。對于僅包含一個托管模塊,并且沒有資源(或者數據)文件的項目來說,程序集就是托管模塊,而且在創建過程中,不需要執行任何其他的步驟。

程序集中的模塊還包含它所引用的程序集的一些信息(如版本號信息)。這些信息使得一個程序集得以實現自描述(self-describing)。換句話說,CLR知道執行一個程序集所需要的所有內容,它不需要再在注冊表或者活動目錄中獲取額外的信息。因此,程序集的部署要比非托管組件的部署容易得多。

1.3加載通用語言運行時

一個程序集或者是一個可執行應用程序,或者是一個包含供可執行應用程序使用的一組類型(組件)的DLL。CLR負責管理包含在程序集中的代碼的執行。這意味著宿主機器必須安裝.net框架。微軟已經創建了一個可以將.net框架免費安裝到客戶機上的分發包。.net框架最終會和將來的Windows打包在一起,這樣我們就不需要將它和我們的程序集放在一起來發布了。

我們可以通過在%windir%\system32目錄下查找MSCorEE.dll文件來判斷一個機器中是否安裝了.NET框架。如果想確定一個機器中安裝了哪些版本的.NET框架,可以查看下面的注冊表鍵的子鍵:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ policy



當生成一個EXE程序集時,編譯器/鏈接器會產生一些特殊的信息,并將它們嵌入到結果程序集的PE文件表頭及其各個組成文件的.text部分。當EXE文件被調用時,這些特殊的信息將導致CLR被加載并初始化。CLR隨后會定位至應勝程序的入口點方法,從面以此來啟動應用程序。



類似地,如果是一個非托管應用程序通過調用LoadLibrary來加載一個托管程序集,那么該托管程序集DLL的入口點函數也會知道去加載CLR來處理包含在其中的代碼。



托管EXE加載并初始化CLR的過程

1. MSCorEE檢查CLR表頭以獲得Main方法的元數據標記。

2. MSCorEE 檢查Main方法的元數據以獲得其IL在托管EXE中的位置。

3. MSCorEE 將Main方法的IL編譯成本地CPU指令。

4. MSCorEE跳轉到Main方法編譯后的本地CPU指令上(使用主線程)

5. 應用程序開始運行。



托管DLL的情形

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        国产亚洲精品aa| 中文字幕欧美日韩一区| 日韩一级大片在线观看| 一区二区三区四区av| 91亚洲大成网污www| 亚洲黄色在线视频| 欧美日韩国产在线观看| 久久精品噜噜噜成人88aⅴ| 337p亚洲精品色噜噜| 精品亚洲成av人在线观看| 精品国产三级a在线观看| 99久久精品国产一区二区三区 | 精品国产在天天线2019| 国模一区二区三区白浆| 久久精品一级爱片| 在线观看成人小视频| 视频一区二区欧美| 中文字幕欧美日韩一区| 欧美视频三区在线播放| 久久精品国产成人一区二区三区 | 亚洲第一激情av| 91精品国产品国语在线不卡| 韩国av一区二区三区| 亚洲视频在线一区二区| 欧美精品久久一区二区三区 | 亚洲aaa精品| 欧美精品一区二区精品网| 白白色 亚洲乱淫| 麻豆精品视频在线观看免费| ●精品国产综合乱码久久久久| 色域天天综合网| 国产在线精品不卡| 亚洲午夜在线电影| 自拍偷拍国产精品| 欧美国产一区在线| 91精品国产综合久久久久久久久久 | 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲精品一线二线三线无人区| 91麻豆精品在线观看| 高清不卡一二三区| 久久精品国产成人一区二区三区| 亚洲成人在线观看视频| 一区二区视频免费在线观看| 国产精品久久久久影院老司| 亚洲精品一区二区三区四区高清 | 91片黄在线观看| 成人免费看的视频| 国产夫妻精品视频| 国产精品一区二区三区99| 久久激情五月激情| 久久精品国产第一区二区三区| 日韩av午夜在线观看| 日韩专区中文字幕一区二区| 亚洲123区在线观看| 亚洲一级二级三级在线免费观看| 亚洲人成精品久久久久| 亚洲免费在线观看| 亚洲一二三区在线观看| 五月综合激情网| 蜜桃久久久久久久| 久久99久久99| 国产不卡一区视频| 97久久精品人人做人人爽50路| av亚洲精华国产精华精| 91麻豆自制传媒国产之光| 日本久久电影网| 91精品在线麻豆| 久久久久久一级片| 亚洲天堂久久久久久久| 尤物视频一区二区| 日本va欧美va精品发布| 国产精品99久久久久久宅男| 99久久伊人久久99| 精品视频1区2区3区| 欧美一级一级性生活免费录像| 精品国产伦一区二区三区观看体验| 久久精品一区二区三区不卡| 1000部国产精品成人观看| 亚洲3atv精品一区二区三区| 国产原创一区二区| 91国产视频在线观看| 日韩手机在线导航| 中文字幕在线观看不卡| 亚洲成在线观看| 国产福利精品一区二区| 欧美亚洲综合色| 久久影音资源网| 亚洲午夜私人影院| 国产精品77777| 欧美日韩一区视频| 国产无遮挡一区二区三区毛片日本| 一区在线中文字幕| 久久国产综合精品| 在线观看视频一区二区欧美日韩| 久久蜜桃一区二区| 午夜精品福利一区二区三区av| 国产精品自拍三区| 欧美高清精品3d| 亚洲欧美另类综合偷拍| 久久精品国产精品亚洲红杏| 91麻豆国产在线观看| 久久色成人在线| 五月婷婷另类国产| 99精品久久只有精品| 久久亚洲综合色| 日本aⅴ亚洲精品中文乱码| 91免费国产在线观看| 久久久久97国产精华液好用吗| 性做久久久久久久久| 欧美日韩国产片| 色呦呦网站一区| 成人性生交大片免费看中文网站| 99国产精品一区| 波多野结衣中文字幕一区二区三区| 在线视频中文字幕一区二区| 国产亚洲精品超碰| 免费久久99精品国产| 日本福利一区二区| 1024成人网| 国产成人精品综合在线观看| 日韩欧美一区二区视频| 亚洲在线免费播放| 91色在线porny| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲国产成人av网| 国产在线播精品第三| 久久女同互慰一区二区三区| 午夜电影网一区| 欧美在线视频不卡| 亚洲一区国产视频| 欧美日韩一级二级| 一区二区三区在线影院| 99久久综合精品| 亚洲乱码国产乱码精品精可以看| 91在线观看成人| 亚洲国产日韩一级| 这里只有精品99re| 蜜桃一区二区三区四区| 欧美大片国产精品| 激情五月婷婷综合| 中文字幕av免费专区久久| 成人一道本在线| 亚洲乱码国产乱码精品精的特点 | 在线成人高清不卡| 日本va欧美va精品发布| 精品国产一二三| 国产99精品在线观看| 国产欧美日韩另类一区| 一本大道久久a久久综合婷婷| 亚洲黄色尤物视频| 欧美精品1区2区| 国产麻豆成人精品| 国产精品家庭影院| 在线电影院国产精品| 国内精品不卡在线| 亚洲精品中文字幕乱码三区| 欧美日本在线播放| 国产在线视视频有精品| 国产精品麻豆久久久| 欧美另类变人与禽xxxxx| 国内精品伊人久久久久av一坑| 国产天堂亚洲国产碰碰| 欧美私模裸体表演在线观看| 激情图片小说一区| 一区二区三区在线观看欧美 | 欧美日韩国产123区| 国产麻豆欧美日韩一区| 怡红院av一区二区三区| 精品久久99ma| 99国产一区二区三精品乱码| 青青草成人在线观看| 国产精品美女久久久久aⅴ国产馆| 欧美日韩国产欧美日美国产精品| 久草这里只有精品视频| 亚洲精品一卡二卡| 国产午夜精品理论片a级大结局 | 国产一区欧美日韩| 洋洋av久久久久久久一区| 精品国产亚洲在线| 欧美日韩国产首页在线观看| 成人一区二区三区视频| 日韩在线一二三区| 亚洲视频精选在线| xnxx国产精品| 91精品国产一区二区三区蜜臀| av电影在线观看一区| 狠狠色丁香婷婷综合| 日韩高清不卡在线| 亚洲高清视频中文字幕| 最新国产成人在线观看| 久久综合99re88久久爱| 日韩一级欧美一级| 欧美精品18+| 欧美性淫爽ww久久久久无| 97aⅴ精品视频一二三区| 懂色av一区二区三区免费看| 国产剧情一区二区| 国产在线国偷精品免费看| 狠狠色狠狠色综合| 狠狠色丁香久久婷婷综合_中|