標籤:c#基礎知識 c#簡介 c#入門經典 Managed 程式碼 .net framework
暑假轉瞬即逝,從10天的支教生活到1周的江浙滬旅遊,在這個漫長的暑假中我經曆了很多東西,也學到了很多東西,也認識到了很多不足之處!閑暇之餘我準備重新進一步鞏固C#相關知識,包括C#入門知識、C#並行開發、ASP網站等.這篇文章我介紹的是書籍——C#入門經典(Beginning C#) 作者Karli Watson.主要包括的是我自己缺乏的一些C#簡介知識和Managed 程式碼的內容.內容比較簡單,參照該書籍較多,相當於自己的線上筆記!
《C#入門經典》書籍章節簡介:
第01-14章 C#語言:C#簡介及與.NET關係,文法和OOP
第15-17章 Windows編程:使用.NET Framework各種控制項
第18-20章 Web編程:使用ASP.NET執行任務、ajax
第21-24章 資料訪問:資料儲存磁碟、XML、LINQ
第25-27章 其他技術:WPF、WCF、WF
一. 建立.NET應用程式步驟
建立.NET應用程式經曆四個步驟如下:
1.使用某種.NET相容語言(如C#)編寫應用程式代碼
2.把代碼編譯為CIL,儲存在程式集中
3.在執行代碼時(可執行檔自動運行或其他代碼使用它時運行),首先必須使用JIT編譯器將代碼編譯為機器碼
4.在託管的CLR環境下運行機器碼以及其他應用程式或進程
二. Managed 程式碼
首先對上面的術語進行簡單的解釋.
CIL 在編譯使用.NET Framework庫的代碼時,不是立即建立專用於作業系統的機器碼,而是把代碼編譯為通用中繼語言(Common Intermediate Language,CIL)代碼.
JIT Just-In-Time編譯器的任務是把CIL編譯為專用於OS和目標機器結構的機器碼,OS才能執行應用程式.
CLR Common Language Runtime,公用語言運行庫:負責管理用.NET庫開發的所有應用程式的執行.
程式集 編譯應用程式時,所建立的CIL代碼儲存在一個程式集中.程式集包括可執行檔應用程式檔案(.exe)和其他應用程式使用的庫(.dll).
過去常常需要把代碼編譯為幾個應用程式,每個應用程式都用於特定的OS和CPU結構,現在JIT編譯器使用CIL代碼(CIL代碼獨立於電腦、OS和CPU)編譯為機器碼.
Managed 程式碼 將代碼編譯為CIL,再用JIT編譯器將它編譯為機器碼後,CLR(公用語言運行庫)的任務沒有全部完成,還要管理正在執行的用.NET Framework編寫的代碼(執行代碼的階段叫運行時runtime).即CLR管理著應用程式,其方式是管理記憶體、處理安全性及允許進行垮語言調試.相反,不受CLR控制啟動並執行應用程式屬於非託管類型.
換句話說:
Managed 程式碼 (managed code)是由公用語言運行庫CLR環境(而不是直接由作業系統)執行的代碼.
Unmanaged 程式碼(Unmanaged Code)在公用語言運行庫環境的外部,由作業系統直接執行的代碼.
Unmanaged 程式碼必須提供自己的記憶體回收、類型檢查、安全支援等服務,而Managed 程式碼從CLR環境中獲得這些服務.
舉例:非託管類型如C++記憶體管理和分配,調用建構函式,使用完後釋放記憶體.但是在C#中,只能編寫在託管環境下啟動並執行代碼,使用CLR的託管功能讓.NET自己與OS進行互動.
兩者區別可參照 http://bbs.csdn.net/topics/330164764
記憶體回收 Managed 程式碼最重要的一個功能就是記憶體回收(garbage collection),這種.NET方法可確保應用程式不再使用某些記憶體時,完全釋放這些記憶體.會定期檢查電腦記憶體,從中刪除不再需要的內容.
三. C#編寫應用程式
C#使用的是.NET Framework沒有限制應用程式的類型,常見的應用程式類型如下:
1.Windows應用程式
這些應用程式(如微軟office)具有熟悉的Windows外觀和操作方式,使用.NET Framework的Windows Forms模組(一個控制項陳列庫,其中控制項如按鈕,可用於建立Windows使用者介面UI)可以產生這種應用程式.還可以使用WPF(Windows Presentation Foundation)建立更靈活卓越的Windows應用程式.
2.Web應用程式
是一些Web頁面,可通過任何Web瀏覽器查看.其.NET Framework包括一個動態產生Web內容的強大系統,允許進行個人化和安全性等.這個系統叫Active Server Pages.NET(ASP.NET),使用C#通過Web Forms建立ASP.NET應用程式.還可以使用Silverlight編寫在瀏覽器內部啟動並執行應用程式.(接下來wo需要學習研究的東西)
3.Web服務
這是建立各種分布式應用程式的新方式,使用Web服務可以通過Internet虛擬交換資料.進階功能還可以建立WCF(Windows Communication Foundation)服務.
補充一些概念知識如:
總結:該文章主要是關於C#知識的基礎簡介知識和Managed 程式碼講解,其中主要參照書籍《C#入門經典》,推薦大家學習C#的入門書籍.同時後面將講述一些自己薄弱方面的基礎知識,同時想結合自己想做的東西講解些知識.如果有錯誤或不足之處還請海涵!高手飛過~
(By:Eastmount 2014-8-17 夜12點 原創CSDN http://blog.csdn.net/eastmount/)