經(jīng)常有朋友會在.NET、C#和ASP.NET這三者之間區(qū)別不清楚,到底它們之間有什么聯(lián)系呢?在這里我給大家歸納如下:
1、.NET是一個平臺,一個抽象的平臺的概念。
.NET平臺其本身實(shí)現(xiàn)的方式其實(shí)還是庫,從抽象層面上來看是一個平臺。
本人理解的.NET核心就是.NET Framwork。
.NET Framework包括兩個關(guān)鍵組成元素:
a.Common Language Runtime,公共語言運(yùn)行時(CLR)-提供內(nèi)在管理,代碼安全性檢測等功能
b.NET Framework Class Library,.NET框架類庫(FLC)-提供大量應(yīng)用類庫,提高開發(fā)效率
學(xué)習(xí).NET Framework 是所有.NET 開發(fā)人員都必須的,否則開發(fā).NET程序永遠(yuǎn)都是停留在‘外功’的招式,.NET Framework 是.NET開發(fā)高手的‘內(nèi)功’修行之一?!?/span>
2、C#是一個程序設(shè)計(jì)語言,僅僅是一個語言。
程序設(shè)計(jì)語言僅僅是為了方便開發(fā)人員和計(jì)算機(jī)溝通的工具,雖然C#語法相對C和C++要多一些,但是相對來看C#語法都比較固定,這樣使用起來卻都很容易。我認(rèn)可一位朋友說的,C#的語法更嚴(yán)謹(jǐn)!
這里回過來看看.NET和C#的關(guān)系,不得不提的是.NET程序的執(zhí)行過程。
C#符合.NET CLR中的公共語言運(yùn)行規(guī)范。CLS:common language specification,當(dāng)然所有的.NET Language都是符合這個規(guī)范的例如:VB.NET、XAML和C++/CLI....等等?! ?/span>
C#需要符合.NET CLS,是因?yàn)?NET CLR和JAVA 虛擬機(jī)類似,有一個中間語言共機(jī)器來執(zhí)行。所有不同語言的.NET代碼在執(zhí)行前會被編譯成同樣的中間語言(MSIL),所以所有.NET支持語言都必須符合符
合CLS規(guī)范?! ?/span>
P.S:如果做.NET 3.0 XAML開發(fā)的朋友,可以嘗試下ildasm.exe看看XAML的應(yīng)用程序,會發(fā)現(xiàn)原來XAML其實(shí)很簡單。
3、ASP.NET是一個網(wǎng)站開發(fā)的技術(shù),僅僅是.NET框架中的一個應(yīng)用模型?! ?/span>
用微軟公司ASP.NET快速入門中的一句話來解釋,ASP.NET 是用于生成基于Web的應(yīng)用程序的內(nèi)容豐富的編程框架。