.NET Framework 2.0 版中的新增功能

 

 

在 Microsoft .NET Framework 1.1 版的基礎上,.NET Framework 2.0 版進行了擴展,不僅對現有的功能做了改進,還新增了一些功能,並對文檔進行了增強。本節提供有關某些主要添加和修改的信息。

有關可能影響您的應用程序的重大更改的更多信息,請參見 Breaking Changes in the .NET Framework(.NET Framework 中的重大更改)。

64 位平臺支持

新一代的 64 位計算機使人們能夠創建比 32 位應用程序運行更快並且能夠比 32 位應用程序更好地利用內存的應用程序。對 64 位應用程序的新支持使用戶能夠在 64 位計算機上生成託管代碼庫或方便地使用非託管代碼庫。有關更多信息,請參見 64 位應用程序

訪問控制列表支持

訪問控制列表 (ACL) 用於授予或撤消對計算機上的資源的訪問權限。.NET Framework 中已添加了允許託管代碼創建和修改 ACL 的新類。I/O 類、註冊表類和線程類中添加了使用 ACL 的新成員。

ADO.NET

ADO.NET 中的新功能包括對用戶定義類型 (UDT)、異步數據庫操作、XML 數據類型、大值類型和快照隔離的支持,以及對允許應用程序通過 SQL Server 2005 支持多活動結果集 (MARS) 的新屬性的支持。有關 ADO.NET 的這些新功能以及其他 ADO.NET 新功能的更多信息,請參見 ADO.NET 中的新增功能

ASP.NET

Microsoft .NET Framework 2.0 包含了對 ASP.NET 各個方面的重要增強。對於網頁開發,新的控件使得向動態網頁添加常用功能更加方便。新的數據控件使得無需編寫代碼即可在 ASP.NET 網頁上顯示和編輯數據成爲可能。經過改善的代碼隱藏模型使得開發 ASP.NET 頁更容易也更可靠。緩存功能提供了用來緩存頁的多種新方式,包括在 SQL Server 數據庫的表上生成緩存依賴項的能力。

現在,您可以以多種方式自定義網站和網頁。配置文件屬性使 ASP.NET 能夠自動跟蹤單個用戶的屬性值。通過使用 Web 部件,您可以創建用戶可在瀏覽器中自定義的頁。您可以使用簡單控件添加導航菜單。

對網站功能的改進使您可以更加方便快捷地創建專業網站。母版頁使您可以爲站點中的所有頁創建一致的佈局,而主題使您可以爲控件和靜態文本定義一致的外觀。若要幫助保護您的站點,您可以預編譯網站以從源文件(代碼文件和 .aspx 頁中的標記)生成可執行代碼。然後,您可以將結果輸出部署到成品服務器,結果輸出不包含任何源信息。對 ASP.NET 的增強還包括可使網站開發人員、服務器管理員和託管人員更容易地進行網站管理的新的工具和類。

ASP.NET 適合於多種瀏覽器和設備。默認情況下,控件呈現符合 XHTML 1.1 標準的輸出。您可以使用設備篩選針對不同的瀏覽器爲相同的控件指定不同的屬性值。

有關 ASP.NET 新增功能的更完整列表,請參見 ASP.NET 中的新增功能

已驗證身份的流

應用程序可使用新的 NegotiateStreamSslStream 類進行身份驗證,並幫助保護在客戶端和服務器之間傳輸的信息的安全。這些已驗證身份的流類支持相互身份驗證、數據加密和數據簽名。NegotiateStream 類使用協商安全協議進行身份驗證。SslStream 類使用安全套接字層 (SSL) 安全協議進行身份驗證。

COM Interop 服務增強功能

類和工具中增加了四種支持與 COM 的互操作性的主要增強功能:

  • 操作系統維護有限數量的句柄,這些句柄用來引用關鍵操作系統資源。新的 SafeHandleCriticalHandle 類及其專用派生類提供了對操作系統句柄進行操作的安全可靠的方式。

  • 對封送處理的改進使得與本機代碼交互操作更加容易。對互操作封送拆收器的兩種增強功能滿足了最常見的兩種用戶要求:將本機函數指針包裝到委託中的能力以及在結構內部封送固定大小的結構數組的能力。

  • 對於常見調用類型,不同應用程序域中的應用程序之間的調用性能速度更快。

  • 類型庫導入程序 (Tlbimp.exe)類型庫導出程序 (Tlbexp.exe) 的新開關消除了對註冊表解析類型庫引用的依賴性。此增強對於創建可靠的生成環境非常重要。

Console 類增補

Console 類的新成員使應用程序能夠操作控制檯窗口和屏幕緩衝區的大小;移動屏幕緩衝區的矩形區域(這對於執行平滑簡單的動畫很有用);並在讀取控制檯輸入時等待,直至按下某個鍵。其他新的類成員控制文本的前景色和背景色、光標的可見性和大小以及控制檯警告聲的頻率和持續時間。

數據保護 API

新的數據保護 API (DPAPI) 包含四種方法可使應用程序無需調用平臺調用即可加密密碼、密鑰、連接字符串等。您還可以在運行 Windows Server 2003 或更高版本操作系統的計算機上加密內存塊。

調試器顯示屬性

現在,您可以控制當調試應用程序時 Visual Studio 顯示類或成員的方式。調試器的顯示屬性功能使您能夠標識要在調試器中顯示的最有用的信息。

調試器編輯並繼續支持

.NET Framework 2.0 重新引入了“編輯並繼續”功能,該功能使在 Visual Studio 中調試應用程序的用戶能夠在以中斷模式執行的同時更改源代碼。在應用對源代碼所做的編輯之後,用戶可以繼續執行代碼並觀察效果。而且,“編輯並繼續”功能在 Visual Studio 所支持的任何編程語言中都可用。

檢測網絡連接更改

NetworkChange 類可使應用程序在網絡接口(也稱爲網卡或適配器)的 Internet 協議 (IP) 地址發生更改時接收通知。更改接口地址的原因有多種,如網線斷開、超出了無線局域網的範圍或者硬件故障。NetworkChange 類通過在檢測到地址更改時引發事件來提供地址更改通知。

分佈式計算

System.Net 命名空間中,已添加了對 FTP 客戶端請求、HTTP 資源緩存、自動代理髮現以及網絡流量和統計信息獲取的支持。該命名空間現在包含一個 Web 服務器類 (HttpListener),您可以用它來創建簡單的 Web 服務器以響應 HTTP 請求。已對生成網絡流量的類進行檢測以輸出用於應用程序調試和診斷的跟蹤信息。System.Net.Sockets.SocketSystem.Uri 類中添加了安全和性能增強。

System.Web.Services 命名空間中,添加了對 SOAP 1.2 和可空元素的支持。

System.Runtime.Remoting.Channels 命名空間中,添加了信道安全功能。TCP 信道現在支持身份驗證和加密,以及多種用於更好地支持負載平衡的新功能。

EventLog 增強

現在您可以對 EventLog 消息、參數和類別使用自定義 DLL。

擴展的證書管理

.NET Framework 現在支持 X.509 證書存儲區、證書鏈和證書擴展。此外,您可以使用 X.509 證書籤名和驗證 XML,而無需使用平臺調用。還有對 PKCS7 簽名和加密以及 CMS(Microsoft Windows 2000 和更高版本操作系統上可用的 PKCS7 標準的超集)的支持。PKCS7 是安全/多用途 Internet 郵件擴展 (S/MIME) 中用於簽名和加密數據的基礎格式。有關更多信息,請參見 X509Certificate2 類主題。

FTP 支持

應用程序現在可以使用 WebRequestWebResponseWebClient 類訪問文件傳輸協議資源。

泛型和泛型集合

.NET Framework 2.0 引入了泛型以使您能夠創建靈活的可重用代碼。合稱爲泛型的語言功能充當模板,這些模板允許使用未指定的或泛型的類型參數(而不是使用具體的類型)來聲明和定義類、結構、接口、方法和委託。使用泛型時,實際類型是在稍後指定的。多個命名空間(如 System NamespaceSystem.Collections.Generic)提供了泛型類和方法。新的 System.Collections.Generic 命名空間提供了對強類型集合的支持。System.Nullable<T> 是可選值的標準表示形式。有三種語言支持泛型:Visual Basic、C# 和 C++。

反射已得到擴展以允許泛型類型和方法的運行時檢查和操作。System.TypeSystem.Reflection.MethodInfo 添加了新成員,包括標識泛型類型(例如 class Gen<T,U> {...})的 IsGenericType、獲取類型參數列表的 GetGenericArguments 以及創建特定類型(例如 new Gen<int, long>())的 MakeGenericType

全球化

五個新的全球化功能對於開發用於不同語言和區域性的應用程序提供了更廣泛的支持。

  • 對自定義區域性的支持使您能夠根據需要定義和部署區域性相關的信息。此功能對於對現有區域性定義進行少量自定義以及創建 .NET Framework 中尚不存在的區域性定義非常有用。有關更多信息,請參見 CultureAndRegionInfoBuilder 屬性。

  • 編碼和解碼操作將 Unicode 字符與可傳輸到物理介質(如磁盤或通信線路)的字節流進行相互映射。如果映射操作無法完成,則可以使用 System.Text 命名空間中的多個類所支持的新的編碼和解碼回退功能來加以彌補。

  • 實現 UTF-8 編碼的 UTF8Encoding 類中的成員現在比以前的版本快幾倍。UTF-8 是用來將 Unicode 字符轉換爲計算機上的字節的最常用編碼。

  • .NET Framework 現在支持 Unicode 聯合會定義的最新規範化標準。該規範化過程將文本的字符表示形式轉換爲標準形式以便可以比較這些表示形式是否相等。

  • GetCultureInfo 方法重載提供了 CultureInfo 只讀對象的緩存版本。創建新的 CultureInfo 對象時使用該緩存版本可提高系統性能並減少內存使用量。

I/O 增強功能

已經對各種 I/O 類的可用性和功能進行了改進。用戶現在可以更加容易地讀寫文本文件並獲取有關驅動器的信息。

現在您可以使用 System.IO.Compression 命名空間中的類以 GZIP 壓縮和解壓縮標準讀寫數據,IETF RFC 1951 和 RFC 1952 規範描述了該標準,可在 IETF Request for Comments (RFC) search page(IETF 請求註釋 (RFC) 搜索頁)注意:搜索僅限於 RFC 編號上獲得。

基於清單的激活

此功能提供了通過使用清單加載和激活應用程序的新支持。基於清單的激活對於支持 ClickOnce 應用程序至關重要。傳統上,應用程序是通過對包含應用程序入口點的程序集的引用激活的。例如,從 Windows 外殼程序內單擊應用程序的 .exe 文件將使外殼程序加載公共語言運行庫 (CLR) 並調用該 .exe 文件的程序集內的已知入口點。

基於清單的激活模型使用應用程序清單而不是程序集來激活。清單完全描述應用程序、應用程序的依賴項、安全要求等。與基於程序集的激活模型相比,清單模型具有幾個優點,特別是對於 Web 應用程序而言。例如,清單包含應用程序的安全要求,這使得用戶能夠決定在下載代碼前是否允許應用程序執行。清單還包含有關應用程序依賴項的信息。

基於清單的激活由一組 API 提供,這些 API 允許託管主機激活由清單描述的應用程序和外接程序。這些 API 混合包含了新類以及對現有類的擴展。

此激活模型還調用稱爲“信任關係管理器”的實體,該實體執行以下任務:

  1. 確定是否允許激活應用程序。此決定可通過提示用戶、查詢策略或任何其他認爲適合於給定“信任關係管理器”的方式作出。

  2. 設置在其中運行應用程序的安全上下文。通常,此步驟涉及在要運行應用程序的應用程序域上設置一個代碼訪問安全 (CAS) 策略樹。

.NET Framework 遠程處理

.NET Framework 遠程處理現在支持 IPv6 地址以及泛型類型的交換。System.Runtime.Remoting.Channels.Tcp 命名空間中的類支持使用安全支持提供程序接口 (SSPI) 的身份驗證和加密。新的 System.Runtime.Remoting.Channels.Ipc 命名空間中的類允許同一臺計算機上的應用程序迅速通信而無需使用網絡。最後,現在您可以配置連接緩存超時和方法重試次數,這可以提高網絡負載平衡遠程羣集的性能。

獲取有關本地計算機網絡配置和使用情況的信息

通過使用 System.Net.NetworkInformation 命名空間中的類,應用程序可以訪問 IP、IPv4、IPv6、TCP 和 UDP 網絡流量的統計信息。應用程序還可以查看本地計算機網絡適配器的地址和配置信息。這些信息類似於 Ipconfig.exe 命令行工具返回的信息。

Ping

Ping 類可使應用程序確定是否可通過網絡訪問遠程計算機。此類提供類似於 Ping.exe 命令行工具的功能,並支持同步和異步調用。

從應用程序內部處理 HTTP 請求

您可以使用 HttpListener 類來創建響應 HTTP 請求的簡單 Web 服務器。該 Web 服務器在 HttpListener 對象的生存期內是活動的,並以應用程序的權限在應用程序中運行。此類僅在運行 Windows XP Service Pack 2 或 Windows Server 2003 操作系統的計算機上可用。

緩存的編程空間

通過使用 System.Net.Cache 命名空間中的類,應用程序可以使用 WebRequestWebResponseWebClient 類控制所獲取資源的緩存。您可以使用 .NET Framework 提供的預定義緩存策略或指定自定義緩存策略。可以爲每個請求指定一個緩存策略,併爲未指定緩存策略的請求定義默認緩存策略。

編程語言

四種 Microsoft 編程語言明確針對 .NET Framework。有關這些語言中的新增功能和增強的更多信息,請參見以下主題:

C# 2.0 中的新增功能

Visual J# 語言中的新增功能

Microsoft C/C++ 語言中的新增功能

Visual Basic 語言中的新增功能

Visual Basic 編譯器和語言

Visual Basic 中的語言改進簡化了源代碼,並且啓用了與使用高級功能的組件的交互。

編譯器

Visual Basic 爲所有項目引入了新的條件編譯常數 VBC_VER。此版本的值爲 VBC_VER 8.0。

Visual Basic 命令行編譯器現在將默認命令行選項存儲在 Vbc.rsp 文件中,該文件與命令行編譯器 (Vbc.exe) 位於同一個目錄中。您可以編輯 Vbc.rsp 以重新配置默認命令行選項。

有四個新的命令行編譯器選項:

  • /doc 選項根據代碼中的註釋生成 XML 文檔文件。

  • /noconfig 選項使編譯器忽略 Vbc.rsp 文件。

  • /codepage 選項指定在打開源文件時使用哪個代碼頁。

  • /filealign 選項指定輸出文件中的節大小。

  • /nostdlib (Visual Basic) 選項使編譯器不引用標準庫。

有關更多信息,請參見 Visual Basic 編譯器選項

語言

安全性異常

System.Security.SecurityException 類已得到擴展以提供有利於調查安全性異常起因的附加數據。新屬性提供了很多信息,包括髮生異常的方法、第一個失敗的權限、程序集的區域或 URL、失敗的安全性操作以及引發異常的對調用堆棧的安全性操作,如 DenyPermitOnly

串行 I/O 設備支持

新的 SerialPort 類爲應用程序提供了訪問計算機串行端口以及與串行 I/O 設備進行通信的能力。

序列化

BinaryFormatterSoapFormatter 類現在提供了版本容錯序列化,這種序列化可使一種類型從另一個版本的序列化進行反序列化。有關更多詳細信息,請參見版本容錯序列化

XML 序列化現在支持使用屬性而不是字段來表示架構元素,支持泛型類型的序列化,並且支持使用 Nullable 結構來表示可空元素。IXmlSerializable 接口支持自定義架構生成。SchemaImporterExtension 可使您在架構導入期間更改架構來控制代理代碼生成。例如,您可以在使用 Visual Studio 的“添加 Web 引用”功能或使用 Web 服務描述語言工具 (Wsdl.exe) 時更改生成的代理。

新的 XML 序列化程序生成器工具 (Sgen.exe) 可使您預編譯 Web 服務客戶端使用的代碼以序列化傳輸的信息,這將大大縮短客戶端啓動時間。有關更多詳細信息,請參見介紹 XML 序列化

SMTP 支持

通過使用 System.Net.MailSystem.Net.Mime 命名空間中的類,應用程序可以將電子郵件發送給一個或多個收件人。郵件可用不同的可選視圖發送並且可包含附件。同時支持抄送和密件抄送。

強類型資源支持

資源文件生成器 (Resgen.exe) 創建嵌入在可執行文件和附屬程序集中的資源文件。Resgen.exe 爲每個資源文件生成一個包裝類,該類可使您方便地訪問資源並防止資源名稱的拼寫錯誤。

線程改進

現在,您可以命名完全在託管代碼中創建的進程間通信事件。Semaphore 類還支持專用資源計數。

跟蹤數據篩選

.NET Framework 2.0 提供了跟蹤和記錄與 I/O、應用程序啓動和關閉等有關的系統事件的類。然而,由於跟蹤信息數量巨大而且類型多樣,這使得用戶難以分析這些數據。新的對跟蹤數據篩選的支持使您能夠指定要記錄的信息的類型。

事務

新的 System.Transactions 命名空間包含的類可使應用程序參與由 Microsoft 分佈式事務協調器 (MSDTC) 或本地事務管理器管理的事務。System.Transactions 命名空間提供基於 Transaction 類的顯式編程模型和使用 TransactionScope 類的隱式編程模型,在後一種模型中,事務由該基礎結構自動管理。此事務基礎結構可以方便地與現有的 System.EnterpriseServices (COM+) 事務基礎結構交互操作。System.Transactions 命名空間還提供用於實現資源管理器的類。資源管理器管理事務中使用的持久或可變數據,並與事務管理器協作爲應用程序提供原子性和隔離性的保證。

Web 服務

Web 服務支持 SOAP 1.2 和 WS-I 基本概要 1.0,後者記錄在“Web Services Interoperability Organization - Basic Profile Version 1.0(Web 服務互操作性組織 -- 基本概要 1.0 版)”中。

在使用定義共享類型的兩個或更多 Web 服務時,爲這些 Web 服務生成的客戶端代理共享客戶端上相應的類型。這使客戶端可以在 Web 服務之間方便地傳遞共享類型的實例。

現在您可以使用基於事件的編程模式異步調用 Web 方法。

Windows 窗體相關的功能

ClickOnce 部署

ClickOnce 部署使您能夠部署自行更新的 Windows 應用程序,這類應用程序可以像 Web 應用程序一樣輕鬆地安裝和運行。您可以部署 Windows 客戶端和命令行應用程序。Visual Studio 中的“生成”和“項目”菜單上提供了新的“發佈項目”命令。有關更多信息,請參見 ClickOnce 部署概述

應用程序設置

Windows 窗體的應用程序設置使得在客戶端上創建、存儲和維護自定義應用程序和用戶首選項變得容易進行。通過 Windows 窗體設置,您不僅可以存儲應用程序數據(如數據庫連接字符串),還可以存儲特定於用戶的數據(如工具欄位置和最近使用的列表)。有關更多信息,請參見應用程序設置概述

新的數據綁定模型

因爲 BindingSource 組件充當了綁定控件和目標數據源的中間源,所以簡化了數據綁定的過程。它自動管理很多更難的綁定問題,例如貨幣、與數據有關的事件以及目標數據源更改。它還被設計爲與其他和數據相關的 Windows 窗體控件交互操作,尤其是 BindingNavigatorDataGridView 控件。有關更多信息,請參見 BindingSource 組件BindingSource 組件簡化了將控件綁定到基礎數據源的過程。它既充當導管,也充當其他控件所綁定到的數據源。

新的 Windows 窗體控件

DataGridView 控件提供了一種強大而靈活的方法,用來以表格的形式顯示數據。它可以用來顯示少量數據的只讀視圖,或可以縮放以顯示非常大的數據集的可編輯視圖。數據可以駐留在外部數據源中,也可以直接添加到控件。有關更多信息,請參見 DataGridView 控件概述(Windows 窗體)

ToolStrip 控件是 Windows 窗體應用程序中可承載菜單、控件和用戶控件的工具欄。ToolStrip 類及其關聯類使您能夠創建與 Microsoft Windows XP、Microsoft Office 和 Microsoft Internet Explorer 樣式一致的工具欄和其他用戶界面元素。您還可以使用這些類來自定義工具欄和用戶界面元素。有關更多信息,請參見 ToolStrip 控件概述(Windows 窗體)

MaskedTextBox 控件使用掩碼定義來區分有效和無效的用戶輸入。有關更多信息,請參見 MaskedTextBox 控件(Windows 窗體)

Windows 窗體 SoundPlayer 類使您能夠輕鬆地在應用程序中包含聲音。SoundPlayer 類可以播放來自資源或者來自通用命名約定 (UNC) 或 HTTP 位置的 .wav 格式的聲音文件。此外,SoundPlayer 類使您能夠異步加載或播放聲音。有關更多信息,請參見 SoundPlayer 類

可以將 Windows 窗體 SplitContainer 控件看作是一個複合體,它是由一個可移動的拆分條分隔的兩個面板。當鼠標指針懸停在該拆分條上時,光標將相應地更改以顯示該拆分條是可移動的。使用此控件可創建對於顯示和瀏覽信息有效的、可調整大小的複雜用戶界面。有關更多信息,請參見 SplitContainer 控件

ListView 控件現在支持三種由 Windows XP 和 Windows Server 2003 系列提供的功能:平鋪視圖、分組和拖放項重新定位。

ListViewTreeViewToolTip 控件現在支持類似於以前版本中的對 ComboBoxListBoxMenuItemTabControl 控件的所有者描述支持的所有者描述功能。

WebBrowser 控件使您可以在 Windows 窗體應用程序中承載網頁。您可以使用 WebBrowser 控件在應用程序中提供基於 HTML 的集成用戶幫助或 Internet Web 瀏覽功能。此外,您還可以使用 WebBrowser 控件將現有 Web 應用程序轉換爲將動態 HTML (DHTML) 代碼與 Windows 窗體的用戶界面功能無縫集成的客戶端應用程序。有關更多信息,請參見 WebBrowser 控件概述

FlowLayoutPanel 控件在水平或垂直流方向排列其內容。TableLayoutPanel 控件以網格方式排列其內容。因爲在設計時和運行時都執行佈局,所以當應用程序環境更改時,佈局可以動態更改。有關更多信息,請參見 FlowLayoutPanel 控件概述TableLayoutPanel 控件概述

BackgroundWorker 組件使您能夠在後臺執行可能花費很長時間執行的操作,例如圖像下載和數據庫事務。有關更多信息,請參見 BackgroundWorker 組件概述

組件的異步模式是一種事件驅動的模型,它提供了多線程應用程序的優點,同時隱藏了多線程設計中固有的很多複雜問題。有關更多信息,請參見組件的異步模式

XML 相關的功能

.NET Framework 2.0 提供了很多增強功能,包括新的 XSL 轉換 (XSLT) 處理器;XmlReaderXmlWriterXPathNavigator 類中的類型支持;以及 XPathNavigator 類中的新的編輯功能。此外,還有用於創建 XmlReaderXmlWriter 對象的新模型,以及很多性能改進。有關更多信息,請參見 System.Xml 中的新增功能

 本文轉自:http://msdn2.microsoft.com/zh-cn/library/t357fb32(VS.80).aspx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章