以.NET RIA Services
打通Silverlight分散式開發之任督二脈



                    奚江華
         作家/微軟講師/技術顧問
Agenda
     .NET RIA Services目標功能定位
     RIA Services運作主要觀念
     定義DomainServices的CRUD
     Entity Framework的ORM資料來源
     ...
為什麼需要.NET RIA Services?
     Silverlight沒有傳統ADO.NET及SqlDataSource
     協助快速建立、開發分散式的Silverlight應用系統




3
.NET傳統的資料存取技術


    • ADO.NET
    • DataSource控制項



4
.NET RIA Services到底想幹嘛?
      目標:針對建立N-tier應用程式的複雜度而來
     Framework:提供撰寫程式所需的規範patterns
     Tools:VS 2008有效整合Client及mi...
Client與Mid tier的Trust Boundary




6
RIA Services價值主張
     支援end-to-end的資料使用
     統合應用系統的Client與Server端程式開發
     提供現成的Patterns與Services增加生產力




7
RIA Services的資料存取示意圖




8
RIA Services運作主要觀念




9
建立使用RIA Services的SL專案




10
建立使用RIA Services的專案


     以Silverlight 3專案為例




11
專案的RIA link的開啓與關閉
      Web專案可以調整RIA link的Enable與
      Disable




12
DomainService建立與消費

              Defining Query Methods
     ASP.NET透過DomainDataSource
     存取DomainService服務




13
定義DomainServices的CRUD
     定義CRUD方法之原則
      回傳型別
       single instance T
       IEnumerable<T>
       IQueryable<T>
    ...
DomainService之CRUD


     定義CRUD方法之原則




15
Entity Framework資料存取架構圖




                          程式設計




      VS 2008 SP1 EDM工具
16
Entity Data Model(EDM)

      E-R Model & Entity Data Model
      EDM設計目標
      EDM主要成員
      一體通用的Data Model資料模型


17
EDM主要定義檔成員
     Conceptual Model
      定義Entities及Relationships
      Conceptual schema definition language file
      (.c...
以LINQ to Entity查詢


     以Employees資料表為例




19
RIA Services支援的型別
      Simple Type
       Boolean、Byte 、 SByte 、 Int16 、 Char 、
       Double 、 Single String、Decimal、Dat...
Asynchronous Domain Operations
      LoadOperation(Query)
      SubmitOperation(Submit)
      InvokeOperation(Invoke)
    ...
Silverlight DomainDataSource
      Loading Data
      Parameterized Query Methods
      Shaping Data
        Sorting
     ...
DomainDataSource的應用



      以Silverlight為例




23
ASP.NET使用DomainService
      Entity Framework或LINQ to SQL
      Domain Service Class
      DomainDataSource




24
DomainService的使用


     以ASP.NET GridView控制項為例




25
Validation to Entities
      CustomValidationAttribute
      DataTypeAttribute
      RangeAttribute
      RegularExpressio...
Validation的使用


     以Entities為例




27
.NET RIA Services參考資源
        .NET RIA Services
     http://code.msdn.microsoft.com/RiaService




28
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
Upcoming SlideShare
Loading in …5
×

以 .NET RIA Services 打通 Silverlight 分散式開發之任督二脈

1,770 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,770
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

以 .NET RIA Services 打通 Silverlight 分散式開發之任督二脈

  1. 1. 以.NET RIA Services 打通Silverlight分散式開發之任督二脈 奚江華 作家/微軟講師/技術顧問
  2. 2. Agenda .NET RIA Services目標功能定位 RIA Services運作主要觀念 定義DomainServices的CRUD Entity Framework的ORM資料來源 RIA Services支援的型別 Asynchronous Domain Operations Silverlight DomainDataSource ASP.NET使用DomainService Validation to Entities 2
  3. 3. 為什麼需要.NET RIA Services? Silverlight沒有傳統ADO.NET及SqlDataSource 協助快速建立、開發分散式的Silverlight應用系統 3
  4. 4. .NET傳統的資料存取技術 • ADO.NET • DataSource控制項 4
  5. 5. .NET RIA Services到底想幹嘛? 目標:針對建立N-tier應用程式的複雜度而來  Framework:提供撰寫程式所需的規範patterns  Tools:VS 2008有效整合Client及mid-tier為一體  Services:如帳號及群組驗證、使用者設定等服務 5
  6. 6. Client與Mid tier的Trust Boundary 6
  7. 7. RIA Services價值主張 支援end-to-end的資料使用 統合應用系統的Client與Server端程式開發 提供現成的Patterns與Services增加生產力 7
  8. 8. RIA Services的資料存取示意圖 8
  9. 9. RIA Services運作主要觀念 9
  10. 10. 建立使用RIA Services的SL專案 10
  11. 11. 建立使用RIA Services的專案 以Silverlight 3專案為例 11
  12. 12. 專案的RIA link的開啓與關閉 Web專案可以調整RIA link的Enable與 Disable 12
  13. 13. DomainService建立與消費 Defining Query Methods ASP.NET透過DomainDataSource 存取DomainService服務 13
  14. 14. 定義DomainServices的CRUD 定義CRUD方法之原則 回傳型別 single instance T IEnumerable<T> IQueryable<T> 使用零或多個參數 使用[Query] attribute Domain的operations不支援方法的多載 14
  15. 15. DomainService之CRUD 定義CRUD方法之原則 15
  16. 16. Entity Framework資料存取架構圖 程式設計 VS 2008 SP1 EDM工具 16
  17. 17. Entity Data Model(EDM) E-R Model & Entity Data Model EDM設計目標 EDM主要成員 一體通用的Data Model資料模型 17
  18. 18. EDM主要定義檔成員 Conceptual Model 定義Entities及Relationships Conceptual schema definition language file (.csdl) Storage Model(Logical Model) 目的是為了關聯式資料庫,將Entities及 Relationships正規化成具有foreign key constrains的Table資料表 Store schema definition language file (.ssdl) Mappings 定義Storage 及Conceptual Model二者間的對應 Mapping specification language file (.msl) 18
  19. 19. 以LINQ to Entity查詢 以Employees資料表為例 19
  20. 20. RIA Services支援的型別 Simple Type Boolean、Byte 、 SByte 、 Int16 、 Char 、 Double 、 Single String、Decimal、DateTime、 TimeSpan、Guid、Uri、XElement Complex Type Byte[] System.Data.Linq.Binary Array IEnumerable<T> Nullable<T> Any types that implements IList 20
  21. 21. Asynchronous Domain Operations LoadOperation(Query) SubmitOperation(Submit) InvokeOperation(Invoke) Operation State IsComplete Completed event UserState Cancel () / CanCancel / IsCanceled Error / HasError 21
  22. 22. Silverlight DomainDataSource Loading Data Parameterized Query Methods Shaping Data Sorting Grouping Filtering Paging Editing 22
  23. 23. DomainDataSource的應用 以Silverlight為例 23
  24. 24. ASP.NET使用DomainService Entity Framework或LINQ to SQL Domain Service Class DomainDataSource 24
  25. 25. DomainService的使用 以ASP.NET GridView控制項為例 25
  26. 26. Validation to Entities CustomValidationAttribute DataTypeAttribute RangeAttribute RegularExpressionAttribute RequiredAttribute StringLengthAttribute 26
  27. 27. Validation的使用 以Entities為例 27
  28. 28. .NET RIA Services參考資源 .NET RIA Services http://code.msdn.microsoft.com/RiaService 28
  29. 29. © 2008 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. 29

×