Submit Search
Upload
エンタープライズ.Net RIAサービス
•
0 likes
•
782 views
Akihiro Ehara
Follow
SilverlightとWCF RIA Serviceによるビジネスアプリケーション開発
Read less
Read more
Technology
Report
Share
Report
Share
1 of 25
Download now
Download to read offline
Recommended
ActionScript API for Amazon Web Services (AWS)
ActionScript API for Amazon Web Services (AWS)
iret, Inc.
ActionScript API for Amazon Web Services (AWS) クラスメソッド株式会社 横田 聡
ActionScript API for Amazon Web Services (AWS) クラスメソッド株式会社 横田 聡
クラスメソッド株式会社
Microsoft BPOSの紹介
Microsoft BPOSの紹介
kumo2010
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
桂一 中山
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
Atsushi Fukui
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
Amazon Web Services Japan
クラウドを利用したWindows ストアアプリ開発 ~ Windows Azure と連携する ~
クラウドを利用したWindows ストアアプリ開発 ~ Windows Azure と連携する ~
Akira Onishi
おばかIoTシンポジウムでInternet of TetrisとIgNobel of Thingsを語る
おばかIoTシンポジウムでInternet of TetrisとIgNobel of Thingsを語る
Kazutaka Kurihara
Recommended
ActionScript API for Amazon Web Services (AWS)
ActionScript API for Amazon Web Services (AWS)
iret, Inc.
ActionScript API for Amazon Web Services (AWS) クラスメソッド株式会社 横田 聡
ActionScript API for Amazon Web Services (AWS) クラスメソッド株式会社 横田 聡
クラスメソッド株式会社
Microsoft BPOSの紹介
Microsoft BPOSの紹介
kumo2010
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
桂一 中山
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
Atsushi Fukui
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
Amazon Web Services Japan
クラウドを利用したWindows ストアアプリ開発 ~ Windows Azure と連携する ~
クラウドを利用したWindows ストアアプリ開発 ~ Windows Azure と連携する ~
Akira Onishi
おばかIoTシンポジウムでInternet of TetrisとIgNobel of Thingsを語る
おばかIoTシンポジウムでInternet of TetrisとIgNobel of Thingsを語る
Kazutaka Kurihara
Laravelを使ってみた
Laravelを使ってみた
Jaeseop Jeong
Azureでデータ解析
Azureでデータ解析
Tsubasa Yoshino
ABC 2014 Winter 登壇資料
ABC 2014 Winter 登壇資料
Masayuki Ota
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
Takeshi Shinmura
Eslam El-Gameil Khiry CV9
Eslam El-Gameil Khiry CV9
Eslam EL-Gamil
Go azure おばかIoT シンポジウム
Go azure おばかIoT シンポジウム
Keiichi Hashimoto
本気で語り合おうオープンソースのドローン開発とIoTの事(2017 01-10) 公開版
本気で語り合おうオープンソースのドローン開発とIoTの事(2017 01-10) 公開版
博宣 今村
AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!
Satoshi Nakada
Microsoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoT
Keiichi Hashimoto
IoTのIを考えてみる話
IoTのIを考えてみる話
エンジニア勉強会 エスキュービズム
Azure Web Apps とAzure Mobile Apps
Azure Web Apps とAzure Mobile Apps
Masaki Yamamoto
[Developers Festa Sapporo 2016] Microsoft Azureでのアプリ開発 ~コンテナー、マイクロサービス、サーバーレス...
[Developers Festa Sapporo 2016] Microsoft Azureでのアプリ開発 ~コンテナー、マイクロサービス、サーバーレス...
Naoki (Neo) SATO
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
公開用 SC006 クラウドインフラの作り方
公開用 SC006 クラウドインフラの作り方
Takefumi Kakimoto
今後のビジネス モデルに対応する Azure プラットフォーム技術の活用
今後のビジネス モデルに対応する Azure プラットフォーム技術の活用
Kazuyuki Nomura
Kansai Azure Azure Overview & Update 20140926
Kansai Azure Azure Overview & Update 20140926
Ayako Omori
20170902 kixs azure&azure stack
20170902 kixs azure&azure stack
Osamu Takazoe
Microsoft Share Point on AWS
Microsoft Share Point on AWS
Amazon Web Services Japan
[1998/05/18] Visual C++ Developers Conference / Visual C++とVisual InterDevを使...
[1998/05/18] Visual C++ Developers Conference / Visual C++とVisual InterDevを使...
Tatsuhiko Tanaka
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方
Amazon Web Services Japan
Design Pattern MicroServices Architecture in Japanese
Design Pattern MicroServices Architecture in Japanese
Lei Xu
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Akira Inoue
More Related Content
Viewers also liked
Laravelを使ってみた
Laravelを使ってみた
Jaeseop Jeong
Azureでデータ解析
Azureでデータ解析
Tsubasa Yoshino
ABC 2014 Winter 登壇資料
ABC 2014 Winter 登壇資料
Masayuki Ota
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
Takeshi Shinmura
Eslam El-Gameil Khiry CV9
Eslam El-Gameil Khiry CV9
Eslam EL-Gamil
Go azure おばかIoT シンポジウム
Go azure おばかIoT シンポジウム
Keiichi Hashimoto
本気で語り合おうオープンソースのドローン開発とIoTの事(2017 01-10) 公開版
本気で語り合おうオープンソースのドローン開発とIoTの事(2017 01-10) 公開版
博宣 今村
AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!
Satoshi Nakada
Microsoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoT
Keiichi Hashimoto
IoTのIを考えてみる話
IoTのIを考えてみる話
エンジニア勉強会 エスキュービズム
Azure Web Apps とAzure Mobile Apps
Azure Web Apps とAzure Mobile Apps
Masaki Yamamoto
[Developers Festa Sapporo 2016] Microsoft Azureでのアプリ開発 ~コンテナー、マイクロサービス、サーバーレス...
[Developers Festa Sapporo 2016] Microsoft Azureでのアプリ開発 ~コンテナー、マイクロサービス、サーバーレス...
Naoki (Neo) SATO
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
Viewers also liked
(13)
Laravelを使ってみた
Laravelを使ってみた
Azureでデータ解析
Azureでデータ解析
ABC 2014 Winter 登壇資料
ABC 2014 Winter 登壇資料
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
Eslam El-Gameil Khiry CV9
Eslam El-Gameil Khiry CV9
Go azure おばかIoT シンポジウム
Go azure おばかIoT シンポジウム
本気で語り合おうオープンソースのドローン開発とIoTの事(2017 01-10) 公開版
本気で語り合おうオープンソースのドローン開発とIoTの事(2017 01-10) 公開版
AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!
Microsoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoT
IoTのIを考えてみる話
IoTのIを考えてみる話
Azure Web Apps とAzure Mobile Apps
Azure Web Apps とAzure Mobile Apps
[Developers Festa Sapporo 2016] Microsoft Azureでのアプリ開発 ~コンテナー、マイクロサービス、サーバーレス...
[Developers Festa Sapporo 2016] Microsoft Azureでのアプリ開発 ~コンテナー、マイクロサービス、サーバーレス...
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
Similar to エンタープライズ.Net RIAサービス
公開用 SC006 クラウドインフラの作り方
公開用 SC006 クラウドインフラの作り方
Takefumi Kakimoto
今後のビジネス モデルに対応する Azure プラットフォーム技術の活用
今後のビジネス モデルに対応する Azure プラットフォーム技術の活用
Kazuyuki Nomura
Kansai Azure Azure Overview & Update 20140926
Kansai Azure Azure Overview & Update 20140926
Ayako Omori
20170902 kixs azure&azure stack
20170902 kixs azure&azure stack
Osamu Takazoe
Microsoft Share Point on AWS
Microsoft Share Point on AWS
Amazon Web Services Japan
[1998/05/18] Visual C++ Developers Conference / Visual C++とVisual InterDevを使...
[1998/05/18] Visual C++ Developers Conference / Visual C++とVisual InterDevを使...
Tatsuhiko Tanaka
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方
Amazon Web Services Japan
Design Pattern MicroServices Architecture in Japanese
Design Pattern MicroServices Architecture in Japanese
Lei Xu
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Akira Inoue
API Academy:マイクロサービス化へのファーストステップ
API Academy:マイクロサービス化へのファーストステップ
CA Technologies
セキュリティ設計の頻出論点
セキュリティ設計の頻出論点
Tomohiro Nakashima
DevOps with Dynatrace
DevOps with Dynatrace
Harry Hiyoshi
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
Naoki (Neo) SATO
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
Google Cloud Platform - Japan
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
Amazon Web Services Japan
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
Microsoft Azure Japan
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
Issei Hiraoka
Clrh 110716 wcfwf
Clrh 110716 wcfwf
Tomoyuki Obi
20100218
20100218
小野 修司
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
Akira Inoue
Similar to エンタープライズ.Net RIAサービス
(20)
公開用 SC006 クラウドインフラの作り方
公開用 SC006 クラウドインフラの作り方
今後のビジネス モデルに対応する Azure プラットフォーム技術の活用
今後のビジネス モデルに対応する Azure プラットフォーム技術の活用
Kansai Azure Azure Overview & Update 20140926
Kansai Azure Azure Overview & Update 20140926
20170902 kixs azure&azure stack
20170902 kixs azure&azure stack
Microsoft Share Point on AWS
Microsoft Share Point on AWS
[1998/05/18] Visual C++ Developers Conference / Visual C++とVisual InterDevを使...
[1998/05/18] Visual C++ Developers Conference / Visual C++とVisual InterDevを使...
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方
Design Pattern MicroServices Architecture in Japanese
Design Pattern MicroServices Architecture in Japanese
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
API Academy:マイクロサービス化へのファーストステップ
API Academy:マイクロサービス化へのファーストステップ
セキュリティ設計の頻出論点
セキュリティ設計の頻出論点
DevOps with Dynatrace
DevOps with Dynatrace
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
Clrh 110716 wcfwf
Clrh 110716 wcfwf
20100218
20100218
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
More from Akihiro Ehara
Visual Studio TypeScript npm WebPack
Visual Studio TypeScript npm WebPack
Akihiro Ehara
Share point開発 勤怠管理
Share point開発 勤怠管理
Akihiro Ehara
Share point開発 ファイル受信
Share point開発 ファイル受信
Akihiro Ehara
SharePoint Onlineアクセスモニター
SharePoint Onlineアクセスモニター
Akihiro Ehara
Google アナリティクスでSharePointの利用状況を確認する
Google アナリティクスでSharePointの利用状況を確認する
Akihiro Ehara
SharePointアドイン開発 SAPデータ連携
SharePointアドイン開発 SAPデータ連携
Akihiro Ehara
SharePointアドイン開発 Line風Chat アドイン
SharePointアドイン開発 Line風Chat アドイン
Akihiro Ehara
Cloud storage light
Cloud storage light
Akihiro Ehara
エンタープライズ.Net light switch
エンタープライズ.Net light switch
Akihiro Ehara
エンタープライズ.Net DataSet
エンタープライズ.Net DataSet
Akihiro Ehara
エンタープライズ.Net RIAサービス
エンタープライズ.Net RIAサービス
Akihiro Ehara
エンタープライズ.Net 詳細設計編
エンタープライズ.Net 詳細設計編
Akihiro Ehara
エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編
Akihiro Ehara
エンタープライズ.Net 分析編
エンタープライズ.Net 分析編
Akihiro Ehara
More from Akihiro Ehara
(14)
Visual Studio TypeScript npm WebPack
Visual Studio TypeScript npm WebPack
Share point開発 勤怠管理
Share point開発 勤怠管理
Share point開発 ファイル受信
Share point開発 ファイル受信
SharePoint Onlineアクセスモニター
SharePoint Onlineアクセスモニター
Google アナリティクスでSharePointの利用状況を確認する
Google アナリティクスでSharePointの利用状況を確認する
SharePointアドイン開発 SAPデータ連携
SharePointアドイン開発 SAPデータ連携
SharePointアドイン開発 Line風Chat アドイン
SharePointアドイン開発 Line風Chat アドイン
Cloud storage light
Cloud storage light
エンタープライズ.Net light switch
エンタープライズ.Net light switch
エンタープライズ.Net DataSet
エンタープライズ.Net DataSet
エンタープライズ.Net RIAサービス
エンタープライズ.Net RIAサービス
エンタープライズ.Net 詳細設計編
エンタープライズ.Net 詳細設計編
エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net 分析編
エンタープライズ.Net 分析編
エンタープライズ.Net RIAサービス
1.
http://biki.jp.net/enterprisenet エンタープライズ.NET WCF RIA Service SilverlightとWCF
RIA Serviceによる ビジネスアプリケーション開発
2.
http://biki.jp.net/enterprisenet 目次 RIAアプリケーションとは サーバーサービスの構築
ドメインサービス データ操作 クエリーメソッドの追加 ドメイン サービスへのアプリケーション ロジックの追加 ドメインサービスのデータ 共有エンティティ クライアント・サーバー間の共有コード クライアントUIの構築 レイアウト作成 DataForm DomainContext と操作 クライアントでのエラー処理 生成されたコードのカスタマイズ 2
3.
http://biki.jp.net/enterprisenet RIAアプリケーションとは Silverlight アプリケーションなどのリッチ
インターネット アプリケーション (RIA) 用の n 層のアプリケーション Silverlight 動画やアニメーションを利用したリッチなWebコンテンツや業務用アプリケーションを動か すためのWebブラウザプラグイン(追加機能)。 ブラウザー外実行 ・豊富な標準コントロール ・高度なカスタマイズ性 データ バインディング ・.NET Framework との互換性 ・印刷機能 Web サービス対応 WCF RIA Service WCF RIA サービス は、Silverlight アプリケーションなどのリッチ インターネット アプリケー ション (RIA) 用の、n 層のソリューションの開発を簡略化する。 RIA サービス は、サーバー上のアプリケーション ロジックを手動で複製せずに、そのロジックを RIA サービス クライアントが使用できるようにするフレームワーク コンポーネント、ツール、およびサー ビスを提供する。 3
4.
http://biki.jp.net/enterprisenet サーバーサービスの構築 データアクセス層 Entity
Framework ドメインサービス 4
5.
http://biki.jp.net/enterprisenet ドメインサービス ドメイン サービスは、WCF
RIA サービス アプリケーション のビジネス ロジックをカプセル化した Windows Communication Foundation (WCF) サービス ドメイン サービスとデータソース DomainService クラスは、ドメイン サービスとして機能するす べてのクラスの基本 ADO.NET エンティティ モデルにバインドするドメイン サービス を作成するには、LinqToEntitiesDomainService から派生 LINQ to SQL クラスを公開するドメイン サービスを作成する場 合は、LinqToSqlDomainService から派生 RIA Services Toolkit で提供 5
6.
http://biki.jp.net/enterprisenet ドメインサービス ドメインサービスの公開 ウイザードでドメインサービスを作成することが可能
ドメイン サービス クラスは、サービスをクライアント プロジェクトで使 用できるようにするため、EnableClientAccessAttribute 属性でマーク する必要がある ウイザードで [クライアント アクセスの有効化] チェック ボックスをオ ンにすると、ドメイン サービスに自動的に適用される クライアントへの公開 EnableClientAccessAttribute 属性がドメイン サービスに適用されると、 RIA サービス によってクライアント プロジェクトに対応するクラスが生 成される たとえば、EnableClientAccessAttribute 属性を、Employee というエンティ ティを公開する HRService というドメイン サービスに適用すると、RIA サー ビス によって、HRContext というドメイン コンテキストがクライアント プロ ジェクトに生成され、Employee エンティティのクライアント バージョンも生 成されます 6
7.
http://biki.jp.net/enterprisenet データ操作 CRUD操作 データ操作の基本操作。決まった操作
Query クエリ メソッドは、エンティティの 1 つのインスタンスか、T が有効なエン ティティ型である IEnumerable または IQueryable を返す必要がある オーバーロードされたメソッドは使用できない Update Update、Change、または Modifyから開始 戻り値がなし、パラメータがエンティティ型 Insert Insert、Add、または Createから開始 戻り値がなし、パラメータがエンティティ型 Delete Delete または Removeから開始 戻り値がなし、パラメータがエンティティ型 7
8.
http://biki.jp.net/enterprisenet データ操作 複雑な操作 Invoke
CRUD以外のメソッド呼び出し用 任意の戻り値、パラメータ 追跡または遅延実行を行わずに実行する必要のある操作を実装します。このメ ソッドは、エンティティ以外のデータを使用する場合か、代わりにクエリ操作、更 新操作、挿入操作、または削除操作を使用できない場合にのみ使用されます。 Named Update サーバーサイドで引数をもらってアプリケーションロジックを記述する場合に利用 エンティティに関連するトランザクション処理の実行 単純な変更操作に分類されないカスタム操作を実装 Insert、Update、または Delete のプレフィックスから始まらない任意の名前 戻り値がなし、パラメータがエンティティ型と任意数のその他のパラメーター HasSideEffectsをtrueにするとPOSTで発行される http://hashtagfail.com/post/1000967093/wcf-routing-ria-services GetはキャッシュされるためそれをさけるためにPOSTで実行するだけ。SideEffect には深い意味は無さそう 8
9.
http://biki.jp.net/enterprisenet クエリーメソッドの追加 クエリーメソッドの追加とカスタマイズ 特定の目的ごとにクエリーメソッドを追加、カスタマイズできる
既存のクエリーにソート順を追加の検索条件を付与してカスタマイズ する 1つのエンティティを返すメソッドの追加 IsComposableをfalseにする。IsComposableをtrueにするとクライアントで検 索条件を追加できる パラメータを受け取るメソッドの追加 検索条件をサーバーのビジネスロジックで組み立てる場合に利用する 9
10.
http://biki.jp.net/enterprisenet ドメイン サービスへのアプリケーション ロジックの追 加
ドメイン サービス クラスに必要なアプリケーション ロジックを追加 ウィザードによって生成されるコードに追加 ロジックは、直接操作メソッドに追加することも、操作メソッドから呼び出されるメソッドに 追加することも可能 CRUDメソッドにビジネスロジックを追加 ウイザードで[編集の有効化] を選択すると雛形を作成してくれる エンティティを受け取って処理を記述する ビジネスロジック上の検証や計算処理を記述できる 名前付き更新メソッドを追加 クライアントでの操作をサーバーサイドでリプレイする。1つのエンティティに対して1回だ け 両方とも同じ emp.ResetPassword();、Context.ResetPassword(emp); 呼び出し操作を追加 エンティティに関連付けない処理 ※ Invoke属性は不要、LoadやSubmitChangesする必要はない その他 クライアントからサービスとして呼び出されないように、IgnoreAttribute 属性でマーク 10
11.
http://biki.jp.net/enterprisenet ドメインサービスのデータ データの注釈と検証 DataTypeAttribute
RangeAttribute RegularExpressionAttribute RequiredAttribute StringLengthAttribute CustomValidationAttribute INotifyDataErrorInfo 同期および非同期の検証をサポートするメンバーを定義します データの同時実行 既定では、RIA サービス が元のエンティティ全体を変更された値と共にデータ アクセス層 に渡して、データの同時実行を確認することはありません。その代わり、RIA サービス は、 RoundtripOriginalAttribute 属性でマークされたメンバーのみを格納し、渡します。 RIA サービス は、RoundtripOriginalAttribute 属性、ConcurrencyCheckAttribute 属性、または TimestampAttribute 属性でマークされたメンバーのみを格納 トランザクション RIA サービス フレームワークによってトランザクションが自動的に作成されることはありま せんが、変更の送信時に明示的なトランザクションを追加できます 11
12.
http://biki.jp.net/enterprisenet ドメインサービスのデータ コンポジットデータ(合成階層) 複数のエンティティを一つ塊にして処理できる仕組み
子孫エンティティのプロパティにCompositionAttribute 属性を付与 子孫エンティティを読み込むためにはIncludeAttribute 属性を適用し、クエリ メソッドに 子孫エンティティを含める必要がある ドメインサービス 親エンティティまたは子孫エンティティのクエリ メソッドが許可される 親エンティティなしで読み込まれた子孫エンティティを変更することはできない(例外) 子孫エンティティで許可される操作 親エンティティで更新が許可されている場合、子孫エンティティでは更新、挿入、および削除が 許可される 親エンティティに名前付き更新メソッドがある場合、すべての子孫で更新が有効になっている 必要がある 親エンティティで挿入または削除が許可されている場合、子孫エンティティでは対応する操作 が再帰的に許可される クライアント プロジェクト内での規則 子孫エンティティに変更が含まれる場合、変更の通知が親エンティティまで伝達される (HasChanges) 親エンティティを変更すると、その子孫エンティティすべて (変更されていない子孫を含む) が変 更セットに含まれる 12
13.
http://biki.jp.net/enterprisenet ドメインサービスのデータ プレゼンテーションモデル データ
アクセス層内の複数のエンティティからデータを集計するデータ モデル データ アクセス層内のエンティティをクライアントに直接公開しないため、プレゼ ンテーション モデルのみを変更することで、データ アクセス層での変更に対応で きる る ドメインサービス 独自のプレゼンテーションモデルを作成してカスタムのドメインサービスを作成 プレゼンテーションモデルにも一意識別用のKey項目が必要 ドメインサービスはDomainServiceをベースにクエリメソッドを定義してデータ層を検索す る 更新処理を定義することも可能 プレゼンテーションモデルの各項目の変更内容を対応するエンティティに設定する 変更を送信した後、中間層ロジックまたはデータ ソースで設定されている値をクライアン トに渡すことができる エンティティの値をプレゼンテーション モデルに再度マップするための Associate メソッド が用意されています 13
14.
http://biki.jp.net/enterprisenet ドメインサービスのデータ 継承 公開する派生型を
KnownTypeAttribute 属性に含める必要がある ドメイン サービスで公開した継承階層をそのままの構造で、クライアン ト プロジェクトに生成される。ルート クラスはEntity クラスから派生し、 各派生クラスが生成される クエリメソッド、名前付き更新メソッドもインタフェースはサーバーの定義 と同じ 制限 継承はエンティティ型でのみサポートされています ドメイン サービス操作の戻り値またはパラメーターでは、インターフェイス型がサ ポートされていません 継承階層内の型のセットは、コード生成時に認識されている必要があります virtual 修飾子は許可されていますが、対応するエンティティ型がクライアントで 生成されるときは無視されます ドメイン サービス操作に対するメソッドのオーバーロードは許可されていません new (C#) キーワードと Shadows (Visual Basic) キーワードはエンティティ型では使 用できません 14
15.
http://biki.jp.net/enterprisenet ドメインサービスのデータ 関連付け Entity
Frameworkで生成している場合はAssociationAttributeを特 別指定する必要はない Include属性をつけるとクライアント側にもプロパティが生成される 複合型(Complex Type) Entity クライアントではComplexObjectをベースになる 15
16.
http://biki.jp.net/enterprisenet 共有エンティティ エンティティは、WCF RIA
サービス アプリケーション内の 複数のドメイン サービス間で共有することができる 要は他のドメインサービスのエンティティを使えるということ ドメインサービスを分けて開発できる 名前付更新はコンテキストを注意する 複数のコンテキストを利用している場合 それぞれのDomainServiceでエンティティを宣言した場合 はドメインサービスのContextでオブジェクトは別になる。 型は同じ 名前付更新は間違ったコンテキストで行うと例外で通知 してくれる 16
17.
http://biki.jp.net/enterprisenet クライアント・サーバー間の共有コード 共有ソース ファイル
共有の名前付け規則 (*.shared.cs または *.shared.vb)) を使 用してファイルを共有する場合は、ソース コード ファイルを共 有するための "プッシュ" モデルを実装します。共有ファイル は、コンパイル時に中間層プロジェクトからクライアント プロ ジェクトにアクティブにコピーされます リンク ファイル リンク ファイルの方法を使用する際は、ソース コード ファイル を共有するための "プル" モデルを実装します。クライアント プロジェクトにはファイルのコピーは含まれません。代わりに、 クライアント プロジェクトはサーバー プロジェクト内のファイル を参照するだけです 17
18.
http://biki.jp.net/enterprisenet クライアントUIの構築 Silverlightによる画面作成 レイアウト作成
入力検証 画面遷移 サーバーサービスの利用 18
19.
http://biki.jp.net/enterprisenet レイアウト作成 XAMLで画面レイアウトを作成する 主なコントロール
TextBox Label(SDK) ComboBox CheckBox DatePicker(SDK) Button DataGrid DataForm(SDK) 19
20.
http://biki.jp.net/enterprisenet DataForm 単票編集するためのフォーム コレクションを取り扱うためDataGridの単票版と考えてもいいかも
機能 データ移動 編集 (鉛筆)、新しいレコードの追加 (プラス記号)、およびレコードの削 除 (マイナス記号) 編集モード時にキャンセルとコミットができる レイアウト Display属性を利用してラベルタイトルやツールヒントを指定可能 検証 Required, StringLength, Range, RegularExpression, Customevalidationを指定して 検証ルールを指定できる 動作を換える仕組み AutoCommit AutoEdit AutoGenerateFields LabelPosition 20
21.
http://biki.jp.net/enterprisenet DomainContext と操作 WCF
RIA サービス を使用して Silverlight プロジェクトと中間層プロジェクト をリンクすると、RIA サービス により、中間層で公開したエンティティおよび 操作に基づいて、クライアント アプリケーションのクライアント プロキシ ク ラスが生成されます DomainContext から派生するクラス ドメイン サービスと同じ名前空間を使用したドメイン コンテキスト クラスが生成されま す 既定では、ドメイン コンテキストの名前には、ドメイン サービスの名前付けに使用され る Service ではなく、Context が接尾辞として使用されます。たとえば、HRService という 名前のドメイン サービスには、HRContext という名前の対応するドメイン コンテキスト があります DomainContext クラスでは、クエリ、送信、および呼び出しの各ドメイン操作がサポー トされています。各種操作には、進行中の非同期操作を表す、対応するクラスがあり ます。このようなクラスとしては、LoadOperation、SubmitOperation、および InvokeOperation があります。 エンティティ クラスとエンティティ プロキシ クラス 中間層内のエンティティ クラスと同じ名前および名前空間でプロキシ クラスが生成さ れます。 カスタム属性 共有コード 21
22.
http://biki.jp.net/enterprisenet DomainContext と操作 クエリ
クエリ メソッドの名前は、ドメイン サービスのクエリ メソッドに Query という接尾辞を加えたもの。 EntityQuery オブジェクトを返します。 ドメイン コンテキストからのすべてのクエリが非同期的に実行されます。 クエリを実行するには、Load メソッドにパラメーターとして EntityQuery オブジェクトを渡す LINQを利用するためにはSystem.ServiceModel.DomainServices.Clientの名前空間をインポート 利用可能なクエリ演算子 Where、OrderBy、ThenBy、Skip、Take データの変更 エンティティを更新、挿入、および削除するためのメソッドはドメイン コンテキスト内に生成されません。代わり に、ドメイン コンテキストの SubmitChanges メソッドを使用すると、クライアントの変更内容がサーバにまとめて 送信され処理される また、DomainContext クラスには、HasChanges プロパティと EntityContainer プロパティも用意されており、保留 中の変更を評価できます。 名前付き更新メソッド ドメイン サービスのメソッドと同じ名前が生成 クライアント プロジェクトで、メソッドを呼び出しても、実際には SubmitChanges が呼び出されるまでこのメソッド は実行されません エンティティのインスタンスを介しても呼び出すことができる 呼び出し操作 ドメイン サービスの各呼び出し操作に使用するメソッドが生成される 呼び出し操作はすぐに実行されます。SubmitChanges メソッドは呼び出しません 22
23.
http://biki.jp.net/enterprisenet クライアントでのエラー処理 WCF RIA
サービス では、データ操作のコールバック メソッドを 指定し、そのコールバック メソッドでエラーをチェックすること で、エラーを処理します データ読み込み時のエラー処理(いずれか) コールバック メソッドのパラメーターを持つ Load メソッドを使用しま す。このコールバック メソッドでは、エラーを処理し、例外がスローさ れていないことを示す MarkErrorAsHandled メソッドを呼び出します。 データ送信時のエラー処理 SubmitChanges メソッドを使用して、コールバック メソッドをパラメー ターとして指定します。このコールバック メソッドでは、エラーを処理 し、例外がスローされていないことを示す MarkErrorAsHandled メ ソッドを呼び出します。 呼び出し操作によるエラー処理 呼び出し操作を呼び出すときにコールバック メソッドを含めます。こ のコールバック メソッドでは、エラーを処理し、例外がスローされて いないことを示す MarkErrorAsHandled メソッドを呼び出します。 23
24.
http://biki.jp.net/enterprisenet 生成されたコードのカスタマイズ RIA サービス
では、生成されたコードに部分メソッドが用意さ れており、このメソッドを個別のコード ファイルに実装して、ク ライアント層コードをカスタマイズすることができます 部分メソッド ドメイン コンテキスト クラス OnCreated() エンティティ クラス OnCreated() OnLoaded(boolean) On[PropertyName]Changing On[PropertyName]Changed On[CustomMethodName]Invoking On[CustomMethodName]Invoked 24
25.
http://biki.jp.net/enterprisenet 資料 http://msdn.microsoft.com/ja- jp/library/ee707344(v=vs.91).aspx http://www.nikhilk.net/RIAServices-Link-Listing-1.aspx 25
Download now