Data for Silverlight
データ中心型アーキテクチャ

Silverlight を使用して、事業別などのデータ中心型アプリケーションを構築できます。このようなアプリケーションでは、一般に次の手順が実行されます。

  1. サーバーからデータを取得します。
  2. クライアント側でデータを表示および編集します。
  3. サーバーに変更を送信します。

手順 1と3では、通常、データを転送するために Web サービスが使用され、データベースをクエリーおよび更新するために従来のデータアクセス方法が使用されます。手順 2では、通常、Silverlight データ連結コントロールが使用されます。

Microsoft は、サーバー側のジョブを実行するために多くのツールを提供しています。最新のツールとして、ADO.NET Data Services があります。これは、Web アクセス可能なエンドポイントをデータモデルに提供し、Silverlight ライブラリ(System.Data.Services.Client.dll)の ADO.NET Data Services を介して Silverlight と統合されます。最近では、この新技術に関する記事が多く掲載されています(MSDN 2008 年 9 月、volume 23、no. 10 の「Data Services」など)。

ADO.NET Data Services は、さまざまなデータ中心型アプリケーションの標準になる可能性が高い強力な新技術です。ただし、この技術が唯一の選択肢というわけではありません。サーバー側でデータを取得および更新するために、従来の ADO.NET データクラス(DataSetDataTableDataAdapters など)も使用できます。これらのクラスは、.NET 1.0 以来、開発者に使用されており、堅牢で強力な使いやすいクラスです。さらに、多くの開発者は、長期に渡って使用およびテストされてきたコードとして、これらのクラスに多くの投資を行ってきています。

Data for Silverlight は、従来の ADO.NET を使ってサーバーとデータをやり取りするために Silverlight クライアントから使用できるクラスの一式です。一般的な手順は次のとおりです。

  1. サーバーからデータを取得します。
    1. サーバーは従来の方法で DataSet オブジェクトにデータを挿入します(通常は、DataAdapter オブジェクトを使用して、SqlServer データベースからデータを取得します)。
    2. サーバーは、DataSet.WriteXml を呼び出して DataSet をストリームにシリアライズし、そのストリームをクライアントに送信します。
    3. クライアントは、DataSet.ReadXml メソッドを使用して、そのストリームをデシリアライズします。
  2. クライアント側でデータを表示および編集します。
    1. クライアントは DataSet 内のテーブルをコントロールに連結します(通常は LINQ クエリーを使用)。
    2. ユーザーは、コントロールを操作して、データ項目を表示、編集、追加、および削除します。
  3. サーバーに変更を送信します。
    1. クライアントは、DataSet.GetChanges および DataSet.WriteXml を呼び出して、変更をストリームにシリアライズし、そのストリームをサーバーに送信します。
    2. サーバーは、DataSet.ReadXml を呼び出して変更をデシリアライズし、次に DataAdapter オブジェクトを使って変更をデータベースに保存します。

このシナリオにおける C1Data の役割は2つあります。1つめは、クライアント側とサーバー側の DataSet オブジェクト間のデータ転送を容易にする対称型のシリアライズメカニズムを提供します。2つめは、クライアント側でデータを操作するための使い慣れたオブジェクトモデルを提供します。

メモC1Data は、ADO.NET Data Services に対抗するものではありません。 C1Data は、既に蓄えてある ADO.NET の知識や資源を活用できるようにします。あらゆる情報や資源を最小限の作業で Silverlight に転送することができます。また、必要に応じて、徐々に ADO.NET Data Services に移行することもできます。

C1Data はレガシー技術ではありません。 たとえば、C1Data は LINQ と共に使用できます。実際、C1Data では、デスクトップでは使用できるが、Silverlight アプリケーションでは使用できない LINQ 機能が有効になります(一部匿名クラス)。

以下のセクションでは、上の手順に従う単純なアプリケーションの実装について説明します。このアプリケーションは単純ですが、ほとんどのデータ中心型アプリケーションで必要になる4つの CRUD(Create、Read、Update、Delete)操作の実行方法を示します。

関連トピック

 

 


Copyright © GrapeCity inc. All rights reserved.