WCF RIAサービスとは何ですか?


102

WCF RIAサービスに関するMSDNのサイトは嫌いです。それはそれが何であるかを言うのではなく、それが何をするかを言うだけです。それはそれが達成できることを述べていますが、なぜそれが必要なのかは述べていません。

例えば:

「n層のRIAソリューションを開発する際の一般的な問題は、中間層とプレゼンテーション層の間でアプリケーションロジックを調整することです。」

まあ、それは私にとってあまり意味がありません。

「RIAサービスは、プログラミングロジックを手動で複製することなく、サーバー上のアプリケーションロジックをRIAクライアントで利用できるようにするフレームワークコンポーネント、ツール、およびサービスを提供することで、この問題を解決します。ビジネスルールを認識するRIAクライアントを作成できます。また、ソリューションが再コンパイルされるたびに、クライアントは最新の中間層ロジックで自動的に更新されます。」

それでは、サーバーからDLLをダウンロードしますか?データのルールを説明するメタデータですか?

それは何ですか?RAD用のVS 2010アドオンだけですか?それとも、WCFの上または下にあるテクノロジですか、それとも何ですか?どこに住んでいますか?データで、サーバーで、何ですか?

まとめていただければ幸いです。


3
これは、コード生成と、サーバー側とクライアント側の両方のコードを使用する、WCF上の技術です。主に、サーバーからクライアントにデータを入れ替え、検証などを行うことに重点を置いています。
Rangoric

1
@Rangoric:回答として投稿できます。短い答えも良い答えになることがあります。
Henk Holterman、

7
ああ、笑、私はそれをRIAAと誤解して、心理学に行きました。
Mateen Ulhaq、2011年

知っておきたいこと:RIA =リッチインターネットアプリケーション(Silverlightのシンクライアント)。ここで詳しく説明されています。WCF RIAサービスは、シンクライアントをサーバーにリンクする、WCF上のRIAサービスです。「WCF RIAサービスには、Microsoft構造化照会言語(SQL)Serverデータベースからデータを取得し、それを編集して表示するために提示されたSilverlightのクライアントにこのデータを利用できるようになり、」

回答:


109

RIAサービスは、サーバーとの通信を管理してクライアント側の検証を提供するクライアント側(Silverlight)オブジェクトを自動的に生成するサーバー側テクノロジーです。

RIAサービス内の主なオブジェクトはでDomainService、通常LinqToEntitiesDomainServiceはLinqToEntitiesモデルに接続されています。

RIAサービスで覚えておくべき重要な点は、RIAサービスは主に高度なビルドトリックであることです。ドメインサービスを作成してソリューションをコンパイルすると、ドメインサービスのクライアント側の表現が生成されます。このクライアント側の表現は同じインターフェースを持っています。メソッドを使用してサーバー側ドメインサービスCustomerServiceを作成するとしますIQueryable<Customer> GetCustomersByCountry。ソリューションをビルドするとCustomerContext、メソッドを持つと呼ばれるSilverlightプロジェクト内にクラスが生成されますGetCustomersByCountryQuery。これで、サーバー上で呼び出す場合と同じように、クライアントでこのメソッドを使用できます。

更新、挿入、削除は異なるパターンに従います。ドメインサービスを作成するときに、編集を有効にするかどうかを指定できます。次に、更新/挿入/削除に対応するメソッドがサーバー側のドメインサービスで生成されます。ただし、クライアント側の部分にはこれらのメソッドはありません。あなたが持っているのCustomerContextはと呼ばれるメソッドSubmitChangesです。これはどのように機能するのですか?

  • 更新の場合は、既存の顧客のプロパティ(を介して取得したものGetCustomersByCountryQuery)を更新するだけです。
  • 挿入には、を使用しますCustomerContext.Customers.Add(new Customer(...) {...})
  • 削除にはを使用しますCustomerContext.Customers.Remove(someCustomer)

編集が終わったら、を呼び出しますCustomerContext.SubmitChanges()

検証に関しては、System.ComponentModel.DataAnnotations名前空間の検証属性でサーバー側オブジェクトを装飾できます。ここでも、プロジェクトをビルドすると、対応するクライアント側オブジェクトの検証コードが自動的に生成されます。

この説明がもう少しお役に立てば幸いです。


確かにそうです。共有していただきありがとうございます。MSDNサイトを更新していただければ幸いです。ここで、ドメインオブジェクトにプロパティを追加するとどうなりますか?更新されますか?
Aliostad

更新、挿入、削除に関する追加情報をいくつか追加しました。
ロナルドウィルデンベルク

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.