NET Framework是支持生成和運行下一代應用程序和 XML Web services 的內部 Windows 組件NET Framework 旨在實現下列目標
◆提供一個一致的面向對象的編程環境而無論對象代碼是在本地存儲和執行還是在本地執行但在 Internet 上分布或者是在遠程執行的
◆提供一個將軟件部署和版本控制沖突最小化的代碼執行環境
◆提供一個可提高代碼(包括由未知的或不完全受信任的第三方創建的代碼)執行安全性的代碼執行環境
◆提供一個可消除腳本環境或解釋環境的性能問題的代碼執行環境
◆使開發人員的經驗在面對類型大不相同的應用程序(如基於 Windows 的應用程序和基於 Web 的應用程序)時保持一致
◆按照工業標准生成所有通信以確保基於 NET Framework 的代碼可與任何其他代碼集成
NET Framework 具有兩個主要組件公共語言運行庫和 NET Framework 類庫公共語言運行庫是 NET Framework 的基礎您可以將運行庫看作一個在執行時管理代碼的代理它提供內存管理線程管理和遠程處理等核心服務並且還強制實施嚴格的類型安全以及可提高安全性和可靠性的其他形式的代碼准確性事實上代碼管理的概念是運行庫的基本原則以運行庫為目標的代碼稱為托管代碼而不以運行庫為目標的代碼稱為非托管代碼NET Framework 的另一個主要組件是類庫它是一個綜合性的面向對象的可重用類型集合您可以使用它開發多種應用程序這些應用程序包括傳統的命令行或圖形用戶界面 (GUI) 應用程序也包括基於 ASPNET 所提供的最新創新的應用程序(如 Web 窗體和 XML Web services)
NET Framework 可由非托管組件承載這些組件將公共語言運行庫加載到它們的進程中並啟動托管代碼的執行從而創建一個可以同時利用托管和非托管功能的軟件環境NET Framework 不但提供若干個運行庫宿主而且還支持第三方運行庫宿主的開發
例如ASPNET 承載運行庫以為托管代碼提供可伸縮的服務器端環境ASPNET 直接使用運行庫以啟用 ASPNET 應用程序和 XML Web services(本主題稍後將對這兩者進行討論)
Internet Explorer 是承載運行庫(以 MIME 類型擴展的形式)的非托管應用程序的一個示例使用 Internet Explorer 承載運行庫使您能夠在 HTML 文檔中嵌入托管組件或 Windows 窗體控件以這種方式承載運行庫使得托管移動代碼(類似於 Microsoft® ActiveX® 控件)成為可能不過它需要只有托管代碼才能提供的重大改進(如不完全受信任的執行和獨立的文件存儲)
下面的插圖顯示公共語言運行庫和類庫與應用程序之間以及與整個系統之間的關系該插圖還顯示托管代碼如何在更大的結構內運行
NET Framework 環境
下面的章節將更加詳細地描述 NET Framework 的主要組件和功能
公共語言運行庫的功能
公共語言運行庫管理內存線程執行代碼執行代碼安全驗證編譯以及其他系統服務這些功能是在公共語言運行庫上運行的托管代碼所固有的
至於安全性取決於包括托管組件的來源(如 Internet企業網絡或本地計算機)在內的一些因素托管組件被賦予不同程度的信任這意味著即使用在同一活動應用程序中托管組件既可能能夠執行文件訪問操作注冊表訪問操作或其他須小心使用的功能也可能不能夠執行這些功能
運行庫強制實施代碼訪問安全例如用戶可以相信嵌入在 Web 頁中的可執行文件能夠在屏幕上播放動畫或唱歌但不能訪問他們的個人數據文件系統或網絡這樣運行庫的安全性功能就使通過 Internet 部署的合法軟件能夠具有特別豐富的功能
運行庫還通過實現稱為通用類型系統 (CTS) 的嚴格類型驗證和代碼驗證基礎結構來加強代碼可靠性CTS 確保所有托管代碼都是可以自我描述的各種 Microsoft 和第三方語言編譯器生成符合 CTS 的托管代碼這意味著托管代碼可在嚴格實施類型保真和類型安全的同時使用其他托管類型和實例
此外運行庫的托管環境還消除了許多常見的軟件問題例如運行庫自動處理對象布局並管理對對象的引用在不再使用它們時將它們釋放這種自動內存管理解決了兩個最常見的應用程序錯誤內存洩漏和無效內存引用
運行庫還提高了開發人員的工作效率例如程序員可以用他們選擇的開發語言編寫應用程序卻仍能充分利用其他開發人員用其他語言編寫的運行庫類庫和組件任何選擇以運行庫為目標的編譯器供應商都可以這樣做以 NET Framework 為目標的語言編譯器使得用該語言編寫的現有代碼可以使用 NET Framework 的功能這大大減輕了現有應用程序的遷移過程的工作負擔
盡管運行庫是為未來的軟件設計的但是它也支持現在和以前的軟件托管和非托管代碼之間的互操作性使開發人員能夠繼續使用所需的 COM 組件和 DLL
運行庫旨在增強性能盡管公共語言運行庫提供許多標准運行庫服務但是它從不解釋托管代碼一種稱為實時 (JIT) 編譯的功能使所有托管代碼能夠以它在其上執行的系統的本機語言運行同時內存管理器排除了出現零碎內存的可能性並增大了內存引用區域以進一步提高性能
最後運行庫可由高性能的服務器端應用程序(如 Microsoft® SQL Server; 和 Internet 信息服務 (IIS))承載此基礎結構使您在享受支持運行庫宿主的行業最佳企業服務器的優越性能的同時能夠使用托管代碼編寫業務邏輯
NET Framework 類庫
NET Framework 類庫是一個與公共語言運行庫緊密集成的可重用的類型集合該類庫是面向對象的並提供您自己的托管代碼可從中導出功能的類型這不但使 NET Framework 類型易於使用而且還減少了學習 NET Framework 的新功能所需要的時間此外第三方組件可與 NET Framework 中的類無縫集成
例如NET Framework 集合類實現一組可用於開發您自己的集合類的接口您的集合類將與 NET Framework 中的類無縫地混合
正如您對面向對象的類庫所希望的那樣NET Framework 類型使您能夠完成一系列常見編程任務(包括諸如字符串管理數據收集數據庫連接以及文件訪問等任務)除這些常見任務之外類庫還包括支持多種專用開發方案的類型例如可使用 NET Framework 開發下列類型的應用程序和服務
控制台應用程序
◆Windows GUI 應用程序(Windows 窗體)
◆ASPNET 應用程序
◆XML Web services
◆Windows 服務
例如Windows 窗體類是一組綜合性的可重用的類型它們大大簡化了 Windows GUI 的開發如果要編寫 ASPNET Web 窗體應用程序可使用 Web 窗體類
客戶端應用程序開發
客戶端應用程序在基於 Windows 的編程中最接近於傳統風格的應用程序這些是在桌面上顯示窗口或窗體從而使用戶能夠執行任務的應用程序類型客戶端應用程序包括諸如字處理程序和電子表格等應用程序還包括自定義的業務應用程序(如數據輸入工具報告工具等等)客戶端應用程序通常使用窗口菜單按鈕和其他 GUI 元素並且它們可能訪問本地資源(如文件系統)和外圍設備(如打印機)
另一種客戶端應用程序是作為 Web 頁通過 Internet 部署的傳統 ActiveX 控件(現在被托管 Windows 窗體控件所替代)此應用程序非常類似於其他客戶端應用程序它在本機執行可以訪問本地資源並包含圖形元素
過去開發人員將 C/C++ 與 Microsoft 基礎類 (MFC) 或應用程序快速開發 (RAD) 環境(如 Microsoft® Visual Basic®)一起使用來創建這樣的應用程序NET Framework 將這些現有產品的特點合並到了單個且一致的開發環境中該環境大大簡化了客戶端應用程序的開發
包含在 NET Framework 中的 Windows 窗體類旨在用於 GUI 開發您可以輕松創建具有適應多變的商業需求所需的靈活性的命令窗口按鈕菜單工具欄和其他屏幕元素
例如NET Framework 提供簡單的屬性以調整與窗體相關聯的可視屬性某些情況下基礎操作系統不支持直接更改這些屬性而在這些情況下NET Framework 將自動重新創建窗體這是 NET Framework 集成開發人員接口從而使編碼更簡單更一致的許多方法之一
和 ActiveX 控件不同Windows 窗體控件具有對用戶計算機的不完全受信任的訪問權限這意味著二進制代碼或在本機執行的代碼可訪問用戶系統上的某些資源例如 GUI 元素和訪問受限制的文件但這些代碼不能訪問或危害其他資源由於具有代碼訪問安全性許多曾經需要安裝在用戶系統上的應用程序現在可以通過 Web 部署您的應用程序可以在像 Web 頁那樣部署時實現本地應用程序的功能
服務器應用程序開發
在托管領域中服務器端應用程序是通過運行庫宿主實現的非托管應用程序承載公共語言運行庫後者使您的自定義托管代碼可以控制服務器的行為此模型在獲得主服務器的性能和可伸縮性的同時提供給您公共語言運行庫和類庫的所有功能
下面的插圖顯示在不同服務器環境中運行托管代碼的基本網絡架構在應用程序邏輯通過托管代碼執行時服務器(如 IIS 和 SQL Server)可執行標准操作
服務器端托管代碼
.NET編程免費提供,內容來源於互聯網,本文歸原作者所有。