C# 基礎知識 (四).C#簡單介紹及託管代碼

        暑假轉瞬即逝,從10天的支教生活到1周的江浙滬旅遊,在這個漫長的暑假中我經歷了很是多東西,也學到了很是多東西,也認識到了很是多不足之處!閒暇之餘我準備又一次進一步鞏固C#相關知識,包含C#入門知識、C#並行開發、ASP站點等.這篇文章我介紹的是書籍——C#入門經典(Beginning C#) 做者Karli Watson.主要包含的是我本身缺少的一些C#簡單介紹知識和託管代碼的內容.內容比較簡單,參照該書籍較多,至關於本身的在線筆記!ajax

                                             《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環境下執行本機代碼以及其它應用程序或進程
瀏覽器

二. 託管代碼

        首先對上面的術語進行簡單的解釋.
        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)編譯爲本機代碼.
        託管代碼 將代碼編譯爲CIL,再用JIT編譯器將它編譯爲本機代碼後,CLR(公共語言執行庫)的任務沒有全部完畢,還要管理正在執行的用.NET Framework編寫的代碼(執行代碼的階段叫執行時runtime).即CLR管理着應用程序,其方式是管理內存、處理安全性及贊成進行垮語言調試.相反,不受CLR控制執行的應用程序屬於非託管類型.
        換句話說:
        託管代碼 (managed code)是由公共語言執行庫CLR環境(而不是直接由操做系統)執行的代碼.
        非託管代碼(Unmanaged Code)在公共語言執行庫環境的外部,由操做系統直接執行的代碼.
        非託管代碼必須提供本身的垃圾回收、類型檢查、安全支持等服務,而託管代碼從CLR環境中得到這些服務.
        舉例:非託管類型如C++內存管理和分配,調用構造函數,使用完後釋放內存.但是在C#中,僅僅能編寫在託管環境下執行的代碼,使用CLR的託管功能讓.NET本身與OS進行交互.
        二者差異可參照 http://bbs.csdn.net/topics/330164764
        垃圾回收 託管代碼最重要的一個功能就是垃圾回收(garbage collection),這樣的.NET方法可確保應用程序再也不使用某些內存時,全然釋放這些內存.會按期檢查計算機內存,從中刪除再也不需要的內容.
安全

三. C#編寫應用程序

        C#使用的是.NET Framework沒有限制應用程序的類型,常見的應用程序類型例如如下:
        1.Windows應用程序
        這些應用程序(如微軟office)具備熟悉的Windows外觀和操做方式,使用.NET Framework的Windows Forms模塊(一個控件庫,當中控件如button,可用於建立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#知識的基礎簡單介紹知識和託管代碼解說,當中主要參照書籍《C#入門經典》,推薦你們學習C#的入門書籍.同一時候後面將講述一些本身薄弱方面的基礎知識,同一時候想結合本身想作的東西解說些知識.假設有錯誤或不足之處還請海涵!高手飛過~
 (By:Eastmount 2014-8-17 夜12點 原創CSDN http://blog.csdn.net/eastmount/)
函數

相關文章
相關標籤/搜索