Silverlight 4 的新功能
RichTextBox 控制項
Viewbox 控制項
WebBrowser 控制項
WebBrowserBrush 控制項
您可以使用 WebBrowserBrush 控制項從 WebBrowser 控制項中顯示 HTML 內容。例如,您可使用 WebBrowserBrush 來繪製圖案的 Fill,像是 Rectangle 或 Path 的幾何內容。如需詳細資訊,請參閱 WebBrowserBrush。
瀏覽器外用支援
瀏覽器外用應用程式現在支援幾項瀏覽器裝載應用程式無法使用的功能,包括下列各項:
· 支援離線數位版權管理 (DRM)。
· 支援更高的信任。
· 改善對瀏覽器外用應用程式偵錯的支援。
信任的應用程式
您可以設定瀏覽器外用應用程式以要求更高的信任。信任的應用程式可以略過 Silverlight 安全性沙箱的部分限制,並與原生功能整合。例如,以更高信任執行的瀏覽器外用應用程式可以讀取和寫入使用者資料夾中的檔案,並且在沒有鍵盤限制的情況下使用全螢幕模式。
信任的應用程式會在安裝之前向使用者顯示安全性警告。不過,Silverlight 會對信任的應用程式支援應用程式簽章,並對含有已驗證簽章的應用程式顯示更可靠的警告。
晚期繫結的比較
Silverlight 現在同時在 Visual Basic 和 C# 中支援晚期繫結。Visual Basic 預設會對 Object 型別的變數支援晚期繫結。C# 會對 dynamic 型別的變數支援晚期繫結。這可讓您更容易搭配使用擷取自 HTML DOM 或 Automation API 的物件。
為了支援 HTML DOM 項目的晚期繫結,ScriptObject 類別現在會實作 IDynamicMetaObjectProvider 介面。為了支援 Automation API,已經將 AutomationFactory 類別及相關的類別加入 Silverlight 架構中。
網路攝影機和麥克風
您現在可以從使用者的音訊裝置或視訊裝置擷取來源輸入。CaptureImageAsync 方法會啟用簡單的螢幕擷取情節,而 VideoBrush.SetSource 方法則啟用簡單的視訊播放情節。更進階的情節可以存取原始音訊或視訊,並處理成各種檔案格式。網路攝影機和麥克風擷取都會使用接收器比喻來建立接聽程式類別,而且在取得擷取時,必須有用戶端使用者權限才能存取擷取裝置。如需詳細資訊,請參閱 CaptureSource、AudioSink、VideoSink 和網路攝影機和裝置概觀。
離線使用的 DRM
多重轉換
您現在可以使用 CompositeTransform 類別將多重轉換套用至相同物件,例如傾斜和旋轉。這個類別會依慣用順序套用多重轉換,通常比使用 TransformGroup 類別還要更適合用來將多重轉換套用至物件。
多點傳送
System.Net.Sockets 命名空間已加入對 UDP 多點傳送用戶端的支援。這項支援讓網路用戶端可以利用多點傳送,更有效率地使用網路資源。如需詳細資訊,請參閱使用多點傳送主題與 System.Net.Sockets.UdpAnySourceMulticastClient及 System.Net.Sockets.UdpSingleSourceMulticastClient 類別。
使用 HTTP 擷取通訊端安全性原則
對於使用 System.Net.Sockets 的連線要求,應用程式可以選擇在 TCP 連接埠 80 上使用 HTTP 通訊協定擷取通訊端原則檔,而不是在連接埠 943 上使用自訂的 TCP 通訊協定。這可讓已經在執行 HTTP 服務的 HTTP 伺服器授權來自 Silverlight 應用程式的通訊端連線,而不需要在伺服器上部署新的 TCP 伺服器服務以及針對連接埠 943 開啟通過防火牆的連接埠。此通訊端原則檔是將已解析 IP 位址當做主機 (通訊端連線的目標) 使用,透過 HTTP 所擷取。這會針對電腦資源所需的目標 (例如通訊端) 產生授權式全電腦原則。相較之下,供 System.Net 命名空間中之 WebClient 和 HTTP 類別使用的原則檔則擷取自 HTTP 要求設為目標的主機網域。HTTP 通訊協定允許透過主機標頭,針對每個網域隔離資源。 如需詳細資訊,請參閱 Silverlight 中的網路安全性存取限制。
對信任的應用程式採取寬鬆的安全性原則
System.Net.Sockets 命名空間包含對使用 System.Net.Sockets 進行通訊之瀏覽器外用信任應用程式套用寬鬆安全性原則限制的支援。如需詳細資訊,請參閱 Silverlight 中的網路安全性存取限制 和 信任的應用程式。
用戶端 HTTP 處理
當您選擇透過用戶端 HTTP 處理進行網路呼叫時,就已經取得多項新增的功能:
· 在所有要求上傳送 Referer 標頭
· 基本驗證和 NTLM 驗證支援
· 快取支援
· 能夠啟用或停用對讀取和寫入要求的資料流緩衝
· 同時連線限制從 2 條提高到 6 條連線
您現在可以使用 PrintDocument 類別,列印 Silverlight 應用程式的使用者介面。PrintDocument 可讓您向使用者顯示列印對話方塊,並列印應用程式或應用程式中包含的 UIElement。如需詳細資訊,請參閱列印。
拖放功能
Silverlight 4 引入支援拖放功能的 API。您可以從 Silverlight 內容區域外面的應用程式選取檔案清單,例如從 Microsoft Windows 的 [我的文件] 選取。您可以接著將選取的檔案清單拖放至 Silverlight 內容區域,並處理特定目標項目上的置放事件,然後使用 FileInfo 資訊 (其中包含透過資料流對檔案內容的存取) 處理檔案清單。啟用這項功能的方式是將 Drop 事件和相關事件以及屬性加入至基底 UIElement 類別。支援類別 (例如 DragEventArgs) 也包含在內。
剪貼簿存取
Silverlight 4 引入支援剪貼簿物件存取的 API。您可以對共用的 Clipboard 物件進行 Unicode 文字資訊的取得或設定作業。請注意,這樣的存取需要選擇使用者權限,而且只限於 Unicode 文字資料。還有其他限制,如 Clipboard 參考主題中所述。
按右鍵滑鼠事件
Silverlight 4 已將 MouseRightButtonDown 和 MouseRightButtonUp 事件加入基底 UIElement 類別。應用程式現在可以處理按右鍵滑鼠事件並變更行為。根據預設,當使用者以滑鼠右鍵按一下 Silverlight 應用程式時,就會開啟 Silverlight 組態對話方塊。
命令
在 Silverlight 4 中,ButtonBase 和 Hyperlink 支援 Command 和 CommandParameter 屬性。Command 屬性可透過 {Binding} 用法,參考來自檢視模型資料來源的 ICommand 實作。 然後,Silverlight 輸入系統就會在執行階段中解譯此命令。如需詳細資訊,請參閱 ButtonBase.Command或 Hyperlink.Command。
隱含樣式
由右至左流向
您現在可以將每個控制項的內容和配置的方向設定為由右至左流動。這樣您就可以使用各國的語言 (例如希伯來文和阿拉伯文) 來開發 Silverlight 應用程式。您可以使用 FlowDirection 屬性來設定流向。如需詳細資訊,請參閱FlowDirection。
全螢幕支援
基底項目 API 變更
Silverlight 4 引入新的 XAML 剖析器做為 Silverlight 執行階段的一部分。 Silverlight 中的新 XAML 剖析器會提供下列功能:
· 與原本針對 WPF 所撰寫的 XAML 更相容。
· 與 [MS-XAML] 規格中定義的 XAML 語言更相容。
· 可讓工具及其他 XAML 消費者藉由較可預測的方式整合 Silverlight XAML 設計階段經驗。
為了針對 Silverlight 3 應用程式提供最佳相容性,Silverlight 4 執行階段會包含來自 Silverlight 3 的 XAML 剖析器。Silverlight 3 XAML 剖析器是用來載入特別以 Silverlight 3 為目標之應用程式的任何 XAML。 新的剖析器會載入以 Silverlight 4 為目標之應用程式的 XAML。這兩個剖析器會同時並存。
如需 Silverlight 3 與 Silverlight 4 XAML 剖析之間 XAML 行為差異的詳細資訊,請參閱 Silverlight 3 和 Silverlight 4 之間的 XAML 處理差異。
資料繫結
Silverlight 資料繫結現在支援下列功能:
· 支援 ICollectionViewFactory 介面,這個介面可讓自訂資料實體集合提供自訂 ICollectionView 實作給 CollectionViewSource 和 DataGrid 類別。
· 支援複雜的繫結物件多屬性驗證,這些物件會實作 INotifyDataErrorInfo 或 IDataErrorInfo 介面。這包括繫結引擎或使用者介面控制項 (例如 DataGrid) 對這些介面的支援。
新的 DataServiceCollection<T> 類別會為 WCF 資料服務傳回的資料提供簡化的繫結。這個類別繼承 ObservableCollection<T> 類別,當繫結控制項中的資料有所變更時,就會自動更新繫結資料。如需詳細資訊,請參閱 HOW TO:將資料服務資料繫結至控制項 (WCF 資料服務/Silverlight)。
WCF Data Services - WCF 資料服務
在 Silverlight 的這個發行版本中,已將下列功能加入 WCF 資料服務用戶端:
· 新的 DataServiceCollection<T> 類別會為 Silverlight 控制項提供簡化的資料服務資料繫結。這個類別繼承 ObservableCollection<T> 類別,當繫結控制項中的資料有所變更時,就會自動更新繫結資料。如需詳細資訊,請參閱HOW TO:將資料服務資料繫結至控制項 (WCF 資料服務/Silverlight)。
在 Silverlight 的這個發行版本中,WCF 資料服務用戶端支援下列新的直接資料通訊協定 (OData) 功能:
· OData 服務只能傳回 URI 所代表資源的總數,或是將這個資料列計數資訊與資源資料一併納入單一回應中。Silverlight 已經將 WCF 資料服務用戶端更新為允許您在應用程式中以查詢回應存取這個資料列計數資訊。如需詳細資訊,請參閱查詢資料服務 (WCF 資料服務) (英文)。
· 您可以設定資料服務以一組分頁回應的形式傳回要求的資源。Silverlight 已經將 WCF 資料服務用戶端更新為允許您處理這類的分頁回應。如需詳細資訊,請參閱載入延後內容 (WCF 資料服務) (英文)。
· OData 服務傳回的查詢結果現在可以投影至任意定義的型別中。Silverlight 已經將 WCF 資料服務用戶端更新為支援在 LINQ 查詢中使用 select 子句 (在 Visual Basic 中為 Select) 以進行投影。如需詳細資訊,請參閱查詢投影 (WCF 資料服務) (英文)。
· Silverlight 已經將 WCF 資料服務用戶端更新為讓您將二進位屬性當做來自支援媒體資源之 OData 服務的資料流,進行取得和設定作業。如需詳細資訊,請參閱載入延後內容 (WCF 資料服務) (英文)。
WCF RIA 服務
WCF RIA 服務會簡化豐富網際網路應用程式 (Rich Internet Applications,RIA) N-Tier 解決方案 (例如 Silverlight 應用程式) 的開發。在開發 N-Tier RIA 解決方案時常見的問題是使中間層與展示層間的應用程式邏輯協調一致。RIA 服務解決這個問題的方式是,提供架構元件、工具和服務,讓 RIA 用戶端可以取得伺服器上的應用程式邏輯,而不需要手動複製該程式設計邏輯。RIA 服務會搭配 Silverlight 4 運作,但也可以做為個別的安裝。如需詳細資訊,請參閱 WCF RIA 服務 (英文)。
巡覽擴充性
您可以擴充 Silverlight 巡覽,以便支援任意的 URI 解析。例如,您可以針對 URI 重新導向、動態網頁產生以及伺服器的頁面隨選下載來實作巡覽擴充。
Frame 和 NavigationService 類別也會提供 Refresh 方法。當您使用可根據特定網頁之使用者互動來為相同 URI 傳遞不同內容的巡覽擴充時,這會很有用。例如,這樣就可以啟用一些需要使用者驗證的頁面巡覽情節。
Dynamic Language Runtime
Dynamic Language Runtime (DLR) 是指在 CLR 中加入了一組動態語言服務的新執行階段環境。為了支援 DLR,.NET Framework 中已加入新的 System.Dynamic 命名空間,而且運算式樹狀架構也延伸為納入用以表示控制流程的新型別,例如 LoopExpression 和 TryExpression。
集合類別
新的 ISet<T> 介面是為集合 (Set) 的抽象而提供的。集合 (Set) 是具有唯一項目和特定作業的集合 (Collection)。ISet<T> 是由目前可供 Silverlight 應用程式使用的 HashSet<T> 類別所實作。
Tuple
Silverlight 4 提供 Tuple 類別以建立包含結構化資料的 Tuple 物件。它也提供泛型 Tuple 類別,這些類別含有一至七個型別參數,用以表示單一、配對、三重、四重等 Tuple 物件。為了支援含 9 個以上部分的 Tuple 物件,有一個泛型 Tuple 類別會有 8 個參數,其中 7 個是使用型別的參數,第 8 個則為使用任何 Tuple 型別的參數。
剖析和格式化時間間隔
為了支援區分文化特性的格式功能,TimeSpan 結構現在會實作 IFormattable 介面,而且包含 ToString、Parse、TryParse、ParseExact 和 TryParsExact 方法的新多載。其格式化和剖析方法也都支援標準與自訂格式字串。
其他核心功能
下列清單說明已加入 Silverlight 的新功能與改進功能。在這些項目中,有幾種是根據客戶意見完成的。
· 新的 String.IsNullOrWhiteSpace 方法能夠指定字串是 null、空白還是只包含空白字元。新多載已加入至能夠串連 System.Collections.Generic.IEnumerable<T> 集合成員的 String.Concat 與 String.Join 方法。
· 新的檔案列舉方法可以改善信任的應用程式在存取目錄或逐一查看大型檔案各行時的效能。只有 [我的文件] 底下的目錄和檔案才是可存取的。如需詳細資訊,請參閱 Directory、DirectoryInfo 和 File 類別。
Visual Studio 2010 已經對設計工具做了各種改進,以便協助您建立 Silverlight 應用程式。在 Visual Studio 2008 中,針對 Silverlight 專案提供的設計工具支援有所限制。在 Visual Studio 2010 中,您現在可以完成一些工作,例如在設計介面上使用滑鼠來選取並放置項目,以及使用 [屬性] 視窗來設定屬性。 如需詳細資訊,請參閱 Silverlight Designer for Visual Studio 2010。
Silverlight 目前在 Silverlight 社群技術預覽 (Community Technology Preview,CTP) 版本的 Windows Phone 7 Series 中有支援。如需詳細資訊,請參閱 Silverlight for Windows Phone 和 Windows Phone 開發 (英文)。
沒有留言:
張貼留言