1..net框架結構編程
主要包含公共語言運行時(CLR)和框架類庫(.NET Framework 類庫 ,FCL)安全
2.CLR服務器
一、對於一個將要面向.NET平臺進行開發的人來講,瞭解一下.NET平臺的整個構成是很是有必要的,如圖1所示即說明了.NET平臺的總體結構:數據結構
這個圖就是著名的.NET平臺結構圖,從這個圖上能夠看到,.NET Framework是在Microsoft.NET平臺上開發的基礎,ASP.NET、Windows Forms 和VS.NET都不過是.NET平臺開發的一部分,他的用於.NET應用程序的開發及展現。.NET平臺的核心技術爲:通用語言運行時(CLR:Common Language Runtiome)、基類庫(BCL:Base Class Library)、.NET語言及Visual Studio.NET架構
從這個圖上能夠看出,.NET Framework是架構在Windows平臺上的一個虛擬的運行平臺,你能夠想象將最下層Windows換作其餘的操做系統,例如說Linux,同樣能夠實現使用符合CLS(Common Language Specification,通用語言規範)的.NET語言,(VB.NET、C#、JScript.NET等),來建立ASP.NET或Windows Form(可能會叫Linux Forms)應用程序的功能,這其實就是Mono計劃要實現的功能。因此能夠這麼認爲,理論上,C#是一種能夠跨平臺的語言,這很象Java。C#另外一個比較象Java的地方是,它也是一種(特殊意義上的)語言,同Java同樣,C#編寫的程序代碼也是先經過C#編譯器編譯爲一種特殊的字節代碼, (Microsoft Intermediate Language,MSIL,微軟)中間語言,運行時再經由特定的編譯器(JIT編譯器,Just In tIME, JITer)編譯爲機器代碼,以供操做系統執行.不只是C#語言,全部.NET語言(將會包括咱們經常使用的幾十種現代的編碼語言)均可以編寫面向CLR的程序代碼,這種代碼在.NET中被稱爲託管代碼(Managed Code),全部的Managed Code都直接運行在CLR上,具備與平臺無關的特性。框架
解釋性的語言很安全,而且能夠經過他的運行平臺爲其賦予更多的功能,例如自動內存管理,異常處理等,事實上,C#語言的許多特色都是由CLR提供的,如圖2所示的CLR結構圖說明了這一點。編程語言
二、從下圖能夠看到,C#所具備的許多特色都是由CLR提供的,如類型安全(Type Checker)、垃圾回收(Garbage Collector)、異常處理(Exception Manager)、向下兼容(COM Marshaler)等,具體的說,.NET上的CLR爲開發者提供以下的服務:◆平臺無關:CLR其實是提供了一項使用了虛擬機技術的產品,他構架在操做系統之上,並不要求程序的運行平臺是 Windows系統,只要是可以支持它的運行庫的系統,均可以在上面運行.NET應用。因此,一個徹底由託管代碼組成的應用程序,只要編譯一次,就能夠在任何支持.NET的平臺上運行.◆跨語言集成:CLR語序開發這以任何語言進行開發,用這些語言開發的代碼,能夠在CLR環境下緊密無縫的進行交叉調用,例如,能夠用VB聲明一個基類對象,而後在C#代碼中直接建立次基類的派生類。◆自動內存管理:CLR提供了拉架收集機制,能夠自動管理內存。當對象或變量的生命週期結速後,CLR會自動釋放他們所佔用的內存.◆跨語言異處理◆版本控制◆.NET安全◆簡單的組件互操做性。◆自描述組件:自描述組件是指將全部數據和代碼都放在一個文件中的執行文件。自描訴組件能夠大大簡化系統的開發和配置,而且改進系統的可靠性。優化
通用語言運行時(CommonLanguageRuntiome,CLR)最先被稱爲下一代Windows服務運行時(NGWS Runtime).它是直接創建在操做系統上的一個虛擬環境,主要的任務是管理代碼的運行。CLR如今支持幾十種現代的編程語言爲它編寫代碼,而後以一種中間語言(Intermediate Langeoage,IL)代碼的造成被執行。而且,CLR還提供了許多功能以簡化代碼的開發和應用配置,同時也改善了應用程序的可靠性。如你所知,若是某種語言的編譯器是以運行時爲目標的,那麼利用該語言開發生成的代碼在.NET中被稱爲託管代碼,由於這樣的代碼是直接運行在CLR上的,因此具備與平臺無關的特色。編碼
在.NET平臺結構圖中,CLR的上面是.NET的基類庫,這組基類庫包括從基本輸入輸出到數據訪問等各方面,提供了一個統一的面向對象的,層次化的,可擴展的編程接口。從.NET平臺結構圖中也能夠看到,基類庫能夠被各類語言調用和擴展,也就是說不論是 C#,VB.NET仍是VC++.NET,均可以自由的調用,.NET的類庫,由於C#自身只spa
3..Framework 類庫 (FCL)
.類和對象的關係 Dept dept=new Dept();
解析:類是對象的類型 ( 具備相同行爲和特徵的統一種類) code層面:Dept
對象是類的實例 (具體的一個個事物)code層面:dept
5.封裝
就是保護一些私有字段的安全。體現2:將方法和字段放入一個容器(類)中。
6.自動屬性
注意點:當咱們不須要進行邏輯斷定的時候,他是和私有字段+共有的屬性是等價的。
自動屬性底層會生成:私有字段+公有屬性
本文部分來自摘要