以 .net ria services 打通 silverlight 分散式開發之任督二脈

29
.NET RIA Services 打通Silverlight 分散式開發之任督二脈 奚江華 作家/微軟講師/技術顧問

Upload: chui-wen-chiu

Post on 24-Jun-2015

1.667 views

Category:

Technology


4 download

TRANSCRIPT

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

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

奚江華

作家/微軟講師/技術顧問

Page 2: 以 .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

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

3

為什麼需要.NET RIA Services?Silverlight沒有傳統ADO.NET及SqlDataSource

協助快速建立、開發分散式的Silverlight應用系統

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

4

.NET傳統的資料存取技術

• ADO.NET• DataSource控制項

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

5

.NET RIA Services到底想幹嘛?

目標:針對建立N-tier應用程式的複雜度而來

Framework:提供撰寫程式所需的規範patterns

Tools:VS 2008有效整合Client及mid-tier為一體

Services:如帳號及群組驗證、使用者設定等服務

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

6

Client與Mid tier的Trust Boundary

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

7

RIA Services價值主張

支援end-to-end的資料使用

統合應用系統的Client與Server端程式開發

提供現成的Patterns與Services增加生產力

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

8

RIA Services的資料存取示意圖

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

9

RIA Services運作主要觀念

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

10

建立使用RIA Services的SL專案

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

11

建立使用RIA Services的專案

以Silverlight 3專案為例

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

12

專案的RIA link的開啓與關閉

Web專案可以調整RIA link的Enable與Disable

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

13

DomainService建立與消費

ASP.NET透過DomainDataSource存取DomainService服務

Defining Query Methods

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

14

定義DomainServices的CRUD

定義CRUD方法之原則

回傳型別single instance T

IEnumerable<T>

IQueryable<T>

使用零或多個參數

使用[Query] attribute

Domain的operations不支援方法的多載

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

15

DomainService之CRUD

定義CRUD方法之原則

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

16

Entity Framework資料存取架構圖

VS 2008 SP1 EDM工具

程式設計

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

17

Entity Data Model(EDM)

E-R Model & Entity Data Model

EDM設計目標

EDM主要成員

一體通用的Data Model資料模型

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

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)

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

19

以LINQ to Entity查詢

以Employees資料表為例

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

20

RIA Services支援的型別Simple Type

Boolean、Byte 、 SByte 、 Int16 、 Char 、Double 、 Single String、Decimal、DateTime、TimeSpan、Guid、Uri、XElement

Complex TypeByte[]

System.Data.Linq.Binary

Array

IEnumerable<T>

Nullable<T>

Any types that implements IList

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

21

Asynchronous Domain Operations

LoadOperation(Query)

SubmitOperation(Submit)

InvokeOperation(Invoke)

Operation StateIsComplete

Completed event

UserState

Cancel () / CanCancel / IsCanceled

Error / HasError

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

22

Silverlight DomainDataSource

Loading Data

Parameterized Query Methods

Shaping DataSorting

Grouping

Filtering

Paging

Editing

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

23

以Silverlight為例

DomainDataSource的應用

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

24

ASP.NET使用DomainService

Entity Framework或LINQ to SQL

Domain Service Class

DomainDataSource

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

25

DomainService的使用

以ASP.NET GridView控制項為例

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

26

Validation to Entities

CustomValidationAttribute

DataTypeAttribute

RangeAttribute

RegularExpressionAttribute

RequiredAttribute

StringLengthAttribute

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

27

Validation的使用

以Entities為例

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

28

.NET RIA Services參考資源

.NET RIA Services

http://code.msdn.microsoft.com/RiaService

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

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.