3 回答

TA貢獻1712條經驗 獲得超3個贊
.NET Framework一般指Microsoft .NET Framework。
Microsoft .NET Framework是用于Windows的新托管代碼編程模型。它將強大的功能與新技術結合起來,用于構建具有視覺上引人注目的用戶體驗的應用程序,實現跨技術邊界的無縫通信,并且能支持各種業務流程。
Microsoft .NET Framework安全解決方案
.NET Framework安全解決方案基于管理代碼的概念,以及由通用語言運行時(CLR)加強的安全規則。大部分管理代碼需要進行驗證以確保類型安全及預先定義好的其它屬性的行為的安全。
例如,在驗證的代碼中,聲明為接收4字節值的訪問將拒絕提供8字節參數的調用,因為不是類型安全的。驗證過程還確保了執行流只傳送到已知的位置,如方法入口點--這個過程去除了跳轉到任意位置執行的能力。
驗證將阻止不是類型安全的代碼執行,在它們引起破壞前捕獲很多常見的編程錯誤。通常的弱點--如緩存溢出,對任意內存或沒有初始化的內存的讀取,對控件的隨意傳送--都不再可能出現。這將使最終用戶受益,因為在他們執行代碼前對其進行檢查。
這也有益于開發人員,他們會發現很多常見錯誤(過去一直在困繞前開發)現在可以查明,并能阻止它們引起破壞。
擴展資料:
CLR內存管理
內存管理的自動化:在執行過程中管理應用程序的資源是一項單調而困難的工作。它會將你的注意力從你本應解決的問題中引開。而垃圾收集機制完全解決了程序員在編程過程中頭痛的問題,跟蹤內存的使用,并知道何時將它們釋放。
在面向對象的環境中,每種類型都標識了對你的應用程序有用的某種資源。為了使用這些資源,你需要為類型分配內存。在應用中,訪問一種資源要通過以下步驟:
(1)為類型分配內存。
(2)初始化內存,設置資源的初始狀態并使其可用。
(3)通過訪問該類型的實例成員來訪問資源。
(4)卸下將被清除的資源狀態。
(5)釋放內存。
這一看似簡單的過程在實際的編程中是產生錯誤的主要來源之一。更可怕的是:內存中的錯誤往往導致不可預見的結果。如果你有過編程的經驗,想想看,有多少次你的程序因為內存訪問錯誤而崩潰?
特別是計算機存在多根內存條時特別容易內存報錯死機。建議升級電腦時換掉原來的內存,不要采用加內存的方式。
CLR要求所有的資源從可操控的堆(注:在此指一種內存結構)中分配。當一個進程被初始化后,CLR保留了一個未被分配的地址空間。這一區域叫做可操控堆。在堆中保持了指向下一個將被分配給對象的堆地址的指針(NEXT)。
初始狀態下,該指針是保留地址空間的基地址。一個應用使用新的操作產生對象。此操作首先檢查新對象需要字節的大小是否會超出保留空間。
如果對象大小合適,指向下一個地址的指針將指向堆中的這個對象,該對象的構造器被調用,新的操作返回對象的地址。
當一個應用請求建立一個對象時,地址空間可能不夠大。堆將發現這一點(通過將新對象的大小與NEXT指針相加,并與堆的大小進行比較),這時垃圾收集器就將被調用。在這里,CLR引入了“代”的概念。代,指堆中對象產生的先后。
這樣,垃圾收集器在將發生溢出時回收屬于特定的“代”的對象,而不是回收堆中的所有對象。
(6)即時編譯
在各種語言的編譯器對源代碼進行編譯之后,在CLR環境中產生的是中間代碼(出于兼容性與跨語言集成的考慮),其內容雖然有效,但在轉化為本地代碼之前它本身是不可執行的。這就是JIT編譯器需要完成的工作。
這里需要說明一個問題:為什么要即時編譯,而不是一次性的將中間代碼文件進行編譯?答案很簡單:原因在于效率。在大型的應用中,你很少會用到程序的全部功能,這種邊執行邊編譯的措施比一次性的完全編譯效率更高。
CLR帶有三個不同的JIT編譯器,在Windows平臺中,CLR帶有三個不同的JIT編譯器:
(1)缺省的編譯器---主編譯器,由它進行數據流分析并輸出經過優化的本地代碼,所有的中間代碼指令均可被它處理。
(2)PREJIT,它建立在主JIT編譯器之上。其運行方式更象一個傳統的編譯器:每當一個.NET組件被安裝時它就運行。
(3)ECONOJIT,在并不充分優化的前提下,它能夠快速完成IL代碼到本地碼的轉換,編譯速度與運行速度都非常快。
為了配合編譯器的工作,在.NET SDK的安裝路徑下的/bin目錄中有一個負責管理JIT的應用程序:jitman.exe。具體的使用參見聯機幫助。

TA貢獻1828條經驗 獲得超13個贊
framework是Microsoft.NET程序的開發框架的運行庫,也就是說如果你運行的程序是用.net開發的,就需要Framework作為底層運行環境。
NET Framework: 就是微軟Web Services 引擎
有許多程序設計師和使用者,非??释幸粋€完善而且透明清楚的基礎架構,來建立WebServices(因特網服務)。.NET Framework 就是為了這個需求,而提供的基礎架構。.NETFramework 提供了應用程序模型及關鍵技術,讓開發人員容易以原有的技術來產生、布署,并可以繼續發展具有高安全、高穩定,并具高延展的Web Services。對于.NET Framework 而言,所有的組件都可以成為Web Services,Web Services 只不過是另一種型態的組件罷了。微軟將COM 的優點整合進來,它可以不用像COM 那么嚴謹的來栓鎖兩個對象,.NET Framework 以松散的方式來栓鎖Web Services 這種型態的組件。這樣的結果讓開發人員非常容易的發展出強而有力的Web 服務組件,提高了整體的安全及可靠性,并且大大的增加系統的延展性。
.NET Framework: 由三個部分組成
.NET Framework 的目的就是要讓建立Web Services 以及因特網應用程序的工作變的簡單,.NET Framework 包括了三大部分:第一個部分是Common Language Runtime(CLR,所有.NET 程序語言公用的執行時期組件),第二部分是共享對象類別庫(提供所有.NET 程序語言所需要的基本對象),第三個部分是重新以組件的方式寫成的ASP.NET(舊版本則是以asp.dll提供ASP 網頁所需要的對象)。
基本上安裝了之后對機器不會有很大的影響
NET Framework 是支持生成和運行下一代應用程序和 XML Web services 的內部 Windows 組件
NET的運行環境,類似用運行時間庫的東西,要運行.NET的計算機必須安裝了這個東西。具體的說是支持生成和運行下一代應用程序和 XML Web services 的內部 Windows 組件。.NET Framework 旨在實現下列目標:
提供一個一致的面向對象的編程環境,而無論對象代碼是在本地存儲和執行,還是在本地執行但在 Internet 上分布,或者是在遠程執行的。
提供一個將軟件部署和版本控制沖突最小化的代碼執行環境。
提供一個可提高代碼(包括由未知的或不完全受信任的第三方創建的代碼)執行安全性的代碼執行環境。
提供一個可消除腳本環境或解釋環境的性能問題的代碼執行環境。
使開發人員的經驗在面對類型大不相同的應用程序(如基于 Windows 的應用程序和基于 Web 的應用程序)時保持一致。
按照工業標準生成所有通信,以確?;?.NET Framework 的代碼可與任何其他代碼集成。
.NET Framework 具有兩個主要組件:公共語言運行庫和 .NET Framework 類庫。公共語言運行庫是 .NET Framework 的基礎。您可以將運行庫看作一個在執行時管理代碼的代理,它提供內存管理、線程管理和遠程處理等核心服務,并且還強制實施嚴格的類型安全以及可提高安全性和可靠性的其他形式的代碼準確性。事實上,代碼管理的概念是運行庫的基本原則。以運行庫為目標的代碼稱為托管代碼,而不以運行庫為目標的代碼稱為非托管代碼。.NET Framework 的另一個主要組件是類庫,它是一個綜合性的面向對象的可重用類型集合,您可以使用它開發多種應用程序,這些應用程序包括傳統的命令行或圖形用戶界面 (GUI) 應用程序,也包括基于 ASP.NET 所提供的最新創新的應用程序(如 Web 窗體和 XML Web services)。
.NET Framework 可由非托管組件承載,這些組件將公共語言運行庫加載到它們的進程中并啟動托管代碼的執行,從而創建一個可以同時利用托管和非托管功能的軟件環境。.NET Framework 不但提供若干個運行庫宿主,而且還支持第三方運行庫宿主的開發。
例如,ASP.NET 承載運行庫以為托管代碼提供可伸縮的服務器端環境。ASP.NET 直接使用運行庫以啟用 ASP.NET 應用程序和 XML Web services(本主題稍后將對這兩者進行討論)。
Internet Explorer 是承載運行庫(以 MIME 類型擴展的形式)的非托管應用程序的一個示例。使用 Internet Explorer 承載運行庫使您能夠在 HTML 文檔中嵌入托管組件或 Windows 窗體控件。以這種方式承載運行庫使得托管移動代碼(類似于 Microsoft? ActiveX? 控件)成為可能,不過它需要只有托管代碼才能提供的重大改進(如不完全受信任的執行和獨立的文件存儲)。
添加回答
舉報