WCF RIAサービスに関するMSDNのサイトが嫌いです。それはそれが何であるかを言うのではなく、それが何をするのかを言うだけです。達成できることは述べていますが、なぜ必要なのかは述べていません。
例えば:
「n層RIAソリューションを開発する際の一般的な問題は、中間層とプレゼンテーション層の間でアプリケーションロジックを調整することです」。
まあ、それは私にはあまり意味がありません。
「RIAサービスは、プログラミングロジックを手動で複製することなく、RIAクライアントがサーバー上のアプリケーションロジックを使用できるようにするフレームワークコンポーネント、ツール、およびサービスを提供することにより、この問題を解決します。また、ソリューションが再コンパイルされるたびに、クライアントが最新の中間層ロジックで自動的に更新されることを知っています。」
サーバーからDLLをダウンロードしますか?データのルールを記述するメタデータですか?
それで何ですか? RADの単なるVS 2010アドオンですか?それとも、WCFの上にあるのか、その下にあるのか、それとも何ですか?どこにありますか?データ、サーバー、何で?
要約していただければ幸いです。
RIAサービスは、サーバーとの通信を処理し、クライアント側の検証を行うクライアント側(Silverlight)オブジェクトを自動的に生成するサーバー側の技術です。
RIAサービス内のメインオブジェクトは DomainService
であり、通常はLinqToEntitiesモデルに接続されている LinqToEntitiesDomainService
です。
RIAサービスで覚えておくべき重要なことは、それが主に洗練されたビルドトリックであることです。ドメインサービスを作成してソリューションをコンパイルすると、ドメインサービスのクライアント側の表現が生成されます。このクライアント側の表現には同じインターフェースがあります。メソッド_IQueryable<Customer> GetCustomersByCountry
_を使用してサーバー側のドメインサービスCustomerService
を作成するとします。ソリューションをビルドすると、CustomerContext
というメソッドを持つGetCustomersByCountryQuery
というSilverlightプロジェクト内にクラスが生成されます。サーバーでこのメソッドを呼び出しているかのように、クライアントでこのメソッドを使用できるようになりました。
更新、挿入、削除は異なるパターンに従います。ドメインサービスを作成するときに、編集を有効にするかどうかを指定できます。更新/挿入/削除に対応するメソッドは、サーバー側のドメインサービスで生成されます。ただし、クライアント側の部分にはこれらのメソッドがありません。 CustomerContext
にあるのは、SubmitChanges
というメソッドです。これはどのように機能しますか:
GetCustomersByCountryQuery
で取得した)のプロパティを更新するだけです。CustomerContext.Customers.Add(new Customer(...) {...})
を使用します。CustomerContext.Customers.Remove(someCustomer)
を使用します。編集が完了したら、CustomerContext.SubmitChanges()
を呼び出します。
検証については、 _System.ComponentModel.DataAnnotations
_ 名前空間の検証属性を使用してサーバー側オブジェクトを修飾できます。繰り返しますが、プロジェクトをビルドすると、対応するクライアント側オブジェクトの検証コードが自動的に生成されるようになりました。
この説明が少しでもお役に立てば幸いです。
最新ニュース:WCF RIA Servicesは死んでいます:
http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/
RIAサービスを使用する場合は、オープンソース化されています。