SlideShare a Scribd company logo
1 of 29
Download to read offline
以.NET RIA Services
打通Silverlight分散式開發之任督二脈



                    奚江華
         作家/微軟講師/技術顧問
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
為什麼需要.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及mid-tier為一體
     Services:如帳號及群組驗證、使用者設定等服務




5
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>
      使用零或多個參數
      使用[Query] attribute
      Domain的operations不支援方法的多載


14
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
      (.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
以LINQ to Entity查詢


     以Employees資料表為例




19
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
Asynchronous Domain Operations
      LoadOperation(Query)
      SubmitOperation(Submit)
      InvokeOperation(Invoke)
      Operation State
        IsComplete
        Completed event
        UserState
        Cancel () / CanCancel / IsCanceled
        Error / HasError

21
Silverlight DomainDataSource
      Loading Data
      Parameterized Query Methods
      Shaping Data
        Sorting
        Grouping
        Filtering
        Paging
        Editing



22
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
      RegularExpressionAttribute
      RequiredAttribute
      StringLengthAttribute




26
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 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

More Related Content

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

Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享Liyao Chen
 
Great architect cn
Great architect cnGreat architect cn
Great architect cndrewz lin
 
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit TestingASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing江華 奚
 
达尔文信息云平台
达尔文信息云平台达尔文信息云平台
达尔文信息云平台SmartData
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabricJohn Chang
 
Cloud client : 达尔文信息云浏览器
Cloud client : 达尔文信息云浏览器Cloud client : 达尔文信息云浏览器
Cloud client : 达尔文信息云浏览器Ying LI
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程areyouok
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程topgeek
 
Cloud ready v mware 云计算解决方案
Cloud ready   v mware 云计算解决方案Cloud ready   v mware 云计算解决方案
Cloud ready v mware 云计算解决方案ITband
 
民间秘方
民间秘方民间秘方
民间秘方dynasty
 
Elaster cap 云应用开发平台介绍
Elaster cap 云应用开发平台介绍Elaster cap 云应用开发平台介绍
Elaster cap 云应用开发平台介绍tcloudcomputing
 
JdonFramework中文
JdonFramework中文JdonFramework中文
JdonFramework中文banq jdon
 
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC
 
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发leneli
 
Teched 2012 60分钟构建私有云
Teched 2012 60分钟构建私有云Teched 2012 60分钟构建私有云
Teched 2012 60分钟构建私有云Cheng Zhang
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维guiyingshenxia
 

Similar to 以 .NET RIA Services 打通 Silverlight 分散式開發之任督二脈 (20)

Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享
 
Great architect cn
Great architect cnGreat architect cn
Great architect cn
 
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit TestingASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
 
达尔文信息云平台
达尔文信息云平台达尔文信息云平台
达尔文信息云平台
 
敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
 
Cloud client : 达尔文信息云浏览器
Cloud client : 达尔文信息云浏览器Cloud client : 达尔文信息云浏览器
Cloud client : 达尔文信息云浏览器
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程
 
Cloud ready v mware 云计算解决方案
Cloud ready   v mware 云计算解决方案Cloud ready   v mware 云计算解决方案
Cloud ready v mware 云计算解决方案
 
民间秘方
民间秘方民间秘方
民间秘方
 
Elaster cap 云应用开发平台介绍
Elaster cap 云应用开发平台介绍Elaster cap 云应用开发平台介绍
Elaster cap 云应用开发平台介绍
 
JdonFramework中文
JdonFramework中文JdonFramework中文
JdonFramework中文
 
Hibernate
HibernateHibernate
Hibernate
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
Cmdb intro
Cmdb intro Cmdb intro
Cmdb intro
 
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸
 
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
 
Teched 2012 60分钟构建私有云
Teched 2012 60分钟构建私有云Teched 2012 60分钟构建私有云
Teched 2012 60分钟构建私有云
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 

More from Chui-Wen Chiu

More from Chui-Wen Chiu (20)

Dynamic Python
Dynamic PythonDynamic Python
Dynamic Python
 
Pythonpresent
PythonpresentPythonpresent
Pythonpresent
 
Introduce Django
Introduce DjangoIntroduce Django
Introduce Django
 
移動內存算法
移動內存算法移動內存算法
移動內存算法
 
墾丁 更新版
墾丁  更新版墾丁  更新版
墾丁 更新版
 
墾丁 更新版2
墾丁  更新版2墾丁  更新版2
墾丁 更新版2
 
Bw1096
Bw1096Bw1096
Bw1096
 
高雄新地標 統一夢世代
高雄新地標  統一夢世代高雄新地標  統一夢世代
高雄新地標 統一夢世代
 
Borland傳奇
Borland傳奇Borland傳奇
Borland傳奇
 
Python 庫簡介
Python 庫簡介Python 庫簡介
Python 庫簡介
 
Asp.Net Mvc 1.0
Asp.Net Mvc 1.0Asp.Net Mvc 1.0
Asp.Net Mvc 1.0
 
天下第一 夜市總冠軍
天下第一 夜市總冠軍天下第一 夜市總冠軍
天下第一 夜市總冠軍
 
下班就跑是富有哲學道理1
下班就跑是富有哲學道理1下班就跑是富有哲學道理1
下班就跑是富有哲學道理1
 
認識腸病毒
認識腸病毒認識腸病毒
認識腸病毒
 
排隊的店
排隊的店排隊的店
排隊的店
 
柬埔寨鄉村婚禮
柬埔寨鄉村婚禮柬埔寨鄉村婚禮
柬埔寨鄉村婚禮
 
新 創 意
新 創 意新 創 意
新 創 意
 
挖好屬於自己的井
挖好屬於自己的井挖好屬於自己的井
挖好屬於自己的井
 
Why The Us Wants War 080702
Why The Us Wants War  080702Why The Us Wants War  080702
Why The Us Wants War 080702
 
你今天的選擇是什麼?
你今天的選擇是什麼?你今天的選擇是什麼?
你今天的選擇是什麼?
 

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

  • 1. 以.NET RIA Services 打通Silverlight分散式開發之任督二脈 奚江華 作家/微軟講師/技術顧問
  • 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. 為什麼需要.NET RIA Services? Silverlight沒有傳統ADO.NET及SqlDataSource 協助快速建立、開發分散式的Silverlight應用系統 3
  • 4. .NET傳統的資料存取技術 • ADO.NET • DataSource控制項 4
  • 5. .NET RIA Services到底想幹嘛? 目標:針對建立N-tier應用程式的複雜度而來  Framework:提供撰寫程式所需的規範patterns  Tools:VS 2008有效整合Client及mid-tier為一體  Services:如帳號及群組驗證、使用者設定等服務 5
  • 7. RIA Services價值主張 支援end-to-end的資料使用 統合應用系統的Client與Server端程式開發 提供現成的Patterns與Services增加生產力 7
  • 11. 建立使用RIA Services的專案 以Silverlight 3專案為例 11
  • 12. 專案的RIA link的開啓與關閉 Web專案可以調整RIA link的Enable與 Disable 12
  • 13. DomainService建立與消費 Defining Query Methods ASP.NET透過DomainDataSource 存取DomainService服務 13
  • 14. 定義DomainServices的CRUD 定義CRUD方法之原則 回傳型別 single instance T IEnumerable<T> IQueryable<T> 使用零或多個參數 使用[Query] attribute Domain的operations不支援方法的多載 14
  • 15. DomainService之CRUD 定義CRUD方法之原則 15
  • 16. Entity Framework資料存取架構圖 程式設計 VS 2008 SP1 EDM工具 16
  • 17. Entity Data Model(EDM) E-R Model & Entity Data Model EDM設計目標 EDM主要成員 一體通用的Data Model資料模型 17
  • 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. 以LINQ to Entity查詢 以Employees資料表為例 19
  • 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. Asynchronous Domain Operations LoadOperation(Query) SubmitOperation(Submit) InvokeOperation(Invoke) Operation State IsComplete Completed event UserState Cancel () / CanCancel / IsCanceled Error / HasError 21
  • 22. Silverlight DomainDataSource Loading Data Parameterized Query Methods Shaping Data Sorting Grouping Filtering Paging Editing 22
  • 23. DomainDataSource的應用 以Silverlight為例 23
  • 24. ASP.NET使用DomainService Entity Framework或LINQ to SQL Domain Service Class DomainDataSource 24
  • 25. DomainService的使用 以ASP.NET GridView控制項為例 25
  • 26. Validation to Entities CustomValidationAttribute DataTypeAttribute RangeAttribute RegularExpressionAttribute RequiredAttribute StringLengthAttribute 26
  • 27. Validation的使用 以Entities為例 27
  • 28. .NET RIA Services參考資源 .NET RIA Services http://code.msdn.microsoft.com/RiaService 28
  • 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