国产午夜成人免费看片无遮挡_日本免费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>

        亚洲高清三级视频| 国产精品乱人伦一区二区| 日韩欧美不卡一区| 日本人妖一区二区| 欧美不卡一区二区三区四区| 乱中年女人伦av一区二区| 精品成人在线观看| 国产99久久久国产精品潘金| 国产拍揄自揄精品视频麻豆| 91免费观看国产| 婷婷开心激情综合| 国产网站一区二区| 色婷婷综合久久久久中文| 爽好多水快深点欧美视频| 久久精品视频一区| 欧美人妖巨大在线| 国产成人精品免费网站| 亚洲午夜久久久久久久久久久| 日韩午夜三级在线| 99国产精品国产精品毛片| 五月激情综合网| 中文字幕在线不卡视频| 欧美一区二区三区影视| av成人动漫在线观看| 国内外精品视频| 亚洲国产一区二区三区青草影视| 久久久久久一级片| 欧美三级午夜理伦三级中视频| 国产一区二区三区黄视频| 亚洲一区二区三区视频在线播放 | 日韩和欧美的一区| 国产精品久久网站| 日韩欧美在线观看一区二区三区| 99久久国产综合色|国产精品| 日韩高清欧美激情| 亚洲另类在线制服丝袜| 欧美精彩视频一区二区三区| 欧美精品一卡二卡| 一本一道久久a久久精品| 国产91对白在线观看九色| 久久99精品国产麻豆婷婷| 午夜成人免费视频| 亚洲国产一区二区在线播放| 亚洲男人的天堂在线观看| 中文字幕一区不卡| 中文字幕第一区| 欧美韩日一区二区三区四区| 久久色成人在线| 久久亚洲综合色一区二区三区 | 欧美tk丨vk视频| 欧美日韩高清不卡| 在线观看日产精品| 日本韩国一区二区三区| www.亚洲免费av| www.成人在线| 91丨porny丨国产| 91欧美激情一区二区三区成人| 国产99久久久精品| 国产高清在线观看免费不卡| 久久精品噜噜噜成人88aⅴ| 美洲天堂一区二卡三卡四卡视频| 婷婷六月综合网| 久久国产婷婷国产香蕉| 国产一区二区三区四| 国产精品资源网| av一区二区三区四区| 91蜜桃在线免费视频| 91美女视频网站| 欧洲生活片亚洲生活在线观看| 色美美综合视频| 欧美日韩国产另类一区| 91精品国产91热久久久做人人| 日韩一级欧美一级| 国产色产综合产在线视频| 中文字幕一区二区在线观看| 亚洲精品国产视频| 日韩电影在线观看网站| 国产一区二区视频在线播放| 成人av在线一区二区三区| 欧美日韩亚洲综合| 精品国产区一区| 亚洲欧美在线高清| 蜜桃精品在线观看| 欧美日韩三级视频| 久久久国产精品麻豆| 亚洲啪啪综合av一区二区三区| 一区二区三区国产| 日本在线不卡视频一二三区| 国产精品主播直播| 91福利区一区二区三区| 精品欧美乱码久久久久久1区2区 | 亚洲乱码中文字幕综合| 亚洲高清视频的网址| 国产精品综合av一区二区国产馆| 日本道精品一区二区三区| 欧美精品一二三区| 国产精品国产a级| 日韩电影在线一区二区| 成人黄色免费短视频| 日韩视频免费观看高清完整版在线观看 | 欧美日韩中文字幕一区| 日韩欧美一卡二卡| 一级中文字幕一区二区| 日本二三区不卡| 久久久夜色精品亚洲| 亚洲成人精品影院| 成人av电影免费观看| 精品久久人人做人人爽| 亚洲成人免费看| 91丨porny丨中文| 国产午夜精品一区二区| 麻豆精品国产91久久久久久 | 国产成人免费在线视频| 51久久夜色精品国产麻豆| 亚洲欧美区自拍先锋| 国产精品亚洲а∨天堂免在线| 欧美高清激情brazzers| 亚洲一区二区四区蜜桃| 99精品1区2区| 国产精品成人一区二区三区夜夜夜| 极品少妇一区二区三区精品视频| 欧美色精品在线视频| 亚洲靠逼com| 亚洲精品ww久久久久久p站| av高清久久久| 国产精品高潮呻吟| www..com久久爱| 中文字幕av一区二区三区| 亚洲国产精品天堂| 欧美精品日韩一本| 三级欧美韩日大片在线看| 欧美三级视频在线| 亚洲香蕉伊在人在线观| 欧美在线不卡视频| 亚洲国产欧美在线| 欧美日韩另类一区| 日韩电影免费在线看| 日韩视频免费直播| 久久精品国产精品亚洲综合| 91麻豆精品91久久久久久清纯 | k8久久久一区二区三区| 亚洲欧洲性图库| 日本韩国欧美在线| 亚洲午夜精品在线| 欧美一区二区性放荡片| 水蜜桃久久夜色精品一区的特点| 欧美色综合久久| 亚洲第一激情av| 678五月天丁香亚洲综合网| 久久99精品网久久| 中文字幕一区在线| 欧美色综合网站| 精品无人区卡一卡二卡三乱码免费卡| 日韩一区二区三区在线观看| 久久国内精品自在自线400部| 久久综合色播五月| 国产精品欧美极品| 欧美亚洲国产一区二区三区| 久久99热国产| 亚洲美女少妇撒尿| 欧美另类一区二区三区| 国产毛片精品一区| 亚洲综合在线第一页| 欧美精品一区二区三区蜜臀| 成人av电影在线观看| 免费视频一区二区| 亚洲免费观看高清完整版在线观看熊| 欧美情侣在线播放| 国产suv精品一区二区三区| 一区二区三区免费在线观看| 欧美一区二区在线视频| 91免费视频网| 国产一区二区三区在线观看精品 | 久久99久国产精品黄毛片色诱| 欧美国产日本视频| 欧美日本精品一区二区三区| 精品一区二区三区免费视频| 亚洲精品乱码久久久久久黑人| 欧美成人性战久久| 色哟哟日韩精品| 精品一区二区三区免费观看| 亚洲欧美欧美一区二区三区| 久久尤物电影视频在线观看| 欧美日韩国产免费一区二区 | av中文字幕不卡| 国模大尺度一区二区三区| 亚洲国产精品尤物yw在线观看| 国产偷v国产偷v亚洲高清| 欧美电影在线免费观看| 色婷婷精品大视频在线蜜桃视频| 国产精品一线二线三线精华| 日本麻豆一区二区三区视频| 亚洲一区二区三区中文字幕| 最新成人av在线| 国产视频视频一区| 精品国免费一区二区三区| 欧美一区二区三区在线观看 | 欧美日韩精品一区二区天天拍小说| 国产精品主播直播| 国产剧情一区在线|