對C#、.Net、.Net Frameworke、託管和非託管代碼的具體理解

      通過最近一段時間對C#的複習,發現當初學習的C#開發WinForm應用程序,只是爲了當初的項目並沒有真正去理解C#、.Net、.Net Frameworke、託管和非託管代碼等一系列知識點的具體含義和運作過程。最近又開始返回來慢慢理解,本文提供了一種好理解這些含義的路線。

 具體總結如下:

注意:我覺得這幾個名詞如果理解的話應該是從託管代碼->非託管代碼->.Net->.Net Framework ->C#這個順序理解的話比較容易理解。

1、託管代碼和非託管代碼

       在說託管代碼前應提前說說CLR(公共語言運行庫和Java的虛擬機一樣也是一個運行時環境,它負責資源管理(內存分配和垃圾收集等),CLR的核心功能包括:內存管理、程序集加載、安全性、異常處理和線程同步,可由面向CLR的所有語言使用。並保證應用和底層操作系統之間必要的分離

        爲了提高平臺的可靠性,以及爲了達到面向事務的所要求的穩定性級別,CLR還要負責其他一些任務,比如監視程序的運行。比如,在CLR監視之下運行的程序屬於“託管的”(managed)代碼,而不在CLR之下、直接在裸機上運行的應用或者組件屬於“非託管的”(unmanaged)的代碼也稱爲機器碼。 .NET提供的公共語言運行庫是一種多語言執行環境,支持衆多的數據類型和語言特性。他管理着代碼的執行,並使開發過程變得更加簡單。但是其存在10%的性能降低。

這是一種可操控的執行環境,其功能通過編譯器與其他工具共同展現,依靠一種以運行時爲目標的編譯器開發的代碼叫做可操控代碼。

       託管代碼:由公共語言運行庫環境(CLR)而不是直接由操作系統執行的代碼。託管代碼應用程序可以獲得公共語言運行庫服務,例如內存的分配、棧的操作、自動垃圾回收、運行庫類型檢查和安全支持等。這些服務幫助提供獨立於平臺和語言的、統一的託管代碼應用程序行爲。

       在託管執行環境中使用託管代碼及其編譯,可以避免許多典型的導致安全漏洞和不穩定程序的編程錯誤。同樣,許多不可靠的設計也自動的被增強了安全性,例如 類型安全檢查,內存管理和釋放無效對象。程序員可以花更多的精力關注程序的應用邏輯設計並可以減少代碼的編寫量。這就意味着更短的開發時間和更健壯的程序。

託管代碼是一Microsoft的中間語言,他主要的作用是在.NET FRAMEWORK的CLR執行代碼前去編譯源代碼,也就是說託管代碼充當着翻譯的作用,源代碼在運行時分爲兩個階段:
過程:源代碼- >託管代碼->可執行文件或者生成的庫文件
.Net: .NET就是微軟用來實現 XML,Web ,Services,SOA(面向服務的體系結構service-oriented architecture)和敏捷性的技術。一個.NET應用是一個運行於.NET Framework之上的應用程序,如果一個應用程序跟.NET Framework無關,它就不能叫做.NET程序。

        組成..net軟件技術的組件,組件之一,“智能”客戶端應用軟件和操作系統,包括PC、PA、手機或其他移動設備通過互聯網、藉助Web Services技術,用戶能夠在任何時間、任何地點都可以得到需要的信息和服務。例如:可以在手機上閱讀新聞、定購機票、瀏覽在線相冊等等。CRM系統,應用了.NET的解決方案後所有的業務人員便可以通過手機或PDA直接訪問客戶信息了。


.Net Framework:Microsoft .NET Framework是用於Windows的新託管代碼編程模型。它將強大的功能與新技術結合起來,用於構建具有視覺上引人注目的用戶體驗的應用程序,實現跨技術邊界的無縫通信,並且能支持各種業務流程。在當下.Net Framework就是作爲安全模型。

.NET Framework安全解決方案基於管理代碼的概念,以及由通用語言運行時(CLR)加強的安全規則。大部分管理代碼需要進行驗證以確保類型安全及預先定義好的其它屬性的行爲的安全。例如,在驗證的代碼中,聲明爲接收4字節值的訪問將拒絕提供8字節參數的調用,因爲不是類型安全的。驗證過程還確保了執行流只傳送到已知的位置,如方法入口點--這個過程去除了跳轉到任意位置執行的能力。

組合是.NET Framework應用程序的構件。它們組成了部署,版本控制,重用,激活作用域,安全認證的基本單元。應用程序的組合是從網站上下載到客戶端的。

C#:C#是一種安全的、穩定的、簡單的、優雅的,由C和C++衍生出來的面向對象的編程語言。它在繼承C和C++強大功能的同時去掉了一些它們的複雜特性(例如沒有宏以及不允許多重繼承)。

最後說明一下C#語言運行過程:

C#通過編譯器被編譯成爲託管代碼->然後通過.NET Framework的虛擬機——被稱之爲通用語言運行庫(CLR)——執行。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章