第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

您好,請(qǐng)問(wèn)一下.NET framework是干什么的?

您好,請(qǐng)問(wèn)一下.NET framework是干什么的?

函數(shù)式編程 2021-04-13 15:11:52
.net framework是個(gè)什么東西,為什么在好多軟件的安裝中都必須先安裝它呢?不安裝它會(huì)怎么樣?
查看完整描述

3 回答

?
交互式愛(ài)情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊

.NET Framework一般指Microsoft .NET Framework。

Microsoft .NET Framework是用于Windows的新托管代碼編程模型。它將強(qiáng)大的功能與新技術(shù)結(jié)合起來(lái),用于構(gòu)建具有視覺(jué)上引人注目的用戶(hù)體驗(yàn)的應(yīng)用程序,實(shí)現(xiàn)跨技術(shù)邊界的無(wú)縫通信,并且能支持各種業(yè)務(wù)流程。

Microsoft .NET Framework安全解決方案

.NET Framework安全解決方案基于管理代碼的概念,以及由通用語(yǔ)言運(yùn)行時(shí)(CLR)加強(qiáng)的安全規(guī)則。大部分管理代碼需要進(jìn)行驗(yàn)證以確保類(lèi)型安全及預(yù)先定義好的其它屬性的行為的安全。

例如,在驗(yàn)證的代碼中,聲明為接收4字節(jié)值的訪問(wèn)將拒絕提供8字節(jié)參數(shù)的調(diào)用,因?yàn)椴皇穷?lèi)型安全的。驗(yàn)證過(guò)程還確保了執(zhí)行流只傳送到已知的位置,如方法入口點(diǎn)--這個(gè)過(guò)程去除了跳轉(zhuǎn)到任意位置執(zhí)行的能力。

驗(yàn)證將阻止不是類(lèi)型安全的代碼執(zhí)行,在它們引起破壞前捕獲很多常見(jiàn)的編程錯(cuò)誤。通常的弱點(diǎn)--如緩存溢出,對(duì)任意內(nèi)存或沒(méi)有初始化的內(nèi)存的讀取,對(duì)控件的隨意傳送--都不再可能出現(xiàn)。這將使最終用戶(hù)受益,因?yàn)樵谒麄儓?zhí)行代碼前對(duì)其進(jìn)行檢查。

這也有益于開(kāi)發(fā)人員,他們會(huì)發(fā)現(xiàn)很多常見(jiàn)錯(cuò)誤(過(guò)去一直在困繞前開(kāi)發(fā))現(xiàn)在可以查明,并能阻止它們引起破壞。

擴(kuò)展資料:

CLR內(nèi)存管理

內(nèi)存管理的自動(dòng)化:在執(zhí)行過(guò)程中管理應(yīng)用程序的資源是一項(xiàng)單調(diào)而困難的工作。它會(huì)將你的注意力從你本應(yīng)解決的問(wèn)題中引開(kāi)。而垃圾收集機(jī)制完全解決了程序員在編程過(guò)程中頭痛的問(wèn)題,跟蹤內(nèi)存的使用,并知道何時(shí)將它們釋放。

在面向?qū)ο蟮沫h(huán)境中,每種類(lèi)型都標(biāo)識(shí)了對(duì)你的應(yīng)用程序有用的某種資源。為了使用這些資源,你需要為類(lèi)型分配內(nèi)存。在應(yīng)用中,訪問(wèn)一種資源要通過(guò)以下步驟:

(1)為類(lèi)型分配內(nèi)存。

(2)初始化內(nèi)存,設(shè)置資源的初始狀態(tài)并使其可用。

(3)通過(guò)訪問(wèn)該類(lèi)型的實(shí)例成員來(lái)訪問(wèn)資源。

(4)卸下將被清除的資源狀態(tài)。

(5)釋放內(nèi)存。

這一看似簡(jiǎn)單的過(guò)程在實(shí)際的編程中是產(chǎn)生錯(cuò)誤的主要來(lái)源之一。更可怕的是:內(nèi)存中的錯(cuò)誤往往導(dǎo)致不可預(yù)見(jiàn)的結(jié)果。如果你有過(guò)編程的經(jīng)驗(yàn),想想看,有多少次你的程序因?yàn)閮?nèi)存訪問(wèn)錯(cuò)誤而崩潰?

特別是計(jì)算機(jī)存在多根內(nèi)存條時(shí)特別容易內(nèi)存報(bào)錯(cuò)死機(jī)。建議升級(jí)電腦時(shí)換掉原來(lái)的內(nèi)存,不要采用加內(nèi)存的方式。

CLR要求所有的資源從可操控的堆(注:在此指一種內(nèi)存結(jié)構(gòu))中分配。當(dāng)一個(gè)進(jìn)程被初始化后,CLR保留了一個(gè)未被分配的地址空間。這一區(qū)域叫做可操控堆。在堆中保持了指向下一個(gè)將被分配給對(duì)象的堆地址的指針(NEXT)。

初始狀態(tài)下,該指針是保留地址空間的基地址。一個(gè)應(yīng)用使用新的操作產(chǎn)生對(duì)象。此操作首先檢查新對(duì)象需要字節(jié)的大小是否會(huì)超出保留空間。

如果對(duì)象大小合適,指向下一個(gè)地址的指針將指向堆中的這個(gè)對(duì)象,該對(duì)象的構(gòu)造器被調(diào)用,新的操作返回對(duì)象的地址。

當(dāng)一個(gè)應(yīng)用請(qǐng)求建立一個(gè)對(duì)象時(shí),地址空間可能不夠大。堆將發(fā)現(xiàn)這一點(diǎn)(通過(guò)將新對(duì)象的大小與NEXT指針相加,并與堆的大小進(jìn)行比較),這時(shí)垃圾收集器就將被調(diào)用。在這里,CLR引入了“代”的概念。代,指堆中對(duì)象產(chǎn)生的先后。

這樣,垃圾收集器在將發(fā)生溢出時(shí)回收屬于特定的“代”的對(duì)象,而不是回收堆中的所有對(duì)象。

(6)即時(shí)編譯

在各種語(yǔ)言的編譯器對(duì)源代碼進(jìn)行編譯之后,在CLR環(huán)境中產(chǎn)生的是中間代碼(出于兼容性與跨語(yǔ)言集成的考慮),其內(nèi)容雖然有效,但在轉(zhuǎn)化為本地代碼之前它本身是不可執(zhí)行的。這就是JIT編譯器需要完成的工作。

這里需要說(shuō)明一個(gè)問(wèn)題:為什么要即時(shí)編譯,而不是一次性的將中間代碼文件進(jìn)行編譯?答案很簡(jiǎn)單:原因在于效率。在大型的應(yīng)用中,你很少會(huì)用到程序的全部功能,這種邊執(zhí)行邊編譯的措施比一次性的完全編譯效率更高。

CLR帶有三個(gè)不同的JIT編譯器,在Windows平臺(tái)中,CLR帶有三個(gè)不同的JIT編譯器:

(1)缺省的編譯器---主編譯器,由它進(jìn)行數(shù)據(jù)流分析并輸出經(jīng)過(guò)優(yōu)化的本地代碼,所有的中間代碼指令均可被它處理。

(2)PREJIT,它建立在主JIT編譯器之上。其運(yùn)行方式更象一個(gè)傳統(tǒng)的編譯器:每當(dāng)一個(gè).NET組件被安裝時(shí)它就運(yùn)行。

(3)ECONOJIT,在并不充分優(yōu)化的前提下,它能夠快速完成IL代碼到本地碼的轉(zhuǎn)換,編譯速度與運(yùn)行速度都非常快。

為了配合編譯器的工作,在.NET SDK的安裝路徑下的/bin目錄中有一個(gè)負(fù)責(zé)管理JIT的應(yīng)用程序:jitman.exe。具體的使用參見(jiàn)聯(lián)機(jī)幫助。



查看完整回答
反對(duì) 回復(fù) 2021-04-18
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

framework是Microsoft.NET程序的開(kāi)發(fā)框架的運(yùn)行庫(kù),也就是說(shuō)如果你運(yùn)行的程序是用.net開(kāi)發(fā)的,就需要Framework作為底層運(yùn)行環(huán)境。

NET Framework: 就是微軟Web Services 引擎
有許多程序設(shè)計(jì)師和使用者,非??释幸粋€(gè)完善而且透明清楚的基礎(chǔ)架構(gòu),來(lái)建立WebServices(因特網(wǎng)服務(wù))。.NET Framework 就是為了這個(gè)需求,而提供的基礎(chǔ)架構(gòu)。.NETFramework 提供了應(yīng)用程序模型及關(guān)鍵技術(shù),讓開(kāi)發(fā)人員容易以原有的技術(shù)來(lái)產(chǎn)生、布署,并可以繼續(xù)發(fā)展具有高安全、高穩(wěn)定,并具高延展的Web Services。對(duì)于.NET Framework 而言,所有的組件都可以成為Web Services,Web Services 只不過(guò)是另一種型態(tài)的組件罷了。微軟將COM 的優(yōu)點(diǎn)整合進(jìn)來(lái),它可以不用像COM 那么嚴(yán)謹(jǐn)?shù)膩?lái)栓鎖兩個(gè)對(duì)象,.NET Framework 以松散的方式來(lái)栓鎖Web Services 這種型態(tài)的組件。這樣的結(jié)果讓開(kāi)發(fā)人員非常容易的發(fā)展出強(qiáng)而有力的Web 服務(wù)組件,提高了整體的安全及可靠性,并且大大的增加系統(tǒng)的延展性。

.NET Framework: 由三個(gè)部分組成
.NET Framework 的目的就是要讓建立Web Services 以及因特網(wǎng)應(yīng)用程序的工作變的簡(jiǎn)單,.NET Framework 包括了三大部分:第一個(gè)部分是Common Language Runtime(CLR,所有.NET 程序語(yǔ)言公用的執(zhí)行時(shí)期組件),第二部分是共享對(duì)象類(lèi)別庫(kù)(提供所有.NET 程序語(yǔ)言所需要的基本對(duì)象),第三個(gè)部分是重新以組件的方式寫(xiě)成的ASP.NET(舊版本則是以asp.dll提供ASP 網(wǎng)頁(yè)所需要的對(duì)象)。

基本上安裝了之后對(duì)機(jī)器不會(huì)有很大的影響
NET Framework 是支持生成和運(yùn)行下一代應(yīng)用程序和 XML Web services 的內(nèi)部 Windows 組件
NET的運(yùn)行環(huán)境,類(lèi)似用運(yùn)行時(shí)間庫(kù)的東西,要運(yùn)行.NET的計(jì)算機(jī)必須安裝了這個(gè)東西。具體的說(shuō)是支持生成和運(yùn)行下一代應(yīng)用程序和 XML Web services 的內(nèi)部 Windows 組件。.NET Framework 旨在實(shí)現(xiàn)下列目標(biāo):

提供一個(gè)一致的面向?qū)ο蟮木幊汰h(huán)境,而無(wú)論對(duì)象代碼是在本地存儲(chǔ)和執(zhí)行,還是在本地執(zhí)行但在 Internet 上分布,或者是在遠(yuǎn)程執(zhí)行的。
提供一個(gè)將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境。
提供一個(gè)可提高代碼(包括由未知的或不完全受信任的第三方創(chuàng)建的代碼)執(zhí)行安全性的代碼執(zhí)行環(huán)境。
提供一個(gè)可消除腳本環(huán)境或解釋環(huán)境的性能問(wèn)題的代碼執(zhí)行環(huán)境。
使開(kāi)發(fā)人員的經(jīng)驗(yàn)在面對(duì)類(lèi)型大不相同的應(yīng)用程序(如基于 Windows 的應(yīng)用程序和基于 Web 的應(yīng)用程序)時(shí)保持一致。
按照工業(yè)標(biāo)準(zhǔn)生成所有通信,以確保基于 .NET Framework 的代碼可與任何其他代碼集成。
.NET Framework 具有兩個(gè)主要組件:公共語(yǔ)言運(yùn)行庫(kù)和 .NET Framework 類(lèi)庫(kù)。公共語(yǔ)言運(yùn)行庫(kù)是 .NET Framework 的基礎(chǔ)。您可以將運(yùn)行庫(kù)看作一個(gè)在執(zhí)行時(shí)管理代碼的代理,它提供內(nèi)存管理、線程管理和遠(yuǎn)程處理等核心服務(wù),并且還強(qiáng)制實(shí)施嚴(yán)格的類(lèi)型安全以及可提高安全性和可靠性的其他形式的代碼準(zhǔn)確性。事實(shí)上,代碼管理的概念是運(yùn)行庫(kù)的基本原則。以運(yùn)行庫(kù)為目標(biāo)的代碼稱(chēng)為托管代碼,而不以運(yùn)行庫(kù)為目標(biāo)的代碼稱(chēng)為非托管代碼。.NET Framework 的另一個(gè)主要組件是類(lèi)庫(kù),它是一個(gè)綜合性的面向?qū)ο蟮目芍赜妙?lèi)型集合,您可以使用它開(kāi)發(fā)多種應(yīng)用程序,這些應(yīng)用程序包括傳統(tǒng)的命令行或圖形用戶(hù)界面 (GUI) 應(yīng)用程序,也包括基于 ASP.NET 所提供的最新創(chuàng)新的應(yīng)用程序(如 Web 窗體和 XML Web services)。

.NET Framework 可由非托管組件承載,這些組件將公共語(yǔ)言運(yùn)行庫(kù)加載到它們的進(jìn)程中并啟動(dòng)托管代碼的執(zhí)行,從而創(chuàng)建一個(gè)可以同時(shí)利用托管和非托管功能的軟件環(huán)境。.NET Framework 不但提供若干個(gè)運(yùn)行庫(kù)宿主,而且還支持第三方運(yùn)行庫(kù)宿主的開(kāi)發(fā)。

例如,ASP.NET 承載運(yùn)行庫(kù)以為托管代碼提供可伸縮的服務(wù)器端環(huán)境。ASP.NET 直接使用運(yùn)行庫(kù)以啟用 ASP.NET 應(yīng)用程序和 XML Web services(本主題稍后將對(duì)這兩者進(jìn)行討論)。

Internet Explorer 是承載運(yùn)行庫(kù)(以 MIME 類(lèi)型擴(kuò)展的形式)的非托管應(yīng)用程序的一個(gè)示例。使用 Internet Explorer 承載運(yùn)行庫(kù)使您能夠在 HTML 文檔中嵌入托管組件或 Windows 窗體控件。以這種方式承載運(yùn)行庫(kù)使得托管移動(dòng)代碼(類(lèi)似于 Microsoft? ActiveX? 控件)成為可能,不過(guò)它需要只有托管代碼才能提供的重大改進(jìn)(如不完全受信任的執(zhí)行和獨(dú)立的文件存儲(chǔ))。


查看完整回答
反對(duì) 回復(fù) 2021-04-18
  • 3 回答
  • 0 關(guān)注
  • 517 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)