サンプルアプリを作ってみよう!
WCF RIA ServicesはVisual Studio 2010に統合されています。Visual Studio 2010を利用すると、サーバに定義されたサービスのインターフェイスなどを元に、UIの作成からデータの更新までを簡単に行えます。ここからは、WCF RIA Servicesでどのようにアプリケーションを作成するかを、サンプルアプリケーションを使って見ていきましょう。
Visual Studio 2010には、WCF RIA Servicesを利用した「ビジネスアプリケーション向けのプロジェクトテンプレート」が存在しますが、今回は通常のSilverlightアプリケーションのテンプレートを利用して、WCF RIA Servicesの基本的な動きを探っていきます。
アプリケーションの概要
このサンプルでは、使ったお小遣いをサーバ側に記録していきます。
Silverlightで作成された画面から記録すると、サーバ側に作成されたドメインサービスにアクセスし、データベースを更新します。ユーザは購入日と品目をサーバに保存するだけで、保存者や残高は実装しません。
作成するアプリケーションの画面イメージを、図3に示します。
![図3 サンプルアプリケーションの画面イメージ](http://cz-cdn.shoeisha.jp/static/images/article/5476/5476_fig3.gif)
サンプルでは、まず、データベースからお小遣いデータを検索/更新/削除を行うサービスを作成し、その情報を元にSilverlightでフロントエンドとなる画面を作成します。使用するお小遣いデータベースの概念モデルを図4に示します。
![図4 使用するデータベース](http://cz-cdn.shoeisha.jp/static/images/article/5476/5476_fig4.gif)
みなさんは、データベースのテーブル名や、カラム名はどのように決めているでしょうか。「すべて英語」「日本語のローマ字表記」「英語とローマ字の混在」「すべて日本語」など、さまざまなタイプがあると思います。
以前(筆者の感覚としては5~7年ぐらい前)は、RDBMS側で日本語の処理がうまくできないため、すべてシングルバイトの文字でテーブル名やカラム名を命名することが一般的でした。しかし、最近は、日本語(マルチバイト)で命名するケースが増えてきているように感じます。
データベースのテーブルには業務に深く関わるものがあり、英語での表現が難しいものがあります。この場合、テーブル名やカラム名を英語に変換してしまうと、元々の意味合いが違うものに変換されてしまう危険性があります。
筆者としては、システムやプロジェクトが許すならば、英語やローマ字表記のテーブル名を使用せず、普段の業務で使用している「日本語名+システム的な命名規則」でテーブルの名前やカラム名に使うことをお勧めします。
Twitterで日本語のエンティティー名について議論があったものを、Togetterにまとめています。興味があれば確認してみてください。
プロジェクトの作成
Visual Studio 2010でSilverlightプロジェクトを作成すると、新しいSilverlightアプリケーションのダイアログで、WCF RIAサービスを有効にするためのチェックボックスが表示されます(図5)。
このチェックボックスにチェックを入れてプロジェクトを作成すると、SilverlightをホストするWebアプリケーション(ASP.NET)とSilverlightプロジェクトのリンクが自動的に作成され、後述するWCF RIA Servicesが提供するコードの自動生成などの機能を利用できるようになります。
![図5 新しいSilverlightアプリケーションのダイアログ](http://cz-cdn.shoeisha.jp/static/images/article/5476/5476_fig5.gif)
プロジェクトの作成時に「WCF RIAサービスを有効にする」にチェックを入れなかった場合でも、Silverlightプロジェクトのプロパティ画面から、図6のようにWCF RIA サービスリンクを設定すれば、WCF RIA Servicesの設定ができます。
![図6 RIAServicesの設定(プロジェクトの設定画面)](http://cz-cdn.shoeisha.jp/static/images/article/5476/5476_fig6.gif)