伸进女同桌乳沟里摸爽了,小雪解开乳罩给老杨摸,少妇被按摩师摸高潮了,亲嘴扒胸摸屁股激烈视频,强摸秘书人妻大乳BD,摸BBB揉BBB揉BBB视频

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> .Net技術(shù) >> 文章正文

VB.NET公共運行時的環(huán)境

 迄今為止,業(yè)界對VB.NET討論得最多的特色或許就是CLR。VB.NET運行在CLR之上,正是CLR為VB.NET帶來了許多關(guān)鍵的新特色(包括缺點在內(nèi))。例如,CLR使得VB.NET支持跨語言的繼承以及自由線程。 
  在VB6中,分布式VB程序要求有VB運行時庫msvbvm60.dll支持,即該運行時庫必須隨同應(yīng)用一起分發(fā)。其他許多語言,比如C++和Java,也有類似的要求。在.NET中,所有Visual Studio語言共享同樣的運行時環(huán)境CLR。改用CLR帶來了幾個重要的結(jié)果:現(xiàn)在所有Visual Studio語言都共用同樣的IDE、同樣的窗體引擎、同樣的異常處理機制,等等。它意味著Visual Basic在很大程度上已經(jīng)可以和.NET的其他語言相提并論,如C#等。然而,對于CLR的異議仍舊存在,VB業(yè)界仍在激勵地爭辯它地價值。 
  不管應(yīng)用是用VB、C#還是其他.NET語言編寫,所有VS.NET代碼都是編譯成中間語言(Intermediate Language,IL)。當(dāng)應(yīng)用運行時,一個實時編譯器(just-in-time compiler,或稱為JIT)就把IL代碼編譯成機器語言。在理論上,它意味著為非Windows的平臺構(gòu)造.NET運行環(huán)境是可能的,但目前還沒有出現(xiàn)有關(guān)這類系統(tǒng)的正式消息。IL有一個缺點:正如VB在5.0以前的版本,IL代碼對于類似的反向編譯工程很敏感。由于存在這種可能性,許多開發(fā)者對于.NET框架的整體安全性抱有懷疑。 
  對CLR進行優(yōu)化影響IL層次上的代碼,它使得所有使用CLR的語言受益。然而,對于特定語言的優(yōu)化涉及到如何把代碼編譯成IL代碼,它根據(jù)特定語言的語法進行。因此,.NET各種語言之間存在一定的性能差異是必然的。但不管如何,從整體上來看這仍舊是好事,例如CLR為VB帶來了和C#一樣的調(diào)試和分析工具——之所以能夠如此,是因為它們都使用一樣的工具。
  CLR提供了前所未有的跨語言集成能力,其中包括跨語言繼承代碼的能力。所有使用CLR的語言都使用一個公共類型系統(tǒng)(Common Type System),它使得開發(fā)那些運用多種語言的應(yīng)用變得更為容易。 
  在CLR之內(nèi)運行的代碼稱為“受管理的代碼”(Managed Code),受管理代碼所使用的內(nèi)存由CLR全面控制。受管理的代碼有著許多優(yōu)點,包括交叉語言集成、跨語言異?刂埔约耙粋組件交互的簡化模型。Visual Basic.NET只能以受管理代碼方式運行,與此相對應(yīng),C#卻具有將代碼轉(zhuǎn)入非受管理方式運行的能力(運行在CLR之外),比如執(zhí)行指針處理之類的操作。這是VB.NET不能與C#相提并論的地方之一。然而,這種能力的是否重要,對于不同的人、不同的用途來說都有所不同。 
 
由CLR導(dǎo)致的體系上的不同不僅僅是跨語言繼承、共享功能和受管理代碼,它還有更深刻的意義。Visual Studio.NET的底層體系不再是COM;另外,VB.NET中所有東西都是對象,甚至連字符串也一樣。由于這些原因以及其他許多原因,Microsoft改變了底層體系管理對象的方法。COM系統(tǒng)通過引用計數(shù)方式管理對象,每當(dāng)對象被引用時,引用計數(shù)就增加。當(dāng)對象引用超出作用范圍或者被釋放時,計數(shù)器的值就減少;一旦引用計數(shù)為0,對象就被釋放。Microsoft聲稱.NET體系中的引用計數(shù)開銷實在太大,使得.NET采用引用計數(shù)不再合適,因此它就放棄了引用計數(shù),改用垃圾回收(Garbage Collection)。 
  大約40年前,John McCarthy設(shè)計了LISP語言,它是可考證的第一種編程語言。LISP運行時不斷地分配和釋放大量的小塊內(nèi)存,由于那時的計算機內(nèi)存遠遠沒有現(xiàn)在這么龐大,因此早期的LISP用戶很快感到內(nèi)存不足,同時許多不再使用的內(nèi)存卻未能利用起來。為了解決這個問題,McCarthy于1959年第一次提出了垃圾回收的思想。 
在一個真正面向?qū)ο蟮南到y(tǒng)中,垃圾回收機制能夠很好地滿足分配和釋放大量小塊內(nèi)存的需要。因此,Microsoft在VS.NET中重新實現(xiàn)了垃圾回收機制。
  
  CLR垃圾回收器(CLR Garbage Collector)的主要任務(wù)就是監(jiān)視程序使用的資源,當(dāng)可用資源達到某個確定的極限時查找不再使用的對象,如發(fā)現(xiàn)有這類對象存在則釋放它們所占用的資源。垃圾回收的一個很大的優(yōu)點是程序員無需再為大多數(shù)常見的循環(huán)引用擔(dān)心。在循環(huán)引用情形下,子對象擁有對父對象的引用,同時父對象又擁有對子對象的引用。在引用計數(shù)模式下,循環(huán)引用阻止了系統(tǒng)釋放和拆除任意一個對象。然而,垃圾回收器能夠找出這類循環(huán)引用并拆除它們。垃圾回收機制同時也意味著,當(dāng)對象的最后一個引用被釋放時,對象并不一定立即被拆除。
  
  采用垃圾回收機制的一個后果是:我們不能再希望類的Terminate事件總是適時觸發(fā)。事實上,如果線程被阻塞的話,Terminate事件可能完全不會觸發(fā)。這就是所謂的“非確定的結(jié)束”(non-deterministic finalization),而COM提供的則是“確定的結(jié)束”。由于缺乏“確定的結(jié)束”,再加上因為垃圾回收器重新組織和整理內(nèi)存導(dǎo)致不能運用指針,新聞組中出現(xiàn)了對該問題激烈的爭論:有些人憎恨這些新的限制,因為他們依賴于“確定的結(jié)束”;有些人覺得無關(guān)緊要,因為他們并不依賴于Terminate事件。
  
  從引用計數(shù)轉(zhuǎn)變到垃圾回收僅僅是Visual Studio.NET底層體系不再是COM這一變化的諸多必然結(jié)果之一。雖然VB.NET之內(nèi)仍舊可以使用COM對象,但這些對象必須通過封裝(Wrapper)才能訪問。任何時候,封裝都意味著性能的降低,甚至還有可能導(dǎo)致對象行為的異常。如果要遷移一個大量使用COM對象的工程,你必須認真地進行計劃和測試,應(yīng)用程序的某些部分可能還需要重新構(gòu)造。
七、面向Web的支持
  除了Windows Forms新引擎之外,.NET還包含了一個專門為構(gòu)造Web窗體設(shè)計的窗體引擎,稱為Web Forms。這個引擎的目標在于讓用戶能夠象創(chuàng)建傳統(tǒng)Windows桌面應(yīng)用的窗體一樣方便地創(chuàng)建Web窗體。Web Forms是一種ASP.NET技術(shù),通過它我們可以使用熟悉的RAD(快速程序開發(fā))工具構(gòu)造出帶有執(zhí)行代碼的窗體。不過,窗體中的ASP.NET代碼以編譯方式在服務(wù)器端運行,經(jīng)過處理后把結(jié)果HTML發(fā)送給支持HTML 3.2的瀏覽器。
  
  客戶端事件數(shù)據(jù)由底層框架截獲并發(fā)送到服務(wù)器。這意味著應(yīng)用界面不再受瀏覽器類型的約束,意味著有大量UI工具可供使用,意味著用戶可以充分發(fā)揮現(xiàn)有的窗體制作技巧。如果應(yīng)用沒有必要做到瀏覽器中立,那么它就可以利用IE瀏覽器的各種特色。有了Web Forms,我們將能夠更輕松地為那些具有Web功能的應(yīng)用構(gòu)造出更好、更豐富的用戶界面。
  
  VB.NET中另外一個面向Web的重要特色是Web服務(wù)。在Microsoft的宣傳中,Web服務(wù)被推崇為之所以要采用.NET技術(shù)的重要理由之一。事實上,從根本上來說Web服務(wù)是一種類似COM的、通過Web服務(wù)器和標準協(xié)議發(fā)布的對象。當(dāng)然,Web服務(wù)并不是嚴格意義上的COM對象,但兩者作用方式類似。Microsoft期待著各類公司都以Web服務(wù)方式提供服務(wù),期待著未來創(chuàng)建應(yīng)用時只需簡單地“粘合”各種服務(wù),就象今天借助Office和支持VBA的應(yīng)用通過VBA構(gòu)造新應(yīng)用一樣簡單快捷。
  從Microsoft PDC(Professional Developers Conference,專業(yè)開發(fā)者大會)的一個演示中,我們可以看出Microsoft希望開發(fā)者如何粘合各種Web服務(wù)。在這個演示中,一個假想的醫(yī)生以Web服務(wù)形式發(fā)布其時間表,示范如何通過Web用智能電話和醫(yī)生訂立約會。Visual Basic.NET還允許查詢服務(wù)器,提取服務(wù)器支持的所有服務(wù)的元數(shù)據(jù)。Web服務(wù)描繪了Microsoft野心勃勃的戰(zhàn)略,然而,唯有時間才能告訴我們Microsoft是否在大范圍推廣Web服務(wù)上取得了成功。但不管如何,這個想法本身看來有著美好的前途。
  
  為了減少與封裝和分發(fā)應(yīng)用有關(guān)的問題,如令人畏懼的DLL Hell問題(在共享DLL的應(yīng)用之間,由于一個應(yīng)用的升級而導(dǎo)致另一個應(yīng)用無法正常運行的情況),Microsoft作出了種種努力,它同樣也帶來了美好的希望。所有.NET應(yīng)用都封裝為程序集(Assembly)。程序集包含了描述各種運行需求的元數(shù)據(jù)。這種元數(shù)據(jù)稱為manifest,其中包括:程序集的標識信息(名稱,版本等),列出了所有文件依賴關(guān)系以及文件位置和文件版本的文件清單,外部依賴信息(帶有描述程序集必須用到、但開發(fā)者沒有自己創(chuàng)建的DLL以及其他資源的數(shù)據(jù))。程序集是通過manifest自我描述的,因此.NET應(yīng)用的運行并不需要修改注冊表。換句話說,.NET應(yīng)用不再要求注冊組件。在最理想的情況下,客戶機器上已經(jīng)有了.NET運行環(huán)境,部署一個復(fù)雜的應(yīng)用簡單到只需復(fù)制一個文件夾到目標機器。使用程序集的另外一個優(yōu)點是:不同的應(yīng)用可以擁有同一DLL的不同版本,所有這些應(yīng)用都互不干涉地在同一臺機器上運行。如果它能夠按照預(yù)期那樣獲得成功,DLL Hell和可怕的版本問題都將成為歷史。
  
  Visual Basic.NET代表著VB的一次重大飛躍。盡管如此,把VB.NET看成是一種有著熟悉語法的新語言而不是對舊語言的簡單升級或許是對待VB.NET較為正確的心態(tài).
作者:未知 | 文章來源:未知 | 更新時間:2008-1-15 16:40:33

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    如何在VB.net錄入驗證?
    基礎(chǔ)學(xué)習(xí):VB.NET順序文件的操作方法
    基礎(chǔ)學(xué)習(xí):VB.NET隨機文件的操作方法
    VB.NET語法基礎(chǔ)知識學(xué)習(xí)
    VB.NET完善的面向?qū)ο笾С?/a>
    VB.NET對象的廣泛應(yīng)用
    VB.NET字符數(shù)據(jù)類型和其他數(shù)據(jù)類型
    多線程技術(shù)在.net中是如何應(yīng)用的
    軟件技術(shù)
    · 開發(fā)語言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫開發(fā)
    最新文章  
    ·.net技術(shù) asp.net MVC3 Vi
    ·.net將視頻文件格式轉(zhuǎn)換成
    ·NET Framework 2.0 Servic
    ·如何動態(tài)修改winform的app
    ·asp,net軟件結(jié)構(gòu)設(shè)計和相關(guān)
    ·學(xué)習(xí)怎樣使用ASP.NET中的虛
    ·,net基礎(chǔ)類的學(xué)習(xí):system
    ·.net學(xué)習(xí):c#事件的深入分
    ·Facade Pattern學(xué)習(xí)總結(jié)
    ·C#如何設(shè)置或者獲取目錄的
    ·如何使用XSL來定義ASP.NET
    ·理解WCF Data Contract契約
    ·如何能在.net2.0開發(fā)的控件
    ·模式怎樣使用,講解模式的
    ·如何解決Menu菜單被frame遮
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) m.zgna.net All Rights Reserved 新ICP備14003571號
    新疆軟件開發(fā)總機:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000
     
    昌图县| 长顺县| 浦北县| 泰和县| 金塔县| 沈阳市| 千阳县| 台北市| 绥芬河市| 田阳县| 涟源市| 嘉峪关市| 乐东| 容城县| 湖南省| 会理县| 云南省| 惠安县| 大城县| 年辖:市辖区| 龙里县| 隆尧县| 焉耆| 宜城市| 旅游| 昌乐县| 迁西县| 资溪县| 鹿邑县| 九龙坡区| 雷州市| 屏东市| 鄂伦春自治旗| 靖西县| 中牟县| 湖南省| 调兵山市| 长兴县| 永城市| 德清县| 醴陵市|