C# NGWS runtime虛擬對象系統(tǒng)
C# NGWS runtime虛擬對象系統(tǒng)(VOS)
你知道NGWS runtime如何工作嗎?了解它工作的技術背景以及為什么它要這樣工作?這節(jié)都是關于C# NGWS runtime虛擬對象系統(tǒng)的(VOS)。
以下為在VOS中形成聲明、使用和管理類型模型時,NGWS runtime的規(guī)則。在VOS背后的思想是建立一個框架,在執(zhí)行代碼時不能犧牲性能,允許交叉語言集成和類型安全。
我提到的框架是運行時架構的基礎。為了幫助你更好地了解它,我將它勾出四個區(qū)域。當開發(fā)C#應用程序和組件時,理解它們很重要。
VOS類型系統(tǒng)——提供豐富的類型系統(tǒng),它打算支持全面編程語言的完全實施。
元數(shù)據(jù)——描述和引用VOS類型系統(tǒng)所定義的類型。元數(shù)據(jù)的永久格式與編程語言無關,但是,元數(shù)據(jù)拿自己當作一種互換機制(nterchange mechanism)來使用,這種互換是在在工具和NGWS的虛擬執(zhí)行系統(tǒng)之間。
通用語言規(guī)范(CLS)——CLS定義了VOS中類型的子集,也定義了常規(guī)的用法。如果一個類庫遵守CLS的規(guī)則,它確保類庫可以在其它所有能實現(xiàn)CLS的編程語言上使用。
虛擬執(zhí)行系統(tǒng)(VES)——這是VOS實時的實現(xiàn)。VES負責裝入和執(zhí)行為NGWS運得時編寫的程序。
這四個部分一起組成了NGWS runtime架構。每一部分在下面小節(jié)中描述。
C# NGWS runtime虛擬對象的類型系統(tǒng)
VOS類型系統(tǒng)提供豐富的類型系統(tǒng),它打算支持多種編程語言的完全實施。所以,VOS必須都支持面向?qū)ο蟮恼Z言和過程編程語言。
現(xiàn)在,存在著很多種近似但有點不兼容的類型。就拿整型當例子,在VB中,它是16位長,而在C++中,它是32位。還有更多的例子,特別是用在日期和時間以及數(shù)據(jù)庫方面的數(shù)據(jù)類型。這種不兼容使應用程序的創(chuàng)建和維護不必要地復雜化,尤其當程序使用了多種編程語言時。另一個問題是,因為編程語言之間存在著一些差別,你不能在一種語言中重用另一種語言創(chuàng)建的類型。(COM用二進制標準接口部分地解決了這個問題)。 當今代碼重用肯定是有限的。
發(fā)布應用程序的最大障礙是各種編程語言的對象模型不統(tǒng)一。幾乎每一方面都存在著差異:事件、屬性、永久保存(persistence)等等。
VOS這里將改變 這種現(xiàn)象 .VOS定義了描述值的類型,并規(guī)定了類型的所有值所必須支持的一條合約。由于前面提到的支持面向?qū)ο蠛瓦^程編程語言,就存在著兩種值和對象。
對于值,類型存儲于表述(representation)中,同樣操作也在其中實行。對象更強大因為它顯式地存于表述中。每一個對象都有一個區(qū)別于其它對象的識別號。支持不同的VOS類型在第四章 "C#類型"中提出。
【編輯推薦】