第一章 clr的執行模型
本章內容:
microsoft .net framework引入了許多新概念、技術和術語。本章概述了.net framework如何設計,介紹了framework包含的一些新技術,並定義了今後要用到的許多術語。還要展示如何將源**生成為乙個應用程式,或者生成為一組可重新分發的元件(檔案),這些元件(檔案)中包含型別(類和結構)等。最後本章解釋了應用程式如何執行。
1.1將源**編譯成託管**
決定將.net framework作為自己的開發平台之後第一步便是決定要生成什麼型別的應用程式或元件。假定你已完成了這個小細節;一切均已設計好,規範已經寫好,可以著手開發了。
現在必須決定要使用哪一種程式語言。這通常是乙個艱難的抉擇,因為不同的語言各有長處。例如,非託管c/c++可對系統進行低階控制。可完全按自己的想法管理記憶體,必要時能方便的建立程序。另一方面,使用microsoft visual basic 6.0可以快速生成ui應用程式,並可方便的控制com物件和資料庫。
顧名思義,公共語言執行時(common language runtime,clr)是一種可由多種程式語言使用的"執行時";clr的核心功能(比如記憶體管理、程式集載入、安全性、異常處理和執行緒同步)可由面向clr的所有語言使用。例如執行時使用異常來報告錯誤;因此,面向他的任何語言都能通過異常來報告錯誤。另外,"執行時"允許建立執行緒,所以面向他的任何語言都能建立執行緒。
事實上,在執行時,clr根本不關心開發人員用哪一種語言寫源**。這意味著在選擇程式語言時,應選擇最容易表達自己意圖的語言。可用任何程式語言開發**,只要編譯器是面向clr的。
既然如此,不同程式語言的優勢何在呢?事實上,可將編譯器視為語法檢查器和"正確**"分析器。它們檢查源**,確定你寫的一切都有意義,並輸出對你的意圖進行描述的**。不同程式語言允許用不同語法來開發。不要低估這個選擇的價值。例如,對於數學或金融應用程式,使用apl語法來表達自己的意圖,相較於使用perl語法來表達同樣的意圖,可以節省許多開發時間。
CLR執行模型
clr common language runtime 公共語言執行時,是乙個可由多種程式語言使用的 執行時 在執行時,clr根本不關心開發人員用的是哪一種語言來變寫 它只關注語言是否是面向clr 面向執行時 的.記憶體管理 程式集載入 安全性 異常處理和執行緒同步。3 如圖 無論是用的是哪一種編譯...
CLR執行模型
然後,將若干個託管模組合併成assembly.載入clr 在 system32 下有mscoreee.dll 說明已經安裝.首次執行一方法 在執行 main 之前,clr 建立乙個內部 ds來儲存 code 所引用的 type.呼叫方法時 jit complier將il 編譯為本地指令 在 am的元...
CLR的執行模型
公共語言執行時 common language runtime,clr 是乙個可由多種程式語言使用的 執行時 它負責在執行時管理 提供記憶體管理 異常處理 執行緒管理等核心服務,同時又確保 的安全性和準確性。原始碼的編譯過程如圖所示,使用支援clr的語言建立源 檔案,然後通過相應的編譯器對原始碼進行...