Net基本術語

來源:互聯網
上載者:User

基本術語

 什麼是CLR?
    CLR = Common Language Runtime(通用語言運行時)。CLR是一套標準資源,(理論上)可以被任何.NET程式所利用,而不管使用哪種程式語言。它管理所有.NET程式集的執行。Robert Schmidt(微軟)在他的MSDN PDC#文章裡,列舉了如下CLR資源:

  • 物件導向的編程模型(繼承、多態、異常處理和垃圾收集等) 

  •  安全模型

  •  類型系統

  •  所有.NET基類

  •  許多.NET framework類

  • 開發、調試和評測(profiling)工具

  •  執行和代碼管理

  •  IL到本地代碼(IL-to-native)轉換器和最佳化器

    這對於.NET世界來說意味著什嗎?不同程式語言的能力將比過去任何時候更加趨同,儘管顯然並非所有語言都能支援所有CLR服務。

 

MSIL :

    微軟中繼語言,Microsoft Intermediate Language。

    所有的.Net語言編譯器都產生它。這是編譯器產生的二進位代碼的公用標準,是CLR執行的語言。CLR也定義儲存程式集的中繼資料的格式,這表示不管使用什麼語言編寫,所有的程式集都共用儲存中繼資料的公其格式。

 

什麼是CLS?

    CLS = Common Language Specification(通用語言規範)。它是CTS的一個子集,所有.NET語言都將支援它。任何使用CLS相容的類型的程式,都可以和以任何語言編寫的.NET程式進行互操作。其作用是在所有與CLS相容的語言(c#,Visual Basic的.Net版本,Visaul C++或其它的.Net語言)中編寫的程式都共用組件,這些組件具有跨各種語言界限的完全繼承性。CLS定義了語言必須支援的功能,以支援與其它.NET語言的互動性。還可以使用CLS中沒有的功能,但無法保證其他語言也支援這此功能。


理論上,這允許在不同的.NET語言之間進行非常緊密地互操作。比方說,允許一個C#類從一個VB類繼承下來。

 

 

 什麼是CTS?

    CTS = Common Type System(一般型別系統)。這是.NET運行時能夠理解的一大套類型,因此,.NET應用程式就可以使用它們。不過要注意,並不是所有.NET語言都支援CTS中所有類型的。CTS是CLS的一個超集。它定義由所有.NET語言使用的基本類型,以及定義自己的類的規則。這可以防止不相容方式實現語言(比如string類型)

 

 

 什麼是IL?
    IL =
Intermediate Language(中繼語言)。也稱為MSIL(Microsoft Intermediate
Language,微軟中繼語言)或CIL(Common Intermediate
Language,通用中繼語言)。所有.NET原始碼(不管用哪種語言編寫)都被編譯成IL。當軟體被安裝時,IL轉換為機器碼,或在運行時被即時
(Just-In-Time,JIT)編譯器所處理。

 什麼是C#?
    C#是微軟設計的一門新語言,用於和.NET framework協作。在它的白皮書《C#介紹》(“Introduction to C#”)中,微軟是這麼描述C#的:
    “C#是一門派生於C和C++的簡單、現代、物件導向和型別安全的程式語言。C#(發音C sharp)堅實地植身於C和C++語言家族樹中,並將很快為C和C++程式員所熟悉。C#目標是將Visual Basic的高生產力和C++的原生威力聯合起來。”
把上面一段話中的“C#”用“Java”取而代之,你會發現這個說法依然挺好

 在.NET環境下,“託管(managed)”一詞的含義是?
    術語“託管(managed)”是許多混亂產生的起因,在.NET中,它被用於許多不同的地方,所表達的東西有著細微的差別。
    Managed 程式碼(Managed
code):.NET
framewor為運行在它裡面的程式提供了數個核心運行時服務,例如異常處理和安全。為了使這些服務能夠運作起來,代碼必須向運行時提供最起碼的資訊,
這樣的代碼被稱為Managed 程式碼。預設來說,所有C#和Visual Basic.NET代碼都是託管的。VS7
C++代碼預設來說不是託管的,但可以通過指定命令列開關(/com+),使編譯器產生Managed 程式碼。

    管理的資料(Managed data):這些資料由.NET運行時垃圾收集器進行配置和清除。C#和VB.NET資料總是託管的,預設來說,VS7 C++資料是非託管的,即使使用/com+開關也是如此,但可以用__gc關鍵字將其標記為託管的。

    託管類(Managed
classes):通常在C++託管擴充(Managed Extensions for C++)背景下談及這個術語。當使用ME
C++時,類別可標以__gc關鍵字。正如名字所暗示的,這意味著這個類的實體所佔用的記憶體由垃圾收集器託管,但意思還不僅於此。這個類變成了一個完全交
付給.NET大家庭的成員,它可享受.NET所帶來的好處,同時也受.NET施加的有關制約。關於好處的一個例子是可以和其它語言編寫的類很好地互操作,
例如,一個managed C++類可以繼承自一個VB類。關於約束的一個例子是,託管類只能繼承自一個基類。

 什麼是反射(reflection)?
    所有.NET
編譯器都為它們產生的模組(modules)中所定義的類型產生中繼資料(metadata),這些中繼資料和模組打包在一起(模組被打包於配件
(assemblies)之中),並可通過反射機制(reflection)存取。System.Reflection名字空間中包含的類,可以用於“查
詢”模組/配件的類型。
    使用反射來存取.NET中繼資料,非常類似於使用ITypeLib/ITypeInfo存取COM中的類型庫資料,並且,它被用於類似的用途,比方說,決定資料類型尺寸,以用於跨越上下文/進程/機器邊界列集(marshaling)資料。
    反射還可以用於動態調用方法(methods)(參見System.Type.InvokeMember),或在運行時刻動態建立類型(參見System.Reflection.Emit.TypeBuilder)。

什麼是強型別定義語言?
強型別定義語言:強制資料類型定義的語言。也就是說,一旦一個變數被指定了某個資料類型,如果不經過強制轉換,那麼它就永遠是

什麼是弱類型定義語言?
  一種類型可以被忽略的語言,與強型別定義相反。VBScript是弱類型定義的。在VBScript中,可以將字串   '12'   和整數   3   進行串連得到字串   '123',然後可以把它看成整數   123,而不需要顯示轉換。

什麼是動態類型語言?
動態類型語言:動態類型語言是指在運行期間才去做資料類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變數指定資料類型,該語言會在你第一次賦值給變數時,在內部將資料類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其他的各種指令碼語言如VBScript也多少屬於動態類型語言。

什麼是靜態類型語言?
靜態類型語言:靜態類型語言與動態類型語言剛好相反,它的資料類型是在編譯期間檢查的,也就是說在寫程式時要聲明所有變數的資料類型,C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有C#、JAVA等。對於動態語言與靜態語言的區分,套用一句流行的話就是:Static typing when possible, dynamic typing when needed。

什麼是一元操作符?
是只有一個操作數的操作符。如遞增操作符(++)。

什麼是二元操作符?
是要示有兩個操作數的操作符。如乘法操作符(*)。

DCOM:
Distributed Component Object Model,DCOM:分佈式組件對像模型

SOAP:
Simple Object Access Protocol,SOAP:簡單對像訪問協議。宗旨是增加跨平台的互通性。

WSDL
Web服務描述語言:Web Service Description Language,WSDL。Web服務的URL後綴名為.asmx

序列化:
SOAP允許我們在客戶端應用程式和Web服務之間傳遞複雜的數據結構。你可以選擇以輸入參數、輸出參數或者傳回值的形式來傳遞。為此數據結構本身要轉換成能通過網絡傳輸並在另一端重新組裝的格式。這個過程稱為「序列化」

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.