SHOEISHA iD

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

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

Silverlightで行うデータ処理アプリケーション開発の第一歩

Silverlightで行うデータ処理の基本

Silverlightで行うデータ処理アプリケーション開発の第一歩 第1回

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

非同期処理

 Silverlightのデータ処理で、もう一つ大きな特徴となるのは、呼び出したWebサービスは、すべて非同期で処理されるということです。

 例として以下のコードをご覧ください。初めにWCF側でサービスを準備します。ここではCreateOrderという名前で関数を公開します。

WCFで公開されるサービスの例
[OperationContract]
public void CreateOrder(string userId, int paymentType, Guid creaditCardId)
{
・・・
}

 上記のサービスをSilverlight側で利用する場合、下図のようにサービスを参照してSilverlitghtプロジェクトにプロキシを作成する必要があります。

Silverlight側のプロジェクトでサービス参照の追加
Silverlight側のプロジェクトでサービス参照の追加

 プロキシに作成されるメンバーは、非同期で呼び出すためのCreateOrderAsyncメソッドと、CreateOrderへの非同期呼び出しが完了した時点で実行されるCreateOrderCompletedイベントなどになります。SilverlightからWebサービスを利用する場合、以下の例にあるように、この2つのメンバーを活用する形になります。

SilverlightからWebサービスを利用する例
using MSStoreSample.Client.OrderServiceReference;
. . . . .

private void paymentButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
    OrderServiceClient client = new OrderServiceClient();
    client.CreateOrderCompleted += CreateOrderCompleted;
    client.CreateOrderAsync(AuthenticationContext.Current.User.UserName,
        3, Guid.Empty);
}

void CreateOrderCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
    if (e.Error != null)
        throw e.Error;
    NavigationService.Navigate(new Uri("/Home", UriKind.RelativeOrAbsolute));
}

.NET RIA Services(WCF RIA Services)

 Silverlightでデータ処理を考える場合、前述の例からもいくつか課題が浮かび上がります。例えば以下などです。

  • データサービスの使い分け
  • 非同期処理

 さらに、複数の層に対してデータや処理が複雑に関連し合うシステム構成になりがちであり、開発生産性、保守性に対しても課題があると言えます。

 こうした状況の解決のために追加されるのが、.NET RIA Servicesです(注3)。

注3

 PDCにおいて、.NET RIA Servicesは今後「WCF RIA Services」と名称変更されることが発表されました。

 .NET RIA Servicesでは、サーバーサイドで定義されたエンティティ、ビジネスロジック(ビジネスオブジェクト)が、サーバー側のビルドを行うと、クライアントから使用することができるクラスやメソッドとしてクライアント側にジェネレートされます。

 クライアントからは、この作られたクライアント側のオブジェクトを使用する形になります。その際、データの処理や非同期処理も自然な形で内部にカプセル化されることとなり、あえてデータサービスやその呼び出しを構成する必要はありません。

 あたかもクライアント/サーバーのシステムを構築するように、Silverlightアプリケーションの開発が可能となります。

 .NET RIA ServicesはVisual Studio 2010で実装される予定となっており(時期は未定)詳細に関しては、この連載の後で別途連載を行う予定になりますので、今回は割愛させてもらいたいと思います。

WCF RIA Servicesのイメージ
WCF RIA Servicesのイメージ

まとめ

 今回は、Silverlightでアプリケーションを構築する際に必要とされるデータアクセスに関して紹介しました。次回以降からは、サンプルシステムを題材に、実際の処理に関してもう少しだけブレイクダウンして紹介したいと思います。

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Silverlightで行うデータ処理アプリケーション開発の第一歩連載記事一覧

もっと読む

この記事の著者

マイクロソフト株式会社 小高 太郎(コダカ タロウ)

マイクロソフト株式会社 デベロッパーエバンジェリスト。某国内SI企業にてERPパッケージ開発に携わり、プログラマー、SE、PMと様々なロールを担当すると共に、Microsoft Universityの講師を兼務する。マイクロソフト株式会社では、デベロッパーエバンジェリストとして開発者向けに様々な技術...

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5058 2010/04/20 16:30

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング