《C#圖解教程》讀書筆記之一:C#和.NET框架


本篇已收錄至《C#圖解教程》讀書筆記目錄貼,點擊訪問該目錄可獲取更多內容。

一、在.NET之前的編程世界

  C#語言是在微軟公司的.NET框架上開發程序而設計的,首先作者給大家糾正了一下C#的正確發音:See Sharp(而不是很多人說的什么C井之類的,每次聽到C井我都只能呵呵一笑)。

  1.1 20世紀90年代末的Windows編程

  這時大多數程序員使用VB、C或C++,一些C/C++程序員使用純Win32API,但純Win32API不是面向對象的,而且使用它的工作量很大,比MFC還大。大多數程序員在使用MFC(Microsoft Foundation Class,微軟基礎類庫),MFC是面向對象的,但是它卻不一致,並逐漸變得陳舊。其他的程序員開始轉向了COM(Component Object Model,對象組件模型),COM相對前兩者概念簡單,但它的實際代碼復雜,並且需要很多丑陋的、不雅的底層基礎代碼。

  1.2 下一代平台服務的目標

  執行環境的目標:安全、多平台、性能;

  開發環境的目標:面向對象、一致的編程環境、使用行業標准進行通信、簡化的部署等;

二、.NET時代來臨

  2002年,微軟發布了.NET框架的第一個版本,.NET框架是一種比MFC和COM編程技術更一致並面向對象的環境。

  2.1 .NET框架的組成

  .NET框架由三部分組成,如下圖所示。

  (1)編程工具:IDE、編譯器、調試器、網站開發服務端技術(ASP.NET,WCF等);

  (2)執行環境—CLR(公共語言運行庫):內存管理、垃圾回收、即時編譯等;

  (3)BCL(基類庫):在.NET框架中使用的一個大的類庫,也可以在程序中使用;

  2.2 大大改進的編程環境

  面向的對象的開發環境、自動垃圾收集、互操作性、不需要COM等;

三、全新的編譯過程

  3.1 編譯成CIL(公共中間語言)

  .NET語言的編譯器接受源代碼文件,並生成名為程序集程序集要么是可執行的,要么是DLL)的輸出文件。下圖闡述了這個過程。

  3.2 編譯成本機代碼

  程序的CIL直到它被調用執行時才會被編譯成本機代碼,在運行時,CLR執行如下圖所示的步湊。

  這里有兩個名詞需要理解:

  (1)托管代碼:使用.NET框架編寫的代碼成為托管代碼(Managed Code),需要CLR。

  (2)非托管代碼:不在CLR控制下運行的代碼,比如Win32 C/C++ DLL,稱為非托管代碼(Unmanaged Code)。

四、核心組件—CLR:一個不辭辛勞的清潔工

  毫無疑問,.NET框架的核心組件是CLR(公共語言運行時),它在操作系統的頂層,負責管理程序的執行

五、基礎結構—CLI:一起長大的約定,那樣清晰

  過去,各種不同語言的類型特征(例如,組成整數的位數對於不同的語言和平台就有很大差別)不一致,缺乏統一性。為了使不同語言編寫的程序和庫能夠一起有序協作,必須要有一組標准

  CLI就是這樣的一組標准,它把所有.NET框架的組件連接成一個內聚的、一致的系統。它展示了系統的概念和架構,並詳細說明了所有軟件都必須堅持的規則和約定。CLI的組成如下圖所示:

  在CLI的眾多組成部分中,最重要的是CTS和CLS。CTS(公共類型系統)定義了那些在托管代碼中一定會使用的類型的特征,而CLS(公共語言規范)詳細說明了一個.NET兼容語言的規則、屬性和行為。

六、本章思維導圖

附件

  思維導圖(jpg、pdf與mmap源文件):http://pan.baidu.com/s/1jG5JRpG

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM