全面剖析VB.NET(5)

來源:互聯網
上載者:User
五、公用運行時環境
    迄今為止,業界對VB.NET討論得最多的特色或許就是CLR。VB.NET運行在CLR之上,正是CLR為VB.NET帶來了許多關鍵的新特色(包括缺點在內)。例如,CLR使得VB.NET支援跨語言的繼承以及自由線程。
  
    在VB6中,分布式VB程式要求有VB執行階段程式庫msvbvm60.dll支援,即該執行階段程式庫必須隨同應用一起分發。其他許多語言,比如C++和Java,也有類似的要求。在.NET中,所有Visual Studio語言共用同樣的運行時環境CLR。改用CLR帶來了幾個重要的結果:現在所有Visual Studio語言都共用同樣的IDE、同樣的表單引擎、同樣的異常處理機制,等等。它意味著Visual Basic在很大程度上已經可以和.NET的其他語言相提並論,如C#等。然而,對於CLR的異議仍舊存在,VB業界仍在激勵地爭辯它地價值。
  
    不管應用是用VB、C#還是其他.NET語言編寫,所有VS.NET代碼都是編譯成中繼語言(Intermediate Language,IL)。當應用運行時,一個Just-In-Time 編譯器(just-in-time compiler,或稱為JIT)就把IL代碼編譯成機器語言。在理論上,它意味著為非Windows的平台構造.NET運行環境是可能的,但目前還沒有出現有關這類系統的正式訊息。IL有一個缺點:正如VB在5.0以前的版本,IL代碼對於類似的反向編譯工程很敏感。由於存在這種可能性,許多開發人員對於.NET架構的整體安全性抱有懷疑。
  
    對CLR進行最佳化影響IL層次上的代碼,它使得所有使用CLR的語言受益。然而,對於特定語言的最佳化涉及到如何把代碼編譯成IL代碼,它根據特定語言的文法進行。因此,.NET各種語言之間存在一定的效能差異是必然的。但不管如何,從整體上來看這仍舊是好事,例如CLR為VB帶來了和C#一樣的調試和分析工具——之所以能夠如此,是因為它們都使用一樣的工具。
  
    CLR提供了前所未有的跨語言整合能力,其中包括跨語言繼承代碼的能力。所有使用CLR的語言都使用一個公用類型系統(Common Type System),它使得開發那些運用多種語言的應用變得更為容易。
  
    在CLR之內啟動並執行代碼稱為“受管理的代碼”(Managed Code),受管理代碼所使用的記憶體由CLR全面控制。受管理的代碼有著許多優點,包括交叉語言整合、跨語言異常控制以及一個組件互動的簡化模型。Visual Basic.NET只能以受管理代碼方式運行,與此相對應,C#卻具有將代碼轉入非受管理方式啟動並執行能力(運行在CLR之外),比如執行指標處理之類的操作。這是VB.NET不能與C#相提並論的地方之一。然而,這種能力的是否重要,對於不同的人、不同的用途來說都有所不同。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。