ホーム > Silverlight, WCF RIA Services > WCF RIA Services:とりあえず動かしてみる

WCF RIA Services:とりあえず動かしてみる

まだ英語版しかでていませんが、Silverlight 4の開発ツールとそれに含まれるWCF RIA Servicesが正式にリリースされました。
ずっと気にしていたWCF RIA Servicesについて、触ってみてわかったところからBlogにまとめていきたいと思います。
今回はとりあえず動かしてみるところから。

まずはSilverlightアプリケーションを作成します。

  1_

アプリケーションの設定が確認されるので、ここで「WCF RIA サービスを有効にする」にチェックを入れます。

 image

クライアント側のSilverlightプロジェクトとサーバ側のWebプロジェクトが作成されます。
Webプロジェクト側にApp_Dataフォルダを追加してその中にデータベースを追加し、Entity Data Model(EDM)を作成するところまではいつもの作業なので省略します。

  image_3

EDMを追加したら、必ずビルドを実行します。
Silverlightに限らず、Webアプリケーションプロジェクトではソースの修正後にビルドを実行しないとウィザードから追加したクラスを選択できなかったり、インテリセンスが効かなかったり、といった状況に陥ることがあります。
なにか操作をしたら"まずビルド"は徹底しておきましょう。

ここからがWCF RIA Servicesとしての作業になります。
新しい項目の追加でDomain Service Classを追加します。

 4_DomainService

どのEntityを対象とするかが聞かれるので、Personにチェックを入れ、ついでにEnable editingにもチェックをいれておきましょう。
このエントリではEnable editingのチェックは関係ありませんが、先にすすんだときに必要になります。
また、Personにチェックをいれると、自動的にmetadataクラスの生成にもチェックが入ります。

 image_4

このウィザードの実行によって、DomainService1.csファイルとDomainService1.metadata.csファイルがWebプロジェクトに追加されます。
ここでも必ずビルドを実行します。
これで一旦Webプロジェクト側での作業は終了です。

SilverlightプロジェクトのMainPage.xamlを表示し、データソースウィンドウを表示します。
データソースウィンドウに表示されているPersonをMainPageにドラッグ アンド ドロップします。

 image_5

自動的にDataGridが追加されるので、適当に位置を調整します。

 7_DataGrid

とりあえずここまででデバッグ実行を開始します。
ブラウザが開いて、そこにデータが表示されます。

 8_

Silverlightクライアントにデータを取得して表示するところまでがまったくコーディングをせずにできてしまいました。

Silverlight側ではデータソースからのドラッグ アンド ドロップでDataGridを追加した以外何もしていないように見えますが、本当はそうではありません。
ソリューションエクスプローラーでもデフォルトの状態では何も起きていないように見えます。

 9_

ですが、すべてのファイルを表示させると、Generated_Codeフォルダの中にクラスファイルが存在しているのがわかります。

 10_

実はこのファイル、Webプロジェクト側で作成したDomainServiceのクラスをもとに、ビルド時に自動的に生成されるもので、エンティティクラスやWebプロジェクトと通信を行うためのプログラムが含まれています。

この自動生成されたプログラムにたいしてデータを配信するWebプロジェクト側のサービスも特に作成していません。
このデータ配信のサービスの部分はモジュール化されていて、DomainServiceクラスを追加することでWebプロジェクトに組み込まれます。
データ配信サービスについては以前紹介したこのBlogの記事が参考になるので読んでおくといいと思います。

カテゴリー:Silverlight, WCF RIA Services
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。