.NET Framework 4 的新功能
本主題包含 .NET Framework 4 版中的重要功能與加強功能的詳細資訊。 本主題並不會提供所有新功能的完整資料且內容可能會隨時變更。
.NET Framework 4 引進改良的安全性模型。 如需詳細資訊,請參閱 .NET Framework 4 中的安全性變更。
下列章節會介紹 .NET Framework 4 中的其他新功能與改進功能:
應用程式相容性與部署
核心新功能與改進功能
Managed Extensibility Framework
平行運算
網路
Web
用戶端
資料
Windows Communication Foundation
Windows Workflow Foundation
如需新的命名空間、新的型別以及加入至現有型別之新成員的清單,請參閱 .NET Framework 4 中的新型別和成員。
Visual Studio 2010 Service Pack 1 (SP1) (英文) 包含 .NET Framework 4 的更新 (英文)。
應用程式相容性與部署
.NET Framework 4 與使用舊版 .NET Framework 建置的應用程式高度相容,但其一些為了增強安全性、符合標準性、正確性、可靠性和效能所做的變更則除外。
.NET Framework 4 不會自動使用它的 Common Language Runtime 版本執行以舊版 .NET Framework 建置的應用程式。 若要以 .NET Framework 4 執行較舊的應用程式,您必須使用您在 Visual Studio 專案屬性中指定的目標 .NET Framework 版本來編譯應用程式,或者您可以使用應用程式組態檔中的 <supportedRuntime> 項目來指定支援的執行階段。
如果您的應用程式或元件在 .NET Framework 4 安裝後無法運作,請前往 Microsoft Connect 網站提交錯誤。 您可以按照 .NET Framework 4 應用程式相容性主題 (英文) 所說明的方法測試相容性,並使用 Visual Studio 2010 與 .NET Framework 4 逐步解說 (英文) 了解有哪些新功能。
如需移轉至 .NET Framework 4 的指引,請參閱 .NET Framework 4 移轉手冊和 .NET Framework 的版本相容性。
下列各節將說明部署的改良功能。
用戶端設定檔
與舊版相比,.NET Framework 4 Client Profile 支援更多平台,同時會提供更快速的應用程式部署體驗。 現在有幾個新的專案範本預設是以 Client Profile 為目標。 如需詳細資訊,請參閱 .NET Framework Client Profile。
同處理序並存執行
這項功能可以讓應用程式在同一個處理序中載入並啟動多個 .NET Framework 版本。 例如,在同一個處理序中,您可以執行會同時載入具有 .NET Framework 2.0 SP1 及 .NET Framework 4 架構之增益集 (或元件) 的應用程式。 舊版元件仍然可以繼續使用舊版 .NET Framework,而新版元件則使用新版 .NET Framework。 如需詳細資訊,請參閱同處理序並存執行。
可攜式類別庫
當您安裝 Visual Studio 2010 Service Pack 1 (SP1) (英文) 和可攜式程式庫工具 (英文) 時,您可以建立在各種 .NET Framework 平台上執行的可攜式類別庫,而不需要重新編譯。 如需詳細資訊,請參閱可攜式類別庫。
回到頁首
核心新功能與改進功能
下列章節將說明 Common Language Runtime 與基礎類別庫所提供的新功能與增強重點。
診斷和效能
舊版 .NET Framework 無法判斷某個特定應用程式定義域是否已影響其他應用程式定義域,因為作業系統 API 與工具 (例如 Windows 工作管理員) 僅限用於處理序層級。 自 .NET Framework 4 起,您可以取得每一個應用程式定義域的處理器使用情況與記憶體使用量。
您可以監視個別應用程式定義域的 CPU 和記憶體使用量。 透過 Managed 與原生裝載 API 及 Windows 事件追蹤 (ETW),即可監視應用程式定義域資源。 啟用這項功能時,會收集處理序中所有應用程式定義域在處理序存留期間的統計資料。 請參閱新的 AppDomain.MonitoringIsEnabled 屬性。
現在,您可以基於診斷目的存取 ETW 事件以提升效能。 如需詳細資訊,請參閱 CLR ETW 事件和控制 .NET Framework 記錄。 請參閱效能計數器與同處理序並存應用程式。
System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute 屬性會啟用 Managed 程式碼,處理表示處理序損毀狀態的例外狀況。
全球化
.NET Framework 4 提供新的中性文化特性和特定的文化特性、更新的屬性值、字串處理的改良和其他改良功能。 如需詳細資訊,請參閱全球化和當地語系化的新功能。
記憶體回收
.NET Framework 4 提供幕後記憶體回收功能。 這個功能會取代舊版中的並行記憶體回收功能,並且提供更佳的效能。 如需詳細資訊,請參閱記憶體回收的基本概念。
程式碼合約
程式碼合約讓您指定並不會單獨由方法或型別簽章所表示的合約資訊。 新式 System.Diagnostics.Contracts 命名空間包含的類別能夠以語言中立的方式,搭配前置條件、後置條件與物件非變異的形式,呈現程式碼假設。 這些合約改善執行階段檢查的測試、能夠完成靜態合約驗證並且支援文件產生。 如需詳細資訊,請參閱程式碼合約。
僅使用於設計階段的 Interop 組件
您不再需要提供主要 Interop 組件 (PIA),即能夠部署與 COM 物件相互溝通的應用程式。 在 .NET Framework 4 中,編譯器可以從 Interop 組件中只選取應用程式 (例如增益集) 實際使用的型別,然後將型別資訊內嵌在應用程式中。 Common Language Runtime 會確保型別安全。 請參閱在 Managed 程式碼中使用 COM 型別和逐步解說:從 Microsoft Office 組件內嵌型別資訊 (C# 和 Visual Basic)。
Dynamic Language Runtime
Dynamic Language Runtime (DLR) 是指在 CLR 中加入了一組動態語言服務的新執行階段環境。 DLR 讓開發在 .NET Framework 上執行的動態語言以及將動態功能加入靜態型別語言變得更為容易。 新式 System.Dynamic 命名空間也已加入 .NET Framework,因而能夠支援 DLR。
運算式樹狀架構已延伸為納入用以表示控制流程的新型別,例如 System.Linq.Expressions.LoopExpression 和 System.Linq.Expressions.TryExpression。 這些新型別會由 Dynamic Language Runtime (DLR) 使用,而不會由 LINQ 使用。
此外,數種支援 .NET Framework 基礎結構的新類別也加入至 System.Runtime.CompilerServices 命名空間。 如需詳細資訊,請參閱 Dynamic Language Runtime 概觀。
共變數和反變數
數種泛型介面與委派現在也能夠支援共變數和 Contravariance。 如需詳細資訊,請參閱 泛型中的共變數和反變數。
BigInteger 與 Complex 數值
新式 System.Numerics.BigInteger 結構是一種任意精度的整數型別,能夠支援包括位元控制的所有標準整數運算。 它可以用於任一 .NET Framework 語言。 此外,某些新的 .NET Framework 語言 (例如 F# 與 IronPython) 已內建有這個結構的支援。
新式的 System.Numerics.Complex 結構表示複數,支援複數算術與三角函數運算。
Tuple
.NET Framework 4 提供 System.Tuple 類別以建立包含結構化資料的 Tuple 物件。 它也提供泛型 Tuple 類別,以支援含 1 至 8 個部分不等的 Tuple (也就是單一至八重)。 為了支援含 9 個以上部分的 Tuple 物件,有一個泛型 Tuple 類別會有 8 個參數,其中 7 個是使用型別的參數,第 8 個則為使用任何 Tuple 型別的參數。
檔案系統列舉改進
新的檔案列舉方法改善應用程式存取大型檔案目錄,或在大型檔案中逐一查看各行的效能。 如需詳細資訊,請參閱 HOW TO:列舉目錄和檔案。
記憶體對應檔案
.NET Framework 現在支援記憶體對應檔案。 您可以使用記憶體對應檔案來編輯超大的檔案,以及建立供處理序間通訊使用的共用記憶體。
64 位元作業系統與處理序
您可以用 Environment.Is64BitOperatingSystem 和 Environment.Is64BitProcess 屬性識別 64 位元作業系統與處理序。
您可以使用 Microsoft.Win32.RegistryView 列舉,於開啟基底機碼時指定要用 32 還是 64 位元來檢視登錄。
其他新功能
下列清單說明其他新功能、改進功能與便利的特點。 在這些項目中,有幾種是根據客戶意見完成的。
為了支援區分文化特性的格式功能,System.TimeSpan 結構包含 ToString、Parse 與 TryParse 方法的新多載,以及新式 ParseExact 和 TryParseExact 方法的新多載。
新的 String.IsNullOrWhiteSpace 方法能夠指定字串是 null、空白還是只包含空白字元。 新多載已加入至能夠串連 System.Collections.Generic.IEnumerable<T> 集合成員的 String.Concat 與 String.Join 方法。
String.Concat 方法可讓您不用先將項目轉換為字串,即可串連可列舉集合中的每個項目。
有兩個方便的新方法可用:StringBuilder.Clear 和 Stopwatch.Restart。
新的 Enum.HasFlag 方法能夠判斷在列舉值中是否已設定一個或多個位元欄位或旗標。 Enum.TryParse 方法會傳回布林值,表示是否能順利剖析字串或整數值。
System.Environment.SpecialFolder 列舉包含數個新資料夾。
您現在可以利用自 System.IO.Stream 類別繼承之類別中的 CopyTo 方法,輕易地將一段資料流複製到其他資料流。
新的 Path.Combine 方法多載可以讓您結合多個檔案路徑。
新的 System.IObservable<T> 與 System.IObserver<T> 介面提供使用推入型通知的通用機制。
System.IntPtr 與 System.UIntPtr 類別現在加入了加法與減法運算子的支援。
現在,您可以在 System.Lazy<T> 類別內包裝型別,藉此針對任一自訂型別啟用延遲初始化功能。
新的 System.Collections.Generic.SortedSet<T> 類別提供於插入、刪除與搜尋後維持資料排序順序的自我平衡樹狀結構。 這個類別會實作新的 System.Collections.Generic.ISet<T> 介面。
System.IO.Compression.DeflateStream 與 System.IO.Compression.GZipStream 類別的壓縮演算法經過改善後,已經完成壓縮的資料不會再擴大。 此外,也已經取消資料流壓縮 4GB 大小的限制。
新的 Monitor.Enter(Object, Boolean) 方法多載採用布林參考,並且只有在已成功進入監視器時才會自動設為 true。
您可以使用 Thread.Yield 方法,讓呼叫執行緒執行目前處理器上另一個已就緒可執行的執行緒。
System.Guid 結構現在包含 TryParse 和 TryParseExact 方法。
新的 Microsoft.Win32.RegistryOptions 列舉可讓您指定電腦重新啟動便不會繼續存在的變動登錄機碼。
登錄機碼長度不再受限於最多 255 個字元。
回到頁首
Managed Extensibility Framework
Managed Extensibility Framework (MEF) 是 .NET Framework 4 中的新程式庫,可以幫助您建置可延伸且可撰寫的應用程式。 MEF 可以讓您指定應用程式的擴充位置、公開服務以提供給其他可擴充的應用程式使用,以及建立可擴充應用程式可以使用的組件。 此外,也可以根據中繼資料輕易找到可以使用的組件 (Part),而不需要載入組件 (Part) 的組件 (Assembly)。 如需詳細資訊,請參閱 Managed Extensibility Framework 概觀和 Managed Extensibility Framework (英文)。 如需 MEF 型別的清單,請參閱 System.ComponentModel.Composition 命名空間。
回到頁首
平行運算
.NET Framework 4 推出撰寫多執行緒與非同步程式碼的全新程式設計模型,因而大幅簡化應用程式與程式庫開發人員的工作。 這套全新的模型能夠讓開發人員利用簡單常見的語法,撰寫效率高、精細微調且具彈性的平行處理應用程式,而不需要直接使用執行緒或執行緒集區。 新式的 System.Threading.Tasks 命名空間與其他相關型別也都支援這套全新的模型。 平行 LINQ (PLINQ) 是指 LINQ to Objects 的平行實作,可以透過宣告式語法啟用類似的功能。 如需詳細資訊,請參閱以 .NET Framework 進行平行程式設計。
回到頁首
網路
網路改良包括下列幾項:
數個類別中對於 Windows 驗證的安全性改良,包括 System.Net.HttpWebRequest、System.Net.HttpListener、System.Net.Mail.SmtpClient、System.Net.Security.SslStream 和 System.Net.Security.NegotiateStream。 延伸保護可用於 Windows 7 和 Windows Server 2008 R2 上的應用程式。 如需詳細資訊,請參閱Integrated Windows Authentication with Extended Protection。
支援使用 IPv6 和 Teredo 的網路位址轉譯 (NAT) 周遊。 如需詳細資訊,請參閱NAT Traversal using IPv6 and Teredo。
新的網路效能計數器,提供 HttpWebRequest 物件的資訊。 如需詳細資訊,請參閱網路效能計數器。
在 System.Net.HttpWebRequest 類別中,透過 AddRange 方法的新多載來支援使用大位元組範圍標頭 (64 位元範圍)。 System.Net.HttpWebRequest 類別上的新屬性可讓應用程式設定許多 HTTP 標頭。 您可以使用 Host 屬性在 HTTP 要求中設定與要求 URI 無關的 Host 標頭值。
System.Net.Mail.SmtpClient 和相關類別的 Secure Sockets Layer (SSL) 支援。
System.Net.Mail.MailMessage 類別中郵件標題的改良支援。
在加密中使用 null Cipher 的支援。 您可以使用 System.Net.ServicePointManager 類別和 EncryptionPolicy 屬性來指定加密原則。 System.Net.Security.SslStream 類別的建構函式現在接受 System.Net.Security.EncryptionPolicy 類別做為參數。
System.Net.NetworkCredential 類別中有密碼架構的驗證機制 (例如基本、摘要、NTLM 和 Kerberos 驗證) 的認證。 為了改善安全性,密碼現在可能會視為 System.Security.SecureString 執行個體,而不是 System.String 執行個體。
能夠指定在 System.Uri 和 System.Net.HttpListener 類別中具有百分比編碼值的 URI 會如何轉換和標準化。 如需詳細資訊,請參閱 System.Net.Configuration.HttpListenerElement、System.Configuration.SchemeSettingElement、System.Configuration.SchemeSettingElementCollection 和 System.Configuration.UriSection 類別。
回到頁首
Web
ASP.NET 4 版引進了下列新功能:
核心服務,其中包含可讓您延伸快取的新 API、工作階段狀態資料的壓縮支援,以及全新的應用程式預先載入管理員 (自動啟動功能)。
Web Form,其中包含更整合式的 ASP.NET 路由支援、Web 標準的強化支援、更新後的瀏覽器支援、資料控制項的新功能,以及檢視狀態管理的新功能。
Web Form 控制項,其中包含全新的 Chart 控制項。
MVC,其中包含檢視適用的全新 Helper 方法、分割的 MVC 應用程式支援,以及非同步控制器。
Dynamic Data,其中包含現有 Web 應用程式的支援、多對多關聯性與繼承支援、全新的欄位範本與屬性,以及強化的資料篩選功能。
Microsoft Ajax,其中包含 Microsoft Ajax Library 中以用戶端為主的 Ajax 應用程式額外支援。
Visual Web Developer,其中包含經過改良的 IntelliSense for JScript、HTML 和 ASP.NET 標記適用的全新自動完成程式碼片段,以及強化的 CSS 相容性。
部署功能,其中包含適用於自動執行一般部署工作的新工具。
多目標功能,其中包含更正確篩選 .NET Framework 目標版本中無法使用的功能。
如需這些功能的詳細資訊,請參閱 ASP.NET 4 和 Visual Web Developer 的新功能。
回到頁首
用戶端
Windows Presentation Foundation (WPF) 版本 4 包含以下層面的變更與改良功能:
新的控制項,包括 Calendar、DataGrid 和 DatePicker。
VisualStateManager 支援變更控制項的狀態。
觸控和操作可讓您建立應用程式,以便同時在 Windows 7 上接收多個觸控的輸入。
圖形和動畫支援配置進位、Pixel Shader 版本 3.0、快取撰寫和 easing 函式。
文字具有改良式文字呈現,而且支援插入號色彩的自訂及文字方塊中的色彩選擇。
InputBinding 的 Command 屬性、動態物件和 Text 屬性上支援繫結。
XAML 瀏覽器應用程式 (XBAP) 支援與網頁的通訊和完全信任部署。
System.Windows.Shell 命名空間中的新型別可讓您與 Windows 7 工作列通訊,並將資料傳遞給 Windows Shell。
Visual Studio 2010 中的 WPF 和 Silverlight Designer 具備各種設計工具改良功能,有助於建立 WPF 或 Silverlight 應用程式。
如需詳細資訊,請參閱 WPF 4 版的新功能。
回到頁首
資料
ADO.NET
ADO.NET 提供 Entity Framework 的新功能,包括非持續性 (Persistence-Ignorant) 物件、LINQ 查詢中的函式以及自訂的物件層程式碼產生。 如需詳細資訊,請參閱 ADO.NET 的新功能。
Dynamic Data
對於 ASP.NET 4 而言,Dynamic Data 也經過改善,提升您快速建置資料驅動網站的能力。 包括下列項目:
根據資料模型中定義的限制式,進行自動驗證。
能夠使用屬於 Dynamic Data 專案的欄位範本,輕易變更為 GridView 與 DetailsView 控制項中之欄位所產生的標記。
如需詳細資訊,請參閱 ASP.NET 4 和 Visual Web Developer 的新功能。
WCF 資料服務
ADO.NET 資料服務已重新命名為 WCF 資料服務,而且具備下列新功能:
資料繫結。
在實體集中計算實體數目。
伺服器驅動型分頁。
查詢投影。
自訂資料服務提供者。
二進位資源資料流。
如需詳細資訊,請參閱 What's New in WCF Data Services。
回到頁首
Windows Communication Foundation
Windows Communication Foundation (WCF) 提供以下改良功能:
以組態為基礎的啟動:移除必須有 .svc 檔案的需求。
System.Web.Routing 整合:讓您藉由使用無副檔名的 URL,對服務的 URL 有更高的控制能力。
多個 IIS 網站繫結支援:可讓您使用相同網站上的相同通訊協定來擁有多個基底位址。
路由服務:可讓您根據內容來路由傳送訊息。
支援 WS-Discovery:可讓您建立及搜尋可搜尋的服務。
標準端點:預先定義的端點,可讓您只指定某些屬性。
工作流程服務:藉由提供傳送和接收訊息的活動、根據內容讓訊息相互關聯的能力以及工作流程服務主機來整合 WCF 與 WF。
WCF REST 功能:
Web HTTP 快取:允許快取 Web HTTP 服務回應。
Web HTTP 格式支援:可讓您動態判斷服務作業回應適合的最佳格式。
Web HTTP 服務說明頁:為 Web HTTP 服務提供自動說明頁,類似於 WCF 服務說明頁。
Web HTTP 錯誤處理:允許 Web HTTP 服務使用與作業相同的格式傳回錯誤資訊。
Web HTTP 跨網域 JavaScript 支援:允許使用 JSON Padding (JSONP)。
簡化的組態:減少服務所需的組態數量。
如需詳細資訊,請參閱 What's New in Windows Communication Foundation。
回到頁首
Windows Workflow Foundation
Windows Workflow Foundation (WF) 提供以下方面的改良功能:
改良的工作流程活動模型:Activity 類別會提供工作流程行為的基底抽象部分。
豐富的複合活動選項:以傳統流程控制結構為模型的全新流程控制活動 (例如 Flowchart、TryCatch 和 Switch<T>) 對工作流程頗有助益。
擴充的內建活動程式庫:活動程式庫的新功能包括新的流程控制活動、操作成員資料的活動以及控制交易的活動。
明確的活動資料模型:儲存或移動資料的新選項包括變數引數和方向引數。
增強的裝載、保存及追蹤選項:裝載增強功能包括更多的選項來執行工作流程、使用 Persist 活動明確地保存、保存而不卸載、使用不保存區來避免保存、使用主機中的環境交易、將追蹤資訊記錄到事件記錄檔,以及使用 Bookmark 物件來繼續暫止的工作流程。
更易於擴充 WF 設計工具的能力:新的 WF 設計工具建立於 Windows Presentation Foundation (WPF) 上,並且提供更簡單的模型,可在 Visual Studio 以外重新裝載 WF 設計工具時使用。
如需詳細資訊,請參閱 What's New in Windows Workflow Foundation。
回到頁首
請參閱
概念
ASP.NET 4 和 Visual Web Developer 的新功能
其他資源
What's New in Windows Communication Foundation