.NET3.5 新特性介紹

.NET3.5新特性web


1.簡介算法

.NET3.5 經過包含WCF技術擴展實現對分佈式移動應用程序實現支持。數據庫

添加新的語言功能(LINQ)和基於社區反饋的新API,並使用更新的診斷工具和功能來改進調試。express

2. 3.5 SP1 中的 ASP.NET 加強功能編程

2.1 動態數據瀏覽器

ASP.NET Dynamic Data 框架可以使您輕鬆建立數據驅動的 ASP.NET Web 應用程序。它經過自動發現運行時的數據模型並肯定該模型的 UI 行爲來實現此目的。支架框架可當即提供功能網站以供查看和編輯數據。而後可使用元數據、模板或經過建立標準 ASP.NET 頁來重寫默認行爲,從而輕鬆自定義此基架。同時,現有應用程序能夠輕鬆將支架邏輯的各部分與其現有頁面集成。緩存

2.2 URL 路由安全

ASP.NET 中的 URL 路由使您可使用沒必要映射到網站中的特定文件的 URL。因爲 URL 沒必要映射到文件,因此能夠在 Web 應用程序中使用 URL,這些 URL 是描述性的用戶操做,所以更易於被用戶理解。在 URL 路由中,您能夠定義包含處理 URL 請求時使用的值的佔位符的 URL 模式。在運行時,應用程序名稱後面的 URL 部分根據您所定義的 URL 模式解析爲離散值。服務器

2.3EntityDataSource 控件網絡

EntityDataSource 控件支持基於實體數據模型 (EDM) 的數據綁定方案。EDM 規範將數據表示爲實體和關係集。EDM 由 Entity Framework 在對象關係映射和其餘方案(如 ADO.NET 數據服務)中使用。習慣使用 ASP.NET 數據綁定控件的設計時模型的用戶將會發現,EntityDataSource 控件的編程圖面與其餘數據源控件的編程圖面相似。

EntityDataSource 控件表明頁上的數據綁定控件管理對數據源的建立、讀取、更新和刪除操做。EntityDataSource 可用於可編輯的網格、具備用戶控制的排序和篩選功能的窗體、雙重綁定的下拉列表控件以及主-詳細信息頁。EntityDataSource 控件可以獲取頁控件的查詢參數值、追加到頁 URI 的查詢參數、Cookie 以及其餘 ASP.NET 參數對象。

2.4 新的 ASP.NET AJAX Extensions

ASP.NET AJAX 在 SP1 中的新擴展使您在使用「後退」按鈕時能夠在更大程度上控制瀏覽器歷史記錄。它們還可使多個客戶端腳本自動合併到一個複合腳本中。這樣能夠大大減小到達服務器所需的往返行程數,從而加快腳本加載速度。

2.5 JScript 格式設置

設置代碼格式功能已進行了擴展,能夠在 Visual Studio 和 Visual Web Developer 速成版 中支持 JScript。能夠選擇手動設置文檔或選定內容的代碼格式,也能夠在鍵入內容時自動設置其格式。

 

3.ASP.NET 中新增功能

3.1 提供了新的服務器控件、類型和客戶端腳本庫,經過這些新增功能,能夠開發 AJAX 樣式的 Web 應用程序

3.2 擴展了基於服務器的 Forms 身份驗證、角色管理和配置文件服務,做爲 Web 服務供基於 Web 的應用程序使用。

3.3 提供了一個新的 EntityDataSource 控件,該控件經過 ASP.NET 數據源控件結構公開實體數據模型。

3.4 提供了一個新的 ListView 數據控件,該控件可用於顯示數據,還可提供具備高度可自定義性的用戶界面。

3.5 提供了一個新的 LinqDataSource 控件,該控件經過 ASP.NET 數據源控件結構公開語言集成查詢 (LINQ)。

3.6 提供了一個新的合併工具 (Aspnet_merge.exe),可用於合併預編譯程序集,以靈活的方式實現部署和發佈管理。此功能在 Visual Web Developer 速成版 中不可用。

4.Visual Web Developer 加強功能

4.1 新設計視圖和 CSS 設計工具

4.2 針對 Jscript 和 ASP.NET AJAX 的 IntelliSense

4.3 Web 應用程序項目

4.4 多目標 Web 應用程序

4.5 設計器和 IntelliSense 對 LINQ 的支持

4.6 支持在 Web 項目中建立和使用 WCF 服務

4.7 支持 ASP.NET AJAX 擴展程序控件

 

5.外接程序和擴展性

.NET Framework 3.5 中的 System.AddIn.dll 程序集向可擴展應用程序的開發人員提供了強大而靈活的支持。它引入了新的結構和模型,可幫助開發人員完成嚮應用程序添加擴展性的初始工做,

並確保開發人員的擴展在宿主應用程序發生更改時仍可繼續工做。該模型提供瞭如下功能:

5.1 發現

  使用 AddInStore 類能夠很容易地在計算機上的多個位置中查找和管理外接程序集。可使用此類來按照外接程序的基類型搜索和獲取有關它們的信息,而沒必要加載它們

5.2 激活

  使用 AddInToken 類能夠輕鬆地激活應用程序選中的外接程序。只需選擇隔離和沙盒級別,系統就會完成剩餘的工做。

5.3 隔離

  提供了對應用程序域和外接程序的進程隔離的內置支持。每一個外接程序的隔離級別由宿主控制。系統將處理應用程序域和進程的加載,並在這些域和進程的外接程序中止運行後關閉它們。

5.4 沙盒

  能夠輕鬆地將外接程序配置爲具備默認信任級別或自定義信任級別。提供的支持包括 Internet、Intranet、徹底信任和「與宿主相同」權限集,以及讓宿主指定自定義權限集的重載。

5.5 UI 構成

  外接程序模型支持直接構成跨應用程序域邊界的 Windows Presentation Foundation (WPF) 控件。能夠輕鬆地容許外接程序直接構成宿主的 UI,同時保留隔離、卸載能力、沙盒和版本控制的好處。

5.6 版本控制

  外接程序結構使宿主能夠引入新版本的宿主對象模型,而不中斷現有外接程序或不影響開發人員對新版本的體驗。

6.公共語言運行時

  6.1 集合

    HashSet<T> 提供對 .NET Framework 的高性能集合運算。集合是一組不重複出現且無特定順序的元素。有關更多信息,請參見 HashSet 集合類型

  6.2 診斷

EventSchemaTraceListener 類提供端到端、符合架構的事件的跟蹤。能夠對包含跨線程、AppDomain、進程和計算機邊界的異類組件的系統使用端到端跟蹤。已定義一個標準化事件架構來啓用跨這些邊界的跟蹤,請參見 Event Representation for Event Consumers(事件使用者的事件表示形式)。此架構由多種跟蹤技術共享,其中包括相似事件查看器這樣的 Windows Vista 診斷工具。該架構還可支持添加符合架構的自定義元素。

EventSchemaTraceListener 類已針對日誌記錄性能進行了調整,如今隱式支持無鎖定的跟蹤

   6.3 I/O 和管道

    管道提供在同一臺計算機上或網絡中任意其餘 Windows 計算機上運行的任何進程之間的進程間通訊。.NET Framework 提供對兩種類型的管道的訪問:匿名管道和命名管道。有關管道的更多信息,請參見管道

  6.4 垃圾回收

GCSettings 類具備一個新的 LatencyMode 屬性,可用來調整垃圾回收器侵入應用程序的時間。能夠將此屬性設置爲新的 GCLatencyMode 枚舉值之一。

GC 類具備一個新的 Collect(Int32, GCCollectionMode) 方法重載,可用來調整強制垃圾回收的行爲。例如,可使用此重載來指定垃圾回收器應肯定當前時間是否爲回收對象的最佳時間。此重載採用新的 GCCollectionMode 枚舉中的值。

  6.5 部分信任環境中的反射和反射發出

如今,在部分信任下運行的程序集能夠發出並執行代碼。已發出的只調用公共類型和方法的代碼不須要超出所訪問的類型和方法要求的權限。使用新的 DynamicMethod(String, Type, Type[]) 構造函數能夠很容易地發出相似的代碼。

當發出的代碼須要訪問私有數據時,新的 DynamicMethod(String, Type, Type[], Boolean) 構造函數將容許進行受限制的訪問。宿主必須授予ReflectionPermission 新的 RestrictedMemberAccess 標誌以啓用此功能,這使發出的代碼可以訪問私有數據,但僅對具備等於或小於信任級別的程序集中的類型和方法適用。請參見演練:從部分信任的方案中發出代碼

對於反射,授予 RestrictedMemberAccess 的宿主一樣容許受限制地使用用來訪問私有屬性、調用私有方法等的方法,但僅對具備等於或小於信任級別的程序集適用。

6.6 線程處理

更好的讀取器/編寫器鎖

新的 ReaderWriterLockSlim 類提供明顯優於 ReaderWriterLock 的性能,可與 lock 語句至關(在 Visual Basic 中爲 SyncLock)。鎖定狀態之間的轉換已獲得簡化,從而使編程更容易並減小發生死鎖的概率。新類支持遞歸,可簡化從 lock 和 ReaderWriterLock 的遷移。

ThreadPool 性能加強

顯著提升了在託管線程池中調度工做項和 I/O 任務的吞吐量。如今,調度可在託管代碼中進行處理,而無需轉換到非託管代碼,而且具備較少的鎖。建議對特定於應用程序的線程池實現使用 ThreadPool
6.7 時區改進

 兩種新的類型 DateTimeOffset 和 TimeZoneInfo 改進了對時區的支持,能夠更容易地開發使用不一樣時區中的日期和時間的應用程序。有關在特定狀況下要使用哪一種類型的討論,請參見在 DateTime、DateTimeOffset 和 TimeZoneInfo 之間進行選擇

7.加密

  7.1 ClickOnce 清單

  新增了一些密碼類,用於驗證和獲取有關 ClickOnce 應用程序的清單簽名的信息。當使用 ManifestSignatureInformation 類的 VerifySignature 方法重載時,可獲取有關清單簽名的信息。可使用 ManifestKinds 枚舉來指定要驗證的清單。驗證的結果爲 SignatureVerificationResult 枚舉值之一。ManifestSignatureInformationCollection 提供已驗證簽名的 ManifestSignatureInformation 對象的只讀集合。

7.2 Suite B 支持

.NET Framework 3.5 支持由美國國家安全機構 (NSA) 發佈的 Suite B 加密算法集。有關 NSA 文檔,請參見www.nsa.gov/ia/industry/crypto_suite_b.cfm

8.網絡

  8.1 對等網絡

對等網絡是一種無服務器網絡技術,容許若干個網絡設備相互之間共享資源和直接通訊。System.Net.PeerToPeer 命名空間提供了一組支持對等名稱解析協議 (PNRP) 的類,此協議容許經過在對等羣中註冊的 PeerName 對象發現其餘的對等節點。PNRP 能夠將對等名稱解析爲 IPv6 或 IPv4 IP 地址。

8.2 使用對等網絡的協做

System.Net.PeerToPeer.Collaboration 命名空間提供了一組支持使用對等網絡基礎結構的協做的類。這些類簡化了應用程序執行如下操做的過程

  1. 在不使用服務器的狀況下跟蹤對等方狀態。

  2. 向參與者發送邀請。

  3. 發現同一子網或局域網中的對等方。

  4. 管理聯繫人。

  5. 與對等方交互。

   8.3 套接字性能加強

 Socket 類獲得了加強,以供使用異步網絡 I/O 來得到最高性能的應用程序使用。一系列新類已經做爲加強功能集的一部分添加到了 Socket 命名空間中。這些類提供了可由專用的高性能套接字應用程序使用的可選異步模式。這些加強功能是專爲須要高性能的網絡服務器應用程序而設計的。

8.WCF(Windows Communication Foundation)

8.1 WCF 和 WF 集成 — 工做流服務

.NET Framework 3.5 統一了 Windows Workflow Foundation (WF) 和 Windows Communication Foundation (WCF) 框架,以即可以使用 WF 做爲一種創做 WCF 服務的方式或將現有 WF 工做流做爲服務公開。這樣就能夠建立具備如下特色的服務:能夠保持,能夠輕鬆地向工做流傳入或傳出數據,而且能夠強制實施應用程序級協議。有關更多信息,請參見建立工做流服務和持久性服務。有關代碼示例,請參見工做流服務示例

8.2 持久性服務

.NET Framework 3.5 還引入了對 WCF 服務的支持,這些服務使用 WF 持久模型來保存服務的狀態信息。這些持久性服務將其狀態信息保存在應用程序層上,以便在取消而後從新建立會話時,能夠從持久存儲區中從新加載該服務的狀態信息。有關更多信息,請參見建立工做流服務和持久性服務。有關代碼示例,請參見持久性服務示例

8.3 WCF Web 編程模型

WCF Web 編程模型使開發人員可使用 WCF 來生成 Web 風格的服務。Web 編程模型包括豐富的 URI 處理功能、對包括 GET 在內的全部 HTTP 謂詞的支持以及一個簡單的編程模型。該編程模型能夠處理各類消息格式,包括 XML、JSON 和不透明度二進制流。有關更多信息,請參見 Web 編程模型。有關代碼示例,請參見 Web 編程模型示例

8.4 WCF 整合

WCF 如今包含一個強類型對象模型,可用於處理整合源,包括 Atom 1.0 和 RSS 2.0 格式。有關更多信息,請參見 WCF 聯合。有關代碼示例,請參見聯合示例

8.5 WCF 和部分信任

在 .NET Framework 3.5 中,在減小的權限下運行的應用程序可使用 WCF 功能的有限子集。在 ASP.NET 中等信任權限下運行的服務器應用程序可使用 WCF 服務模型來建立基本 HTTP 服務。在 Internet 區域權限下運行的客戶端應用程序(如 XAML 瀏覽器應用程序或使用 ClickOnce 部署的未簽名的應用程序)可使用 WCF 代理來使用 HTTP 服務。此外,WCF Web 編程模型功能(包括 AJAX 和整合)可供部分信任的應用程序使用。有關更多信息,請參見部分信任。有關代碼示例,請參見部分信任 WCF 示例

 8.6 WCF 和 ASP.NET AJAX 集成

WCF 與 ASP.NET 中的異步 JavaScript 和 XML (AJAX) 功能的集成提供了一個端對端的編程模型,可用於構建可使用 WCF 服務的 Web 應用程序。在 AJAX 樣式的 Web 應用程序中,客戶端(例如,Web 應用程序中的瀏覽器)經過使用異步請求來與服務器交換少許的數據。在 ASP.NET 中集成 AJAX 功能可提供一種生成 WCF Web 服務的簡單方法,經過使用瀏覽器中的客戶端 JavaScript 能夠訪問這些服務。有關更多信息,請參見AJAX 集成和 JSON 支持。有關代碼示例,請參見 AJAX 示例

8.7 Web 服務互操做性

在 .NET Framework 3.5 中,Microsoft 遵照了有關互操做性和公共標準的承諾,引入了對新的安全、可靠和事務化 Web 服務標準的支持

 

9.WPF(Windows Presentation Foundation)

在 .NET Framework 3.5 中,Windows Presentation Foundation 包含多個方面的更改和改進,其中包括版本控制、應用程序模型、數據綁定、控件、文檔、批註和三維 UI 元素。

有關這些新功能和加強功能的詳細信息,請參見 Windows Presentation Foundation 3.5 版中的新增功能

10.WF(Windows Workflow Foundation)

 

10.1 WCF 和 WF 集成 — 工做流服務

.NET Framework 3.5 統一了 Windows Workflow Foundation (WF) 和 Windows Communication Foundation (WF) 框架,以即可以使用 WF 做爲一種創做 WCF 服務的方式或將現有 WF 工做流做爲服務公開。這樣就能夠建立具備如下特色的服務:能夠保持,能夠輕鬆地向工做流傳入或傳出數據,而且能夠強制實施應用程序級協議。有關更多信息,請參見建立工做流服務和持久性服務。有關代碼示例,請參見工做流服務示例 (WF)

10.2 規則

如今,WF 規則引擎支持擴展方法、運算符重載和在規則中使用新的運算符。有關更多信息,請參見 .NET Framework 3.5 中的規則改動。有關代碼示例,請參見「規則和條件」示例

11.Windows 窗體

11.1  ClickOnce 改進

已經對 ClickOnce 進行了一些改進。這些改進包括從多個位置進行部署和第三方署名。有關更多信息,請參見部署 ClickOnce 應用程序而無需從新簽名建立供其餘人部署的 ClickOnce 應用程序

更新了 .NET Framework 3.5 的 Mage.exe 工具,該工具備時與 ClickOnce 一塊兒使用。有關更多信息,請參見清單生成和編輯工具 (Mage.exe)

 11.2 身份驗證、角色和設置服務

客戶端應用程序服務是 .NET Framework 3.5 中的新增功能,這些服務使基於 Windows 的應用程序(包括 Windows 窗體和 Windows Presentation Foundation 應用程序)能夠方便地訪問 ASP.NET 登陸、角色和配置文件服務。經過這些服務,能夠對用戶進行身份驗證,而且能夠從共享服務器中檢索用戶角色和應用程序設置。

經過在應用程序配置文件中或在 Visual Studio 項目設計器中指定和配置客戶端服務提供程序,能夠啓用客戶端應用程序服務。這些提供程序插入到 Web 擴展性模型中,使您能夠經過現有的 .NET Framework 登陸、角色和設置 API 訪問 Web 服務。經過在應用程序脫機時存儲和檢索本地數據緩存中的用戶信息,客戶端應用程序服務還支持偶爾鏈接。

有關更多信息,請參見客戶端應用程序服務

11.3 Windows Vista 支持

現有 Windows 窗體應用程序可在 Windows Vista 上無縫運行,若是可能,還能夠進行升級,使其具備與專爲 Windows Vista 編寫的應用程序相同的外觀。公用文件對話框將自動更新爲 Windows Vista 版本。.NET Framework 3.5 還支持用戶賬戶控制 (UAC) 盾牌圖標。有關更多信息,請參見FileDialog 類和 Shield

11.4 WPF 支持

可使用 Windows 窗體來承載 Windows 窗體控件以及 Windows Presentation Foundation (WPF) 控件和內容。還能夠從 Windows 窗體打開 WPF 窗口。有關如何一塊兒使用 Windows 窗體和 WPF 的更多信息,請參見遷移和互操做性

12.LINQ

 語言集成查詢 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 中的新功能。LINQ 將強大的查詢功能擴展到 C# 和 Visual Basic 的語言語法中,並採用標準的、易於學習的查詢模式。能夠對此技術進行擴展以支持幾乎任何類型的數據存儲。.NET Framework 3.5 包含 LINQ 提供程序程序集,這些程序集支持使用 LINQ 來查詢 .NET Framework 集合、SQL Server 數據庫、ADO.NET 數據集和 XML 文檔。

做爲 .NET Framework 3.5 的一部分的 LINQ 的組件包括:

1. System.Linq 命名空間,其中包含用於 LINQ 查詢的基礎結構中的標準查詢運算符、類型和接口的集合。此命名空間位於 System.Core.dll 程序集中。

2. System.Data.Linq 命名空間,其中包含支持與 LINQ to SQL 應用程序中的關係數據庫進行交互的類。

3. System.Data.Linq.Mapping 命名空間,其中包含可用於生成表示關係數據庫的結構和內容的 LINQ to SQL 對象模型的類。

4. System.Xml.Linq 命名空間,其中包含 LINQ to XML 的類。LINQ to XML 是內存中的 XML 編程接口,使您能夠輕鬆有效地修改 XML 文檔。經過使用 LINQ to XML,能夠加載 XML,序列化 XML,從頭建立 XML 樹,操做內存中的 XML 樹以及使用 XSD 進行驗證。還能夠組合使用這些功能,將 XML 樹從一種形狀轉換爲另外一種形狀。

5. System.Web.UI.WebControls 和 System.Web.UI.Design.WebControls 命名空間中的新類型。這些新類型(如 LinqDataSource)支持經過數據源控件在 ASP.NET 網頁中使用 LINQ。

6. System.Data 命名空間中的 DataRowComparerDataRowExtensions 和 DataTableExtensions 類支持 LINQ 針對 ADO.NET DataSet 對象的查詢。

在類庫中,在「內容」窗格和「索引」窗格中的類的成員頁中列出了適用於該類的 LINQ 擴展方法。

13.表達式目錄樹

表達式樹是 .NET Framework 3.5 中的新增功能,提供了一種以數據形式表示語言級代碼的方法。System.Linq.Expressions 命名空間包含屬於表達式樹的構建塊的類型。這些類型可用來表示不一樣類型的代碼表達式,例如,方法調用或相等比較。

表達式樹在針對遠程數據源(如 SQL 數據庫)的 LINQ 查詢中獲得了普遍使用。這些查詢以表達式樹的形式表示,此表示形式可以讓查詢提供程序檢查這些查詢並將其轉換爲特定於域的查詢語言。

System.Linq.Expressions 命名空間位於 System.Core.dll 程序集中。

14.編程語言

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

C# 中的新增功能

Visual C++ 2008 中的新增功能

Visual Basic 語言的新增功能

15.請參見 

概念

相關文章
相關標籤/搜索