云盟科技微信公眾號
云盟科技微博
咨詢熱線:0731-88888283 | 0731-88880833
湖南領先的微信開發、APP開發、軟件研發、互聯網+、智慧黨建、多用戶商城提供商!
我們的優勢: 專業軟件開發、系統建設公司,頂尖設計師量身定制 高配置主機,BGP多線,高速訪問 領先的企業互聯網信息化整體解決方案服務商 48小時快速解決網站問題
您的位置: 首頁 > 新聞動態 > 技術支持 > 查看內容
一,什么是 CTS、CLS、CLR

  (1)CTS(Common Type System)是通用類型系統。主要用于解決不同語言的數據類型不同問題,他是一種類型標準,在這個標準中不但實現了COM的變量兼容類型,還定義了通過 用戶自定義的方式來進行類型擴展,所以.NET平臺為目標語言通過建立本身數據類型與CTS之間的映射來實現與其他語言的數據類型的交互。

 (2)CLS(Common Language Specification)是公共語言規范,主要用于實現多種語言之間的互操作性,是公共類型系統的子集。

   (3)CLR(Common Language Runtime)公共語言運行庫,是所有應用程序都要使用的編程基礎,他如同一個支持.net應用程序運行和開發的虛擬機。

參看下圖有助于了解。


二,CTS、CLS、CLR有什么用

  (1)CTS

  CTS,他定義了如何在.NET Framework 運行庫中聲明,使用,和管理類型,同時也是.NET Framework運行庫支持跨語言基礎的一個重要組成部分。

  功能:建立一個支持跨語言集成,類型安全和高性能代碼執行的框架。提供一個支持完整實現多種編程語言的面向對象的模型。定義各語言必須遵守的規則,有助于確保用不同語言編寫的對象能夠發生交互 作用。

  定義公共語言運行庫在聲明、使用和管理類型時所遵循的規則的模型。通用類型系統建立一個框架,該框架使得跨語言集成、類型安全和高性能代碼執行成為可能。它是您可以用來生成類庫的原始資料。

通用類型系統支持兩種類別的類型,分別為值類型和引用類型。

  (2)CLS

  CLS即公共語言規范,它是許多應用程序所需的一套基本語言功能。CLS規則定義了通用類型系統的子集,即所有適用于公共類型系統的規則都適用 于 CLS,除非CLS中定義了更嚴格的規則。CLS通過定義一組開發人員可以確信在多種語言中都可用的功能來增強和確保語言的互用性。CLS還建立了CLS 遵從性要求,可幫助用戶確定托管代碼是否符合CLS以及一個給定的工具對托管代碼(該代碼是使用CLS功能的)開發的支持程度。

  (3)CLR

  CLR即公共語言運行庫,是.NET Framework的基礎,可以將其看作一個在執行時管理代碼的代理,它提供了內存管理、線程管理和遠程處理等核心服務,并且還強制實施嚴格的類型安全以及可提高安全性和可靠性的其他形式的代碼準確性。

三,.NET3C:CTS、CLS和CLR

.NET結合Java和COM解決方案兩者優點來解決互操作性問題。類似于COM定義的標準二進制格式,.NET定義了一個稱為通用類型系統 Common Type System(CTS)的類型標準。這個類型系統不但實現了COM的變量兼容類型,而且還定義了通過用戶自定義類型的方式來進行類型擴展。任何以.NET 平臺作為目標的語言必須建立它的數據類型與CTS的類型間的映射。所有.NET語言共享這一類型系統,實現它們之間無縫的互操作。該方案還提供了語言之間 的繼承性。例如,用戶能夠在VB.NET中派生一個由C#編寫的類。

很顯然,編程語言的區別不僅僅在于類型。例如,一些語言支持多繼承性,一些語言支持無符號數據類型,一些語言支持運算符重載。用戶應認識到這一點, 因此.NET通過定義公共語言規范(CLS:Common Language Specification),限制了由這些不同引發的互操作性問題。CLS制定了一種以.NET平臺為目標的語言所必須支持的最小特征,以及該語言與其 他.NET語言之間實現互操作性所需要的完備特征。認識到這點很重要,這里討論的特征問題已不僅僅是語言間的簡單語法區別。例如,CLS并不去關心一種語 言用什么關鍵字實現繼承,只是關心該語言如何支持繼承。

CLS是CTS的一個子集。這就意味著一種語言特征可能符合CTS標準,但又超出CLS的范疇。例如:C#支持無符號數字類型,該特征能通過CTS 的測試,但CLS卻僅僅識別符號數字類型。因此,如果用戶在一個組件中使用C#的無符號類型,就可能不能與不使用無符號類型的語言(如VB.NET)設計 的.NET組件實現互操作。這里用的是“可能不”,而不是“不可能”,因為這一問題實際依賴于對non-CLS-compliant項的可見性。事實 上,CLS規則只適用于或部分適用于那些與其他組件存在聯系的組件中的類型。實際上,用戶能夠安全實現含私有組件的項目,而該組件使用了用戶所選擇使用 的.NET語言的全部功能,且無需遵守CLS的規范。另一方面,如果用戶需要.NET語言的互操作性,那么用戶的組件中的公共項必須完全符合CLS規范。

最后一個C是公共語言運行庫Common Language Runtime(CLR)。簡單地說,CLR是CTS的實現,也就是說,CLR是應用程序的執行引擎和功能齊全的類庫,該類庫嚴格按照CTS規范實現。作 為程序執行引擎,CLR負責安全地載入和運行用戶程序代碼,包括對不用對象的垃圾回收和安全檢查。在CLR監控之下運行的代碼,稱為托管代碼 (managed code)。作為類庫,CLR提供上百個可用的有用類型,而這些類型可通過繼承進行擴展。對于文件I/O、創建對話框、啟動線程等類型—— 基本上能使用Windows API來完成的操作,都可由其完成。

關于我們

云盟科技專注互聯網領域的手機APP研發、軟件系統研發、IT技術服務等,是一家領先于互聯網的企業信息化整體解決方案服務商。公司的服務宗旨是:"用良心做好服務,用實力做好質量!"

聯系我們

  • 地址: 湖南長沙創谷國家廣告產業園A3棟13樓(全層)
  • 電話: 0731-88888283 | 0731-88880833
  • Email: [email protected]
掃描二維碼 關注我們官方微信 解決建站問題
咨詢熱線

0731-88888283
0731-88880833

周一至周六9:00-18:00

售后服務 / 投訴處理

Copyright ? 2008-2017 湖南云盟科技有限公司 版權所有    | 湘ICP備17002345號

云盟科技法律顧問:謝律師    ?

河船送福救援彩金