.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.LoopExpressionSystem.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.Is64BitOperatingSystemEnvironment.Is64BitProcess 屬性識別 64 位元作業系統與處理序。

您可以使用 Microsoft.Win32.RegistryView 列舉,於開啟基底機碼時指定要用 32 還是 64 位元來檢視登錄。

其他新功能

下列清單說明其他新功能、改進功能與便利的特點。 在這些項目中,有幾種是根據客戶意見完成的。

回到頁首

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 進行平行程式設計

回到頁首

網路

網路改良包括下列幾項:

回到頁首

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 包含以下層面的變更與改良功能:

  • 新的控制項,包括 CalendarDataGridDatePicker

  • VisualStateManager 支援變更控制項的狀態。

  • 觸控和操作可讓您建立應用程式,以便同時在 Windows 7 上接收多個觸控的輸入。

  • 圖形和動畫支援配置進位、Pixel Shader 版本 3.0、快取撰寫和 easing 函式。

  • 文字具有改良式文字呈現,而且支援插入號色彩的自訂及文字方塊中的色彩選擇。

  • InputBindingCommand 屬性、動態物件和 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 專案的欄位範本,輕易變更為 GridViewDetailsView 控制項中之欄位所產生的標記。

如需詳細資訊,請參閱 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 類別會提供工作流程行為的基底抽象部分。

  • 豐富的複合活動選項:以傳統流程控制結構為模型的全新流程控制活動 (例如 FlowchartTryCatchSwitch<T>) 對工作流程頗有助益。

  • 擴充的內建活動程式庫:活動程式庫的新功能包括新的流程控制活動、操作成員資料的活動以及控制交易的活動。

  • 明確的活動資料模型:儲存或移動資料的新選項包括變數引數和方向引數。

  • 增強的裝載、保存及追蹤選項:裝載增強功能包括更多的選項來執行工作流程、使用 Persist 活動明確地保存、保存而不卸載、使用不保存區來避免保存、使用主機中的環境交易、將追蹤資訊記錄到事件記錄檔,以及使用 Bookmark 物件來繼續暫止的工作流程。

  • 更易於擴充 WF 設計工具的能力:新的 WF 設計工具建立於 Windows Presentation Foundation (WPF) 上,並且提供更簡單的模型,可在 Visual Studio 以外重新裝載 WF 設計工具時使用。

如需詳細資訊,請參閱 What's New in Windows Workflow Foundation

回到頁首

請參閱

概念

Visual Studio 2010 的新功能

ASP.NET 4 和 Visual Web Developer 的新功能

WPF 4 版的新功能

ADO.NET 的新功能

Visual Basic 2010 的新功能

Visual C# 2010 的新功能

Visual C++ 2010 的新功能

Visual F# 2010 的新功能

其他資源

.NET Framework 4 中的新型別和成員

What's New in Windows Communication Foundation

What's New in Windows Workflow Foundation

What's New in WCF Data Services