• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    全面剖析VB.NET(5)

    發布: 2007-5-25 09:18 | 作者: 未知 | 來源: 不詳 | 查看: 34次 | 進入軟件測試論壇討論

    領測軟件測試網 五、公共運行時環境
    迄今為止,業界對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 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#相提并論的地方之一。然而,這種能力的是否重要,對于不同的人、不同的用途來說都有所不同。


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>