.NET Framework 概述—-.NET Framework 開發員指南

來源:互聯網
上載者:User

.NET Framework 是一種新的計算平台,它簡化了在高度分布式 Internet 環境中的應用程式開發。.NET Framework 旨在實現下列目標:

  • 提供一個一致的物件導向的編程環境,而無論對象代碼是在本機存放區和執行,還是在本地執行但在 Internet 上分布,或者是在遠程執行的。
  • 提供一個將軟體部署和版本控制衝突最小化的代碼執行環境。
  • 提供一個保證代碼(包括由未知的或不完全受信任的第三方建立的代碼)安全執行的代碼執行環境。
  • 提供一個可消除指令碼環境或解釋環境的效能問題的代碼執行環境。
  • 使開發人員的經驗在面對類型大不相同的應用程式(如基於 Windows 的應用程式和基於 Web 的應用程式)時保持一致。
  • 按照工業標準產生所有通訊,以確保基於 .NET Framework 的代碼可與任何其他代碼整合。

.NET Framework 具有兩個主要組件:公用語言運行庫和 .NET Framework 類庫。公用語言運行庫是 .NET Framework 的基礎。您可以將運行庫看作一個在執行時管理代碼的代理,它提供核心服務(如記憶體管理、線程管理和遠端),而且還強制實施嚴格的型別安全以及可確保安全性和可靠性的其他形式的代碼準確性。事實上,代碼管理的概念是運行庫的基本原則。以運行庫為目標的代碼稱為Managed 程式碼,而不以運行庫為目標的代碼稱為Unmanaged 程式碼。.NET Framework 的另一個主要組件是類庫,它是一個綜合性的物件導向的可重用類型集合,您可以使用它開發多種應用程式,這些應用程式套件組合括傳統的命令列或圖形化使用者介面 (GUI) 應用程式,也包括基於 ASP.NET 所提供的最新創新的應用程式(如 Web Form和 XML Web services)。

.NET Framework 可由非託管組件承載,這些組件將公用語言運行庫載入到它們的進程中並啟動Managed 程式碼的執行,從而建立一個可以同時利用託管和非託管功能的軟體環境。.NET Framework 不但提供若干個運行庫宿主,而且還支援第三方運行庫宿主的開發。

例如,ASP.NET 承載運行庫以為Managed 程式碼提供可伸縮的伺服器端環境。ASP.NET 直接使用運行庫以啟用 ASP.NET 應用程式和 XML Web services(本主題稍後將對這兩者進行討論)。

Internet Explorer 是承載運行庫(以 MIME 類型擴充的形式)的非託管應用程式的一個樣本。使用 Internet Explorer 承載運行庫使您能夠在 HTML 文檔中嵌入託管組件或 Windows 表單控制項。以這種方式承載運行庫使得託管行動程式碼(類似於 Microsoft ActiveX 控制項)成為可能,但是它具有只有Managed 程式碼才能提供的重大改進(如不完全受信任的執行和安全的獨立檔案儲存體)。

下面的插圖顯示公用語言運行庫和類庫與應用程式之間以及與整個系統之間的關係。該插圖還顯示Managed 程式碼如何在更大的結構內運行。

.NET Framework 環境


公用語言運行庫的功能

公用語言運行庫管理記憶體、線程執行、代碼執行、代碼安全驗證、編譯以及其他系統服務。這些功能是在公用語言運行庫上啟動並執行Managed 程式碼所固有的。

至於安全性,取決於包括託管組件的來源(如 Internet、商業網路或本機電腦)在內的一些因素,託管組件被賦予不同程度的信任。這意味著即使用在同一活動應用程式中,託管組件既可能能夠執行檔案訪問操作、註冊表訪問操作或其他須小心使用的功能,也可能不能夠執行這些功能。

運行庫強制實施代碼訪問安全。例如,使用者可以相信嵌入在 Web 頁中的可執行檔能夠在螢幕上播放動畫或唱歌,但不能訪問他們的個人資料、檔案系統或網路。這樣,運行庫的安全性功能就使通過 Internet 部署的合法軟體能夠具有特別豐富的功能。

運行庫還通過實現稱為一般型別系統 (CTS) 的嚴格類型驗證和代碼驗證基礎結構來加強代碼可靠性。CTS 確保所有Managed 程式碼都是可以自我描述的。各種 Microsoft 和第三方語言編譯器產生符合 CTS 的Managed 程式碼。這意味著Managed 程式碼可在嚴格實施類型保真和型別安全的同時使用其他託管類型和執行個體。

此外,運行庫的託管環境還消除了許多常見的軟體問題。例如,運行庫自動處理物件版面配置並管理對對象的引用,在不再使用它們時將它們釋放。這種自動記憶體管理解決了兩個最常見的應用程式錯誤:記憶體流失和無效記憶體引用。

運行庫還提高了開發人員的工作效率。例如,程式員可以用他們選擇的開發語言編寫應用程式,卻仍能充分利用其他開發人員用其他語言編寫的運行庫、類庫和組件。任何選擇以運行庫為目標的編譯器供應商都可以這樣做。以 .NET Framework 為目標的語言編譯器使得用該語言編寫的現有代碼可以使用 .NET Framework 的功能,這大大減輕了現有應用程式的遷移過程的工作負擔。

儘管運行庫是為未來的軟體設計的,但是它也支援現在和以前的軟體。託管和Unmanaged 程式碼之間的互通性使開發人員能夠繼續使用所需的 COM 組件和 DLL。

運行庫旨在增強效能。儘管公用語言運行庫提供許多標準運行庫服務,但是它從不解釋Managed 程式碼。一種稱為即時 (JIT) 編譯的功能使所有Managed 程式碼能夠以它在其上執行的系統的母語運行。同時,記憶體管理器排除了出現零碎記憶體的可能性,並增大了記憶體引用地區以進一步提高效能。

最後,運行庫可由高效能的伺服器端應用程式(如 Microsoft SQL Server 和 Internet 資訊服務 (IIS))承載。此基礎結構使您在享受支援運行庫宿主的行業最佳企業伺服器的優越效能的同時,能夠使用Managed 程式碼編寫商務邏輯。

.NET Framework 類庫

.NET Framework 類庫是一個與公用語言運行庫緊密整合的可重用的類型集合。該類庫是物件導向的,並提供您自己的Managed 程式碼可從中匯出功能的類型。這不但使 .NET Framework 類型便於使用,而且還減少了學習 .NET Framework 的新功能所需要的時間。此外,第三方組件可與 .NET Framework 中的類無縫整合。

例如,.NET Framework 集合類實現一組可用於開發您自己的集合類的介面。您的集合類將與 .NET Framework 中的類無縫地混合。

正如您對物件導向的類庫所希望的那樣,.NET Framework 類型使您能夠完成一系列常見編程任務(包括諸如字串管理、資料收集、資料庫連接以及檔案訪問等任務)。除這些常見任務之外,類庫還包括支援多種專用開發方案的類型。例如,可使用 .NET Framework 開發下列類型的應用程式和服務:

  • 控制台應用程式。
  • Windows GUI 應用程式(Windows 表單)。
  • ASP.NET 應用程式。
  • XML Web services。
  • Windows 服務。

例如,Windows 表單類是一組綜合性的可重用的類型,它們大大簡化了 Windows GUI 的開發。如果要編寫 ASP.NET Web Form應用程式,可使用 Web Form類。

用戶端應用程式開發

用戶端應用程式在基於 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 頁那樣部署時實現本地應用程式的功能。

伺服器應用程式開發

在託管領域中,伺服器端應用程式是通過運行庫宿主實現的。非託管應用程式承載公用語言運行庫,後者使您的自訂Managed 程式碼可以控制伺服器的行為。此模型在獲得主伺服器的效能和延展性的同時提供給您公用語言運行庫和類庫的所有功能。

下面的插圖顯示在不同伺服器環境中運行Managed 程式碼的基本網路架構。在應用程式邏輯通過Managed 程式碼執行時,伺服器(如 IIS 和 SQL Server)可執行標準操作。

伺服器端Managed 程式碼

ASP.NET 是使開發人員能夠使用 .NET Framework 開發基於 Web 的應用程式的宿主環境。但是,ASP.NET 不止是一個運行庫宿主;它是使用Managed 程式碼開發 Web 網站和通過 Internet 分布的對象的完整結構。Web Form和 XML Web services 都將 IIS 和 ASP.NET 用作應用程式的發布機制,並且兩者在 .NET Framework 中都具有支援類集合。

XML Web services 作為基於 Web 的技術的重要發展,是類似於常見 Web 網站的分布式伺服器端應用程式組件。但是,與基於 Web 的應用程式不同,XML Web services 組件不具有 UI 並且不以瀏覽器(如 Internet Explorer 和 Netscape Navigator)為目標。XML Web services 由旨在供其他應用程式使用的可重用的軟體組件組成,所謂的其他應用程式套件組合括:傳統的用戶端應用程式,基於 Web 的應用程式,甚至是其他 XML Web services。因此,XML Web services 技術正迅速地將應用程式開發和部署推向高度分布式 Internet 環境。

如果您使用過 ASP 技術的早期版本,很快就會注意到 ASP.NET 和 Web Form提供的改進。例如,您可以用支援 .NET Framework 的任何語言開發 Web Form頁。此外,您的代碼不再需要與 HTTP 文本共用同一個檔案(儘管如果您願意,代碼還可以繼續這樣做)。Web Form頁用母語執行,這是因為與所有其他託管應用程式一樣,它們充分利用運行庫。與此相對照,非託管 ASP 頁始終被寫成指令碼並解釋。ASP.NET 頁比非託管 ASP 頁更快、更實用並且更易於開發,這是因為它們像所有託管應用程式一樣與運行庫進行互動。

.NET Framework 還提供類和工具的集合來協助開發和使用 XML Web services 應用程式。XML Web services 是基於 SOAP(一種遠端程序呼叫協議)、XML(一種可擴充的資料格式)和 WSDL(Web 服務描述語言)這些標準產生的。基於這些標準產生 .NET Framework 的目的是為了提高與非 Microsoft 解決方案的互通性。

例如,.NET Framework SDK 所包含的 Web 服務描述語言工具可以查詢在 Web 上發布的 XML Web services,分析它的 WSDL 描述,併產生 C# 或 Visual Basic 原始碼,您的應用程式可以使用這些代碼而成為 XML Web services 的用戶端。這些原始碼可以建立從類庫中的類派生的類,這些類使用 SOAP 和 XML 分析處理所有基礎通訊。雖然您可以使用類庫來直接使用 XML Web services,Web 服務描述語言工具和包含在 SDK 中的其他工具可以使您更加方便地用 .NET Framework 進行開發。

如果您開發和發布自己的 XML Web services,.NET Framework 為您提供了一組符合所有基礎通訊標準(如 SOAP、WSDL 和 XML)的類。使用這些類使您能夠將注意力集中在服務的邏輯上,而無需關注分布式軟體開發所需要的通訊基礎結構。

最後,與託管環境中的 Web Form頁相似,您的 XML Web services 將使用 IIS 的可伸縮通訊以母語的速度運行。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.