C# 基礎知識 (四).C#簡介及Managed 程式碼

來源:互聯網
上載者:User

標籤: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/)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.