net編譯過程及運行
Ⅰ 昭通電腦培訓學校告訴你NET常見問題匯總
總結了一些關於.NET的常見問題與解答。這些.NET常見問題對於想要了解.NET整體概念的讀者們會有一些幫助。
一什麼是.Net?它主要包括什麼?
.Net是為簡化在第三代網際網路的高分布式環境下的應用程序開發,基於開放互聯網標准和協議之上,實現異質語言和平台高度交互性,而構建的新一代計算和通信平台。
.Net主要包括普通語言運行時(CommonLanguageRuntime)和.Net構架類庫。
二.Net主要的優點有哪些?
.Net的主要優點有跨語言,跨平台,安全,以及對開放互聯網標准和協議的支持。
.Net支持多種語言的互操作,即在一種語言下開發的組件,可在另一組件下通過面向對象的繼承而得以重用,目前.Net支持的語言達二十多種。
.Net通過將各語言先編譯成中間語言(IL),然後再執行時用即時(JustInTime)編譯器將之編譯成本地平台代碼來實現異構平台下對象的互操作,目前.Net支持的平台有Windows,Linux和Unix的支持正在開發中。
.Net通過普通語言運行時(CommonLanguageRuntime)來實現資源對象,類型的安全。
.Net通過對HTTP,XML,SOAP,WSDL等Internet標準的強勁支持提供在異構網路環境下獲取遠程服務,連接遠程設備,交互遠程應用的編程界面.
三.Net中的普通語言運行時(CommonLanguageRuntime)指什麼?它在.Net中處什麼位置?
CLR(CommonLanguageRuntime)普通語言運行時是整個.netframework構建的基礎,是實現.Net跨平台,跨語言,代碼安全等核心特性的關鍵。它實際上是駐留在內存里的一段代理代碼,負責在整個.net整個執行期間的代碼管理工作,比較典型的有:內存管理,線程管理,遠程管理,代碼強制安全類型等。這些都可稱得上.netframework的生命線。實際上,昭通電腦培訓http://www.kmbdqn.cn/發現普通語言運行時代理了一部分操作系統的管理功能。
Ⅱ 所有的 .NET 應用程序都要經過幾次編譯第一次編譯的結果是什麼
.NET Framework,其實就是一個運行在操作系統Windows之上的軟體虛擬機。使用VS .NET開發出來的程序經過編譯之後,生成的可執行程序實際上包含的只是MSIL指令代碼,這是一種託管代碼,只能運行在.NET虛擬機之上。所以,如果某台計算機上沒有安裝.NET Framework,就意味著圖1-50中的「虛擬機」一層不存在,.NET應用程序就無法執行。對於非Windows的操作系統,只要上面有.NET虛擬機,就可以運行.NET程序,不需要重新修改源程序並重新編譯。
如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!
Ⅲ 簡述.net程序編譯執行機制
.NET執行機制其實同很多的編程語言有一些不同。一般的高級程序語言會直接將代碼編譯成為機器語言,之後由本地機執行這些高效的機器代碼從而實現編譯過程。而.NET中的編譯機制會在中間多一個環節,就是先將高級語言(如C#、VB)編譯成為中間語言(IL),這些中間語言是.NET框架中所有的語言編譯後的結果。這樣說吧,比如我用C#、VB語言編寫了兩個類,編譯之後的中間語言其實看起來是一樣的,這就顯示實現了.NET平台跨語言的這一事實。當然中間語言最終還是要編譯成為機器代碼以用於最終的本地機的運行。
Ⅳ 在.NET中,程序編譯過程
.NET平台中代碼的物理單元是可移植可執行程序(protableexecutable,PE)格式,編譯程序和庫時,和平常一樣生成EXE與DLL文件,但在.NET框架下,任何可執行程序項目都鏈接到公共語言運行庫,並由它代理編譯和執行。
.NET中程序編譯的最主要部分是匯編(assembly),匯編包括一個manifest,它是一組元數據,標識匯編向其他應用程序提供的文件和類型;manifest還可以包含強名稱(strongname)、組合匯編名、版本信息和可選文化信息。在使用強名稱的匯編中,元數據包含一個公用密鑰簽名,公共語言運行庫用其驗證匯編自編譯之後是否發生改變。
匯編還可以包括數字簽名,例如用驗證碼(authenticodecertificate)驗證代碼源,以解決在公共語言運行庫保證匯編簽名的真實性問題。
匯編分為專用匯編和共享匯編。專用匯編只在安裝這個匯編的應用程序中使用,而共享匯編則安裝在全局匯編緩沖區(globalassemblycache,GAC)中,全局匯編緩沖區用匯編的引用計數和版本信息管理庫,包括框架的基類庫(baseclasslibrary,BCL),並通過公共語言運行庫避免因庫的版本沖突而形成DLLHell的情形。
選擇專用匯編和共享匯編是一個重要決策。將匯編安裝到全局緩沖區後,就可以在多個應用程序中使用匯編的一個備份,但是還需要用WindowsInstaller之類的安裝程序將應用程序安裝到計算機上。如果使用專用匯編,則得到Microsoft所謂的"XCOPY部署",這樣用戶可以將應用程序復制到目標計算機上,方便地進行安裝。
.NET程序編譯過程如圖1.2所示。
Ⅳ 如何使用 Visual Studio.Net 編譯和執行 C# 程序,步驟是
啟動 Visual Studio。
在菜單欄上,選擇 File -> New -> Project。
從模板中選擇 Visual C#,然後選擇 Windows。
選擇 Console Application。
為的項目制定一個名稱,然後點擊 OK 按鈕。
新項目會出現在解決方案資源管理器(Solution Explorer)中。
在代碼編輯器(Code Editor)中編寫代碼。
點擊 Run 按鈕或者按下 F5 鍵來運行程序。會出現一個命令提示符窗口(Command Prompt window),顯示 Hello World。
打開一個文本編輯器,添加上面提到的代碼。
保存文件為 helloworld.cs。
打開命令提示符工具,定位到文件所保存的目錄。
鍵入 csc helloworld.cs 並按下 enter 鍵來編譯代碼。
如果代碼沒有錯誤,命令提示符會進入下一行,並生成 helloworld.exe 可執行文件。
接下來,鍵入 helloworld 來執行程序。
將看到 "Hello World" 列印在屏幕上。
您也可以使用命令行代替 Visual Studio IDE 來編譯 C# 程序:
Ⅵ .net運行機制,要流程圖
.NetFramework是一個以規格為基礎的開發平台。而這份規格統稱為CLI(CommonLanguageInfrastructure),而最初由Micrsoft依據這份規格所自行實現的產品就是CLR。在CLI規格中,又細分為四個子規格。CIL(CommonIntermediateLanguage)、CTS(CommonTypeSystem)、在CTS中又細分CLS(CommonLanguageSpecification)子規格和VES(VirtualExecutingSystem)。CLS包含大多數語言都能實現的類型,CLI規范支持CLI的程序語言至少必須滿足CLS的規格,這樣才能達到跨語言集成的目的。
CLR運行機制
支持CLI的程序語言必須擁有一個編譯器,該編譯器必須具備將源碼編譯成ILCode的能力,也就是CIL規格所定義的語言格式,然後交由CLR來運行。在載入ILCode之後,CLR會調用JITComplier(Just-In-TimeComplier)將這些ILCode轉化為NativeCode,也就是機器碼來運行。
我是從「上海全鼎軟體學院」畢業的————————
Ⅶ 精品賞析:一個.NET程序在編譯和運行時都做了些什麼
run-time)和運行原理 (CPU-specific binary or pseudo-code)的疑問。
這里是一個簡單的回答:當你編譯一個C#應用程序或任何一種CLS(Commmon
Language Specification)兼容的語言時,它將首先被編譯成一種稱為IL
(Intermediate Language)的偽代碼(pseudo-code)。在這個應用程序第一次
被運行的時候,這種IL代碼將被編譯成機器代碼,用於執行。也就是說從源代碼
到得到運行結果,進行了兩次編譯。事實上,只有那些被真正使用的函數代碼
才會被進行第二次編譯。下面揭示開發過程中被隱藏起來的細節:
1) 你用C#開發一些程序
2) 用C#編譯器或CLS兼容的編譯器編譯成EXE
3) 編譯器將生成的IL代碼和附加信息(manifest)放入擁有一個標准PE頭的Win32
可執行文件的只讀部分。
4) 編譯器在創建這個可執行文件時導入(import)一個名為_CorExeMain的函數。
這個函數是.NET EE(execution engine)--.NET運行期引擎的入口函數。
5) 當執行這個Win32可執行文件時,因為其主要是依賴於DLL的PE文件,操作系
統將會調用位於MSCorEE.DLL中的_CorExeMain函數。
6) 操作系統通過PE文件里的進入點,調用MSCorEE.DLL。並能保證在Windows里
可以有很多程序同時運行。
7) 因為操作系統不能執行.NET IL代碼,EXE里的進入點只是簡單的中介,它將
指示操作系統調用_CorExeMain函數。
8) 隨後_CorExeMain函數開始解釋位於PE文件中的IL代碼。
9) 因為IL是不能被直接執行的, .NET EE使用稱為JITter (Just In Time compiler)
這一即時編譯過程只在第
Ⅷ 簡述asp.net 的編譯過程
從技術上講,ASP.NET模塊分析ASPX文件的內容,並將文件內容分解成單獨的命令以建立代碼的整體結構。完成此工作後,ASP.NET模塊將各命令放置到預定義的類定義中(不需要放在一起,也不需要按編寫順序放置)。然後使用這個類定義一個特殊的ASP.NET對象Page。該對象要完成的任務之一就是生成HTML流,這些HTML流可以返回到IIS,再從IIS返回到客戶。簡言之,在用戶請求IIS伺服器提供一個頁面時,IIS伺服器就根據頁面上的文本、HTML和代碼(這對我們來說是最重要的)建立該頁面。
Ⅸ 請將.Net程序從編寫,編譯到運行的整個過程默寫下來
what r u talking about?
Ⅹ 簡要介紹asp.net的編譯過程