簡介
技術規範是指為實現一定的技術目的技術標準,保證試驗或生產有秩序地進行而具體規定的約束勞動者如何合理使用勞動工具和勞動對象的行為準則。通用語言架構(CLI),也稱通用語言基礎架構,是一個計算機軟體開發技術規範,包含通用類型系統(Common Type System, CTS)、元數據系統(Metadata)、通用語言規範(Common Language Specification, CLS)、虛擬執行系統(Virtual Execution System, VES)、通用中間語言(Common Intermediate Language, CIL)、框架(Framework)。適合CLI規範的程式都是編譯成通用中間語言,之後在執行過程中被虛擬執行系統的即時編譯技術編譯為機器碼從而執行。通用語言運行平台(Common Language Runtime,簡稱CLR)是微軟為他們的.NET的虛擬機所選用的名稱。它是微軟對通用語言架構(CLI)的實現版本,它定義了一個代碼運行的環境。CLR運行一種稱為通用中間語言的位元組碼,這個是微軟的通用中間語言實現版本。CLR運行在微軟的視窗作業系統上。查看通用語言架構可以找到該規格的實現版本列表。其中有一些版本是運行在非Windows的作業系統中。
有關內容
通用類型系統 (Common Type System) 定義了運行期引擎如果使用程式中的數據類型,以及如何配置數據在存儲器中的一種標準,依照此種標準所撰寫的程式語言,都可以在同一個運行期引擎中使用,因此它是跨語言支持的重要部分,亦即匹配 CTS 規範的程式語言所撰寫出的程式,都可以在 CLR 中使用。CTS與CLI規格都是由微軟所發展,已標準化為 ECMA 335 標準:“Common Language Infrastructure (CLI) Partitions I to VI.”,並且由 Microsoft 在 .NET Framework 中完全的實現。CTS 的功能:創建一個可協助跨語言集成、類型安全與代碼的高性能運行的框架規範。提供可在許多程式語言中完全實現的面向對象模型。定義程式語言必須遵行,以幫助在不同的程式語言中所實現的對象能夠與其他程式語言互動的規則。CTS 也定義了確保由不同程式語言所定義的數據類型能與其他程式語言互動的規則。
CTS 定義了兩種類型:實值類型 (Value-type)。實值類型直接包含數據,而且實值類型的運行個體 (Instance) 不是在堆疊上配置,就是在結構中內嵌 (Inline) 配置。實值類型可為內置 (由運行階段實現)、用戶定義或枚舉類型 (Enumeration)。引用類型 (Reference-type)。存儲變數存儲器地址的引用,並且在堆積 (Heap) 上配置。引用類型可為自我描述類型、指針類型 (Pointer Type) 或接口類型 (Interface Type)。引用類型的類型可從自我描述類型的值判斷出來。自我描述類型可再分為數組和類別類型。類別類型包括用戶定義類型、Boxed 實值類型和委派。
虛擬運行系統 (Virtual Execution System) 是一個可執行受管理代碼 (Managed Code) 的運行環境,它提供了運行受管理代碼所需要的內置數據類型 (data type) 以及假定的機器類型與狀態設定、流程控制與異常處理等參數。它提供了 MSIL 程式指令所需要的支持。
通用中間語言(Common Intermediate Language,簡稱CIL,發音為"sill"或"kill")是一種屬於通用語言架構和.NET框架的低階(lowest-level)的人類可讀的程式語言。目標為.NET框架的語言被編譯成CIL,然後彙編成位元組碼。CIL類似一個面向對象的組合語言,並且它是完全基於堆疊的。它運行在虛擬機上,其主要的語言有C#、Visual Basic .NET(VB.NET)、C++/CLI以及J#。
框架(software framework),通常指的是為了實現某個業界標準或完成特定基本任務的軟體組件規範,也指為了實現某個軟體組件規範時,提供規範所要求之基礎功能的軟體產品。是一種微體系結構,為特定領域內的軟體系統提供未完全實現的模板,它可以是一個將要被擴展或(和)復用的子系統。
框架的功能類似於基礎設施,與具體的軟體套用無關,但是提供並實現最為基礎的軟體架構和體系。軟體開發者通常依據特定的框架實現更為複雜的商業運用和業務邏輯。這樣的軟體套用可以在支持同一種框架的軟體系統中運行。簡而言之,框架就是制定一套規範或者規則(思想),大家(程式設計師)在該規範或者規則(思想)下工作。或者說使用別人搭好的舞台來做編劇和表演。
對通用語言架構的實現
.NET框架(.NET Framework)是由微軟開發,一個致力于敏捷軟體開發(Agile software development)、快速套用開發(Rapid application development)、平台無關性和網路透明化的軟體框架。.NET是微軟為2000年代對伺服器和桌面型軟體工程邁出的第一步。.NET包含許多有助於網際網路和內部網套用迅捷開發的技術。.NET框架是微軟公司繼Windows DNA之後的新開發平台。.NET框架是以一種採用系統虛擬機運行的編程平台,以通用語言運行庫(Common Language Runtime)為基礎,支持多種語言(C#、F#、VB.NET、C++、Python等)的開發。.NET也為應用程式接口(API)提供了新功能和開發工具。這些革新使得程式設計員可以同時進行Windows套用軟體和網路套用軟體以及組件和服務(web服務)的開發。.NET提供了一個新的反射性的且面向對象編程編程接口。.NET設計得足夠通用化從而使許多不同高級語言都得以被匯集。
Microsoft Silverlight是微軟所發展的Web前端應用程式開發解決方案,是微軟豐富型網際網路應用程式(Rich Internet Application)策略的主要應用程式開發平台之一,以瀏覽器的外掛組件方式提供Web應用程式中多媒體(含影音流與音效流)與高度互動性前端應用程式的解決方案,同時它也是微軟UX(用戶體驗)策略中的一環,也是微軟試圖將美術設計和程式開發人員的工作明確切分與協同合作發展應用程式的嘗試之一(另一個為WPF)。
Microsoft XNA ("XNA's Not Acronymed"),完全支持託管代碼的運行環境,由微軟提供用以幫助計算機遊戲開發、計算機軟體開發及管理的一些工具。XNA把遊戲設計員從“反覆刻版編程”中解放出來[2],還把遊戲開發上的所有需要結合到一個系統之中。