SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight 4で作る新しいRIAアプリケーション

WCF RIA Servicesの仕組み

Silverlight 4で作る新しいRIAアプリケーション(4)

  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード sample.zip (793.6 KB)

 前編ではWCF RIA Servicesを使って、データの検索と更新をデザイナーを利用して作成しました。今回は、検証や共有コードといったWCF RIA Servicesの裏側のコードを確かめながら、どのようにn階層のアプリケーションを実現しているか、どこで気をつけるべきかを確認します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 前編ではWCF RIA Servicesを使って、データの検索と更新をデザイナーを利用して作成しました。今回は検証や共有コードといったWCF RIA Servicesの裏側のコードを確かめながら、WCF RIA Servicesがどのようにn階層のアプリケーションを実現しているか、どんなところで気をつけるべきかを確認していきます。

 WCF RIA ServicesをSilverlightプロジェクトに適用する方法や、DomainContextに定義されたデータソースをSilverlightで利用する方法については前編を確認してください。

自動生成コードに迫る

 前編で紹介したサンプルには、WCFの呼び出しコードや、データの検証コードは存在していないように見えます。WCF RIA Servicesのアプリケーションでは、サービスの呼び出しやデータの検証をどのように行っているのでしょうか。

 前編のコラムでも少し触れましたが、これらの仕事はサーバ側で定義した情報を元に、WCF RIA Servicesが自動生成したコードが行っています。

 自動生成コードを確認したい場合は、一度ソリューションをビルドした後、Visual Studioのソリューションエクスプローラで、Silverlightアプリケーションのプロジェクトのファイルをすべて表示します。Generated_Codeフォルダの下に、*.Web.g.csや、Share.csといったファイルが確認できます(図1)。

 WCF RIA Servicesでは、これらの自動生成されたコードがデータの検証やサービスの呼び出しといった仕事を請け負っています。

図1 自動生成コードの表示
図1 自動生成コードの表示

エンティティとメタデータクラス

 サーバ側に定義したエンティティクラスが、Silverlightのコードとしてどのように利用されているか見ていきましょう。

 今回のサンプルでは、データアクセスにはEntity Frameworkを利用しているため、エンティティデータの本体は「お小遣いEntites.Designer.cs」に定義されています。

 図2は、お小遣いデータモデルを定義した直後のソリューションエクスプローラの様子です。

図2 エンティティデータモデルを追加した直後
図2 エンティティデータモデルを追加した直後

 このプロジェクトに対し、前編で解説したようにドメインサービスを追加すると、図3のようにデータに対する操作を定義する「お小遣いService.cs」と、エンティティデータのメタ情報を定義する「お小遣いService.metadata.cs」がソリューションに追加されます。

図3 ドメインサービスを追加した直後
図3 ドメインサービスを追加した直後

 ドメインサービスの本体である「お小遣いServices.cs」については後述するため、まずは「お小遣いService.metadata.cs」について見ていきましょう。

次のページ
メタデータクラスによる表示データの制御と値の検証

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Silverlight 4で作る新しいRIAアプリケーション連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト かるあ (杉山 洋一)(カルア(スギヤマ ヨウイチ))

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5606 2010/12/28 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング