Silverlight 2.0 完全新手學堂,基礎入門 10 大招

944 views

Published on

ok

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
944
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 08/28/09 00:20 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • 08/28/09 00:20 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • Silverlight 2.0 完全新手學堂,基礎入門 10 大招

    1. 1. 主題: Silverlight 2.0 完全新手學堂, 入門必學十大招 主講人:章立民
    2. 2. 主講人 章立民簡介 <ul><li>章立民研究室技術總監。 </li></ul><ul><li>17 年資歷的微軟資深講師與顧問( Since 1992 ), 6 度獲選微軟最有價值專家。 </li></ul><ul><li>18 年資訊圖書撰寫經歷。 </li></ul><ul><li>經濟部資訊專業人員鑑定計畫命(審)題委員。 </li></ul><ul><li>電腦技能基金會資料庫應用類命題委員。 </li></ul><ul><li>職訓局 Visual Basic 能力本位教材編撰委員。 </li></ul><ul><li>工研院製造資訊部顧問、捷和建設資訊部顧問、資誠會計師事務所資訊系統服務部顧問、磐天科技總經理……等等 </li></ul>
    3. 3. 議程 <ul><li>VS 2008+Blend2 雙劍合壁,威力無窮。 </li></ul><ul><li>活用跳脫傳統框架控制項,應用範圍更寬廣。 </li></ul><ul><li>動畫變化多,視覺化設計與程式開發兩相宜。 </li></ul><ul><li>轉換在手,介面變化無窮。 </li></ul><ul><li>掌握樣式與範本,創意無限延伸。 </li></ul><ul><li>強大多媒體功能,符合潮流愛不釋手。 </li></ul><ul><li>WebClient 物件,讓外部檔案垂手可得。 </li></ul><ul><li>整合 WCF 服務,資料存取無疆界。 </li></ul><ul><li>整合 ADO.NET 資料服務,資料異動好輕鬆。 </li></ul><ul><li>應用程式有效分割,效能提升彈性高。 </li></ul>
    4. 4. 為什麼要使用 Silverlight 2.0 <ul><li>質感 </li></ul><ul><li>高度的互動性 </li></ul><ul><li>強大的多媒體能力 </li></ul><ul><li>技術的延續性與包容性 </li></ul><ul><ul><li>實作 .NET Framework 的一項跨平台與跨瀏覽器技術,讓您能夠建立具備豐富多媒體效果之互動式介面的下一世代 Web 應用程式,也就是所謂的豐富型 互動式 應用程式( RIA , Rich Interactive Application )。 </li></ul></ul><ul><ul><li>.NET Framework Class Library for Silverlight </li></ul></ul>
    5. 5. Silverlight 2.0 應用程式的執行模式
    6. 6. Silverlight 2.0 應用程式的執行模式 <ul><li>填滿整個螢幕畫面或佔用某個區塊 </li></ul>
    7. 7. Silverlight 2.0 應用程式的執行模式
    8. 8. Silverlight 2.0 應用程式的執行模式 <ul><li>大小不超過 5MB </li></ul><ul><li>僅需部署一次 </li></ul><ul><li>自動更新版本 </li></ul>
    9. 9. Silverlight 2.0 開發平台的架構
    10. 10. Silverlight 2.0 的開發架構
    11. 11. VS 2008+Blend2 雙劍合壁,威力無窮
    12. 12. Silverlight 2.0 內建的控制項 <ul><li>Border </li></ul><ul><li>Button </li></ul><ul><li>Calendar </li></ul><ul><li>Canvas </li></ul><ul><li>CheckBox </li></ul><ul><li>ComboBox </li></ul><ul><li>ContentControl </li></ul><ul><li>DataGrid </li></ul><ul><li>DatePicker </li></ul><ul><li>Grid </li></ul><ul><li>GridSplitter </li></ul><ul><li>HyperlinkButton </li></ul><ul><li>Image </li></ul><ul><li>InkPresenter </li></ul><ul><li>ListBox </li></ul><ul><li>MediaElement </li></ul><ul><li>MultiScaleImage </li></ul><ul><li>PasswordBox </li></ul><ul><li>Popup </li></ul><ul><li>ProgressBar </li></ul><ul><li>RadioButton </li></ul><ul><li>RepeatButton </li></ul><ul><li>ScrollBar </li></ul><ul><li>ScrollViewer </li></ul><ul><li>Slider </li></ul><ul><li>StackPanel </li></ul><ul><li>TabControl </li></ul><ul><li>TextBlock </li></ul><ul><li>TextBox </li></ul><ul><li>ToolTip </li></ul>
    13. 13. Silverlight Toolkit 提供的控制項 <ul><li>AutoCompleteBox </li></ul><ul><li>DockPanel </li></ul><ul><li>HeaderedContentControl </li></ul><ul><li>HeaderedItemsControl </li></ul><ul><li>Label </li></ul><ul><li>NumericUpDown </li></ul><ul><li>TreeView </li></ul><ul><li>WrapPanel </li></ul><ul><li>Expander </li></ul><ul><li>ImplicitStyleManager </li></ul><ul><li>Viewbox </li></ul><ul><li>Charting </li></ul>
    14. 14. 控制項的重要特性 <ul><li>內容控制項 - 能夠顯示 單一項目 ( 型別: Object ) 的控制項。 </li></ul>首頁範例
    15. 15. 內容控制項 – 注意型別
    16. 16. 內容控制項
    17. 17. 控制項的重要特性 <ul><li>ListBox 與 ComboBox 控制項 </li></ul><ul><ul><li>允許直接使用 FrameworkElement 物件做為選項 – ListBoxItem 是一個內容控制項。 </li></ul></ul><ul><ul><li>允許使用範本定義版面 </li></ul></ul><ul><li>DataGrid 控制項 </li></ul><ul><ul><li>檢視與編輯狀態的範本 </li></ul></ul>
    18. 18. 動畫特效 <ul><li>藉由變更屬性值來製作動畫 </li></ul><ul><li>善用 Blend 2 設計動畫 </li></ul><ul><ul><li>採用 “動畫工作區” 版面配置。 </li></ul></ul><ul><ul><li>建立一個腳本 (Storyboard 物件 ) 。 </li></ul></ul><ul><ul><li>針對一或多個物件設定在不同時間點的屬性變化。 </li></ul></ul><ul><ul><li>設定腳本的 AutoReverse 與 RepeatBehavior 屬性。 </li></ul></ul><ul><ul><li>反覆步驟 2 – 4 的操作。 </li></ul></ul><ul><li>互動式控制 - 呼叫 Storyboard 物件的 Begin 、 Stop 、 Pause 、 Resume 與 Seek 方法來達到互動式控制的目的。 </li></ul>
    19. 19. 轉換特效 <ul><li>對物件套用一個暫時性的效果 </li></ul><ul><li>可以在 Silverlight 中使用的效果有: </li></ul><ul><ul><li>平移( TranslateTransform ) </li></ul></ul><ul><ul><li>旋轉( RotateTransform ) </li></ul></ul><ul><ul><li>縮放( ScaleTransform ) </li></ul></ul><ul><ul><ul><li>翻轉( Flip ) </li></ul></ul></ul><ul><ul><ul><li>倒影 </li></ul></ul></ul><ul><ul><li>歪斜( SkewTransform ) </li></ul></ul><ul><li>以中心點( Center Point )來定義開始轉換的起點,但平移例外。 </li></ul>
    20. 20. 轉換特效 <ul><li>其實,我們常常忘了,轉換也可以套用至控制項 – 水平捲動清單方塊… . </li></ul>
    21. 21. 只靠設計工具不足以成大事 善用 VB 與 VC# 程式碼… . <ul><li>動態建立控制項 </li></ul><ul><li>動態建立 XAML 物件 </li></ul><ul><li>動態建立筆刷 </li></ul><ul><li>動態建立轉換 </li></ul><ul><li>動態建立動畫 </li></ul><ul><li>更加展現 .NET 技術的延續性 </li></ul>
    22. 22. 什麼是樣式 <ul><li>透過屬性去自訂控制項的外觀。 </li></ul><ul><li>方便反覆使用一些常用的設定。 </li></ul>
    23. 23. 如何建立樣式 <ul><li>自行編寫 XAML 標記 </li></ul><ul><li>使用 Blend 2 SP1 </li></ul><ul><li>實作 </li></ul><ul><ul><li>建立適用於 Button 控制項的樣式 </li></ul></ul>
    24. 24. 樣式的終極應用 <ul><li>建立出擁有一致性風貌的介面。 </li></ul><ul><li>不同色系的控制項 。 </li></ul>
    25. 25. 資源的應用技巧 <ul><li>經常使用到的外觀物件(例如:筆刷)以資源的形式來存放,以便能夠反覆使用,尤其是能夠於樣式中反覆使用。 </li></ul><ul><li>精心調配出的漸層筆刷,不希望每次用到時都要重新配色一次吧。 </li></ul><ul><li>實作: 建立筆刷資源 </li></ul>
    26. 26. 為什麼需要範本 <ul><li>樣式並非無所不能 </li></ul><ul><ul><li>無法完全設定控制項的所有細部外觀 </li></ul></ul><ul><ul><li>按鈕內部的整體填充色 </li></ul></ul><ul><ul><li>滑鼠指標移至按鈕上方以及按一下時所要變換的色彩 </li></ul></ul><ul><li>解決之道:範本 </li></ul>
    27. 27. 為什麼需要範本 <ul><li>全面且細膩地自訂控制項的外觀。 </li></ul><ul><li>賦予控制項更具創意的外觀。 </li></ul><ul><ul><li>圓形按鈕 </li></ul></ul><ul><ul><li>不規則形狀的控制項。 </li></ul></ul><ul><li>變更控制項的運作行為。 </li></ul><ul><li>如何建立範本 </li></ul><ul><ul><li>自行編寫 XAML 標記 </li></ul></ul><ul><ul><li>使用 Expression Blend 2 SP1 </li></ul></ul>
    28. 28. 運作行為的傳統作法 - 以按鈕為例 <ul><li>使用 Canvas 、 Rectangle 、 Ellipse… 等圖案物件繪製出所需外觀的按鈕。 </li></ul><ul><li>事先製作滑鼠移入、移出與按一下的動畫,並在 MouseEnter 、 MouseLeave 與 MouseLeftButonDown 等事件處理常式中播放動畫。 </li></ul><ul><li>缺點: </li></ul><ul><ul><li>很難反覆使用。 </li></ul></ul><ul><ul><li>不容易維護。 </li></ul></ul><ul><ul><li>不是一個真實的 Button 控制項 。 </li></ul></ul><ul><li>實例 </li></ul>
    29. 29. 運作行為的現代作法 – 使用範本來自訂 <ul><li>優點: </li></ul><ul><ul><li>容易反複使用。 </li></ul></ul><ul><ul><li>容易維護。 </li></ul></ul><ul><ul><li>一個真實的 Button 控制項。 </li></ul></ul><ul><li>實作 </li></ul><ul><ul><li>由視覺化設計人員繪製圖案型態的按鈕,再轉換成實質的按鈕範本並套用至 Button 控制項。 </li></ul></ul>
    30. 30. 範本的應用
    31. 31. 實務作業所面臨的困難 <ul><li>建議:由專業的視覺化設計人員來繪製範本。 </li></ul><ul><li>困難點: </li></ul><ul><ul><li>經濟不景氣,人員縮編,中小企業更是缺乏視覺化設計人員。 </li></ul></ul><ul><ul><li>開發人員沒有繪製美觀圖案的能力。 </li></ul></ul>
    32. 32. 解決之道 <ul><li>藉由編輯控制項 預設範本 的 複本 來建立新的範本。 </li></ul><ul><ul><li>使用 Blend 2 SP1 </li></ul></ul><ul><ul><li>只有衍生自 Control 類別而擁有 Template 屬性的控制項才支援範本 。 </li></ul></ul><ul><ul><li>UserControl 不支援範本。 </li></ul></ul><ul><li>實作: 以 Button 控制項為例 </li></ul>
    33. 33. 視覺化狀態 <ul><li>只有衍生自 Control 類別而擁有 Template 屬性的控制項才支援範本。 </li></ul><ul><li>UserControl 不支援範本。 </li></ul><ul><li>Image 控制項不支援範本。 </li></ul><ul><li>不支援範本的控制項能否擁有視覺化狀態呢??? </li></ul><ul><li>實作: </li></ul><ul><ul><li>替 Image 控制項加入狀態使之具備滑鼠移入、移出以及按一下的效果。 </li></ul></ul>
    34. 34. Silverlight Toolkit 佈景主題 <ul><li>Bureau Black </li></ul><ul><li>Bureau Blue </li></ul><ul><li>Expression Dark </li></ul><ul><li>Expression Light </li></ul><ul><li>Rainier Purple </li></ul><ul><li>Rainier Orange </li></ul><ul><li>Shiny Blue </li></ul><ul><li>Shiny Red </li></ul><ul><li>Whistler Blue </li></ul>
    35. 35. 使用步驟 <ul><li>下載 Silverlight Toolkit 。 </li></ul><ul><li>加入對下列組件的參考: Microsoft.Windows.Controls.Theming.dll Microsoft.Windows.Controls.Theming.BureauBlack.dll Microsoft.Windows.Controls.Theming.BureauBlue.dll Microsoft.Windows.Controls.Theming.ExpressionDark.dll Microsoft.Windows.Controls.Theming.ExpressionLight.dll Microsoft.Windows.Controls.Theming.RainierOrange.dll Microsoft.Windows.Controls.Theming.RainierPurple.dll Microsoft.Windows.Controls.Theming.ShinyBlue.dll Microsoft.Windows.Controls.Theming.ShinyRed.dll Microsoft.Windows.Controls.Theming.WhistlerBlue.dll </li></ul><ul><li>建置專案,以便使用代表佈景主題的自訂控制項。 </li></ul><ul><li>將要套用的項目內含於佈景主題的自訂控制項中。 </li></ul>
    36. 36. Silverlight 多媒體功能 MediaElement 視訊 ( 720P ) 1280 點 x 720 條掃描線 Http Https mms 音訊 Play Stop Pause BufferingProgressChanged CurrentStateChanged DownloadProgressChanged MediaEnded MediaFailed MediaOpened MarkerReached
    37. 37. 建立互動式多媒體播放介面
    38. 38. MediaElement 控制項 <ul><li>視訊筆刷 </li></ul><ul><li>時間軸標記( Timeline Markers ) </li></ul><ul><ul><li>是一種中繼資料( Metadata ),與多媒體檔案中特定的時間點有關。 </li></ul></ul><ul><ul><li>播放至時間軸標記時,會觸發 MarkerReached 事件。 </li></ul></ul><ul><ul><li>Expression Encoder 2 </li></ul></ul><ul><li>多媒體可以看起來不那麼像多媒體 </li></ul>
    39. 39. WebClient 物件 <ul><li>以非同步方式下載或上傳檔案。 </li></ul><ul><li>作業期間會持續引發事件。 </li></ul><ul><li>下載檔案: </li></ul><ul><ul><li>下載單一檔案 ( 例如: .jpg 、 .png 或 .WMV 檔 ) </li></ul></ul><ul><ul><li>下載資料檔案 ( 例如: .XML 檔案 ) </li></ul></ul><ul><ul><li>下載壓縮檔 .zip 。 </li></ul></ul><ul><ul><li>下載 Silverlight 類別庫組件 .dll 。 </li></ul></ul><ul><ul><li>下載其他的 Silveright 應用程式封裝( .XAP ) 。 </li></ul></ul><ul><ul><li>從遠端的 API 服務 ( 例如: Flicker) 下載檔案 </li></ul></ul><ul><ul><li>呼叫泛型處理常式 .ashx </li></ul></ul>
    40. 40. WebClient 物件 <ul><li>BitmapImage.SetSource 方法 </li></ul><ul><li>MediaElement.SetSource 方法 </li></ul><ul><li>使用 .aspx 或 .ashx 來接收並儲存檔案。 </li></ul><ul><li>調整上傳檔案大小限制的設定。 </li></ul>
    41. 41. 網路服務 <ul><li>Silverlight 應用程式可以非同步呼叫: </li></ul><ul><ul><li>ASP.NET Web 服務 .asmx </li></ul></ul><ul><ul><li>ASP.NET 應用程式服務 </li></ul></ul><ul><ul><ul><li>使用者驗證 </li></ul></ul></ul><ul><ul><ul><li>角色 </li></ul></ul></ul><ul><ul><ul><li>個人化設定檔 </li></ul></ul></ul><ul><ul><li>WCF 服務 .svc </li></ul></ul><ul><li>使用 WCF 服務的步驟 </li></ul><ul><ul><li>建立有 Silverlight 功能的 WCF 服務。 </li></ul></ul><ul><ul><li>加入服務參考。 </li></ul></ul><ul><ul><li>使用用戶端類別來非同步呼叫 WCF 服務。 </li></ul></ul>
    42. 42. ADO.NET 資料服務 <ul><li>一種專門用來存取資料的 WCF 服務。 </li></ul><ul><li>使用 HTTP 通訊協定來存取資料。 </li></ul><ul><li>應用程式透過 HTTP 動詞與 ADO.NET 資料服務互動來存取資料。 誰能夠與 ADO.NET 資料服務互動 — Windows Form 、 WPF 、 ASP.NET 以及 Silverlight 。 </li></ul>HTTP 動詞 作業 GET 提取資料 MERGE 修改資料 POST 新增資料 DELETE 刪除資料
    43. 43. ADO.NET 資料服務 <ul><li>使用實體資料模型( EDM )的規格來定義資料來源: </li></ul><ul><ul><li>關聯式資料庫 </li></ul></ul><ul><ul><li>XML 檔案 </li></ul></ul><ul><ul><li>Web 服務 </li></ul></ul><ul><ul><li>任何實作 IQueryable<T> [+ IUpdatable] 介面的資料來源。 </li></ul></ul><ul><li>善用 AsQueryable 方法 </li></ul><ul><ul><li>替實作 IEnumerable<T> 介面的物件加入 IQueryable<T> 介面 </li></ul></ul><ul><li>使得實體資料模型能夠透過 HTTP 通訊協定來存取,並將 URI 請求轉換成對應的資料操作 ( 方法呼叫或 LINQ 查詢 ) 。 </li></ul>
    44. 44. Silverlight + ADO.NET 資料服務 <ul><li>查詢與更新 ADO.NET 資料服務所部署的資料。 </li></ul><ul><li>System.Data.Services.Client 程式庫負責管理 Silverlight 與 ADO.NET 資料服務之間的互動: </li></ul><ul><ul><li>不需要建立資料庫連接。 </li></ul></ul><ul><ul><li>不需要使用傳統的資料庫查詢語法來存取資料。 </li></ul></ul><ul><ul><li>DataServiceContext 類別 </li></ul></ul><ul><ul><li>DataServiceQuery(TElement) 類別 </li></ul></ul>
    45. 45. Silverlight + ADO.NET 資料服務
    46. 46. Silverlight + ADO.NET 資料服務 <ul><li>ASP.NET Web 應用程式或網站 </li></ul><ul><ul><li>建立 ADO.NET 實體資料模型 ( .edmx ) 。 </li></ul></ul><ul><ul><li>建立 ADO.NET 資料服務 ( .svc ) 。 </li></ul></ul><ul><ul><li>設定存取權限。 </li></ul></ul><ul><li>Silverlight 應用程式 </li></ul><ul><ul><li>加入服務參考。 </li></ul></ul><ul><ul><li>於程式碼後置檔中匯入命名空間 System.Data.Services.Client </li></ul></ul><ul><ul><li>於程式碼後置檔中匯入用戶端類別所在的命名空間 。 </li></ul></ul><ul><ul><li>初始化 DataServiceContext 執行個體並呼叫其非同步方法。 </li></ul></ul>
    47. 47. <ul><li>調整資料大小的限制設定 </li></ul><ul><li>實作 </li></ul>Silverlight + ADO.NET 資料服務
    48. 48. Silverlight 2.0 應用程式 的組成方式 <ul><li>單一個應用程式組件( .dll ) -> .xap </li></ul><ul><li>單一個應用程式組件( .dll ) + 一或多個類別庫組件( .dll ) -> .xap </li></ul><ul><ul><li>直接加入類別庫組件的參考 </li></ul></ul><ul><ul><li>需要使用時才動態下載類別庫組件 </li></ul></ul><ul><li>.xap + .xap + … </li></ul><ul><ul><li>需要使用時才動態下載其他的 Silverlight 應用程式封裝 </li></ul></ul><ul><li>建議將不同的應用程式單元分散放置於不同的應用程式封裝( .XAP )與類別庫組件( .dll )中,並於執行階段動態下載並使用之。 </li></ul>

    ×