前言:
一次偶然的機會 在園子裡看到@Learning hard 出版的一本書: <<C#學習筆記>>, 然後買來 一直到現在讀完, 感覺很不錯, 適合入門, 書中內容是從C#1.0 到5.0. 很全面也很細致.
下面就來分享一下這本書中自己感覺需要記錄的一些東西.
這裡先貼上@Learning hard本人在博客園的主頁: http://www.cnblogs.com/zhili/
以及本書中的一些知識點: http://www.cnblogs.com/zhili/category/421637.html
一: .Net Framework
1.1.Net Framework 就是應用程序運行時的執行環境, 為應用程序的執行提供一下幾種服務:
>全面的類庫
>內存管理
>通用類型系統
>開發結構和技術
>語言互操作性
1.2 .Net Framwork的組成
1.公共語言運行時
公共語言運行時是.Net Framwork的核心基礎. 我們可以將CLR看成一個在執行時管理代碼的代理, 它提供了內存管理, 線程管理和異常處理的服務, 而且還負責對代碼實施嚴格的類型安全檢查, 保證了代碼的正確性. 我們將受CLR管理的代碼稱為托管代碼(managed code), 將不受CLR管理的代碼稱為非托管代碼(unmanaged code).
CLR包含兩個組成部分: 通用類型系統(Common Type System, CTS)和公共語言規范(Common Language Specification, CLS).
1.3 .Net Framwork 類庫就是一組DLL程序集的集合.
1.4 C# 代碼的執行過程
>C#代碼編譯為中間語言代碼的階段
在編譯C#代碼時, C#的編譯器(VS中集成了C#編譯器)把代碼譯為通用中間語言(Common Intermediate Language, CIL)代碼
>中間語言代碼編譯為本季代碼的階段
要使C#代碼能夠運行, 還需進一步將CIL代碼轉換為特定CPU的機器碼, 該過程由即時編譯器(Just-In-Time, JIT)來完成.
●並不是只有C#代碼才能夠被編譯為中間語言代碼, 其他面向.Net的語言在執行之前也都需要先編譯為中間語言代碼. 該過程由編譯器來完成.
●JIT編譯生成本機代碼之後, 編譯好的代碼會被放置到一個緩沖區緩存, 下次再調用相同的代碼時, 可直接運行緩存區中現有的本機代碼, 從而避免重新驗證IL代碼以及把它編譯成本機代碼的過程. 使用這種方法, 系統只在首次調用時才會造成一些性能損失(即發生JIT過程).
PS: 今天本來想寫更多內容的, 但是時間已經不早了. 這裡還欠缺幾張圖片, 明天再來補上, 有時間的話會分享一下在工作中學習的東西: 比如遠程Debug, sql profiler等.