私は RIA サービスに精通しており、どこが足りないかを知っています。私はデータ サービスと DevForce についてほとんど知りませんが、DevForces が RIA サービスよりも優れていると宣伝していることは知っています。
- RIA は、あらゆる種類のグループ化または結合を実行できません。(興味深いことに、DevExpress ツールキットは、場合によっては、RIA サービス ソースをグループ化するためのトリックを行うことができます。)
- 関係は理解できますが、ブリッジ テーブルへの変換を透過的に処理する必要があるような多対多の関係は理解できません。(編集: これは Open Ria Services で計画されています)
- 変更の追跡は、全体としてのみ送信または拒否できるコンテキスト (作業単位) を介して機能します (とにかくすぐに使用できます)。これは通常、エンティティを転送するための多くのコンテキストと奇妙なコピー操作を伴うアプリケーションにつながります。RIAServicesContrib
プロジェクトはそれを支援します。
- もうメンテナンスされていないようです。これは、Entity Framework 4.1 が新しい DbContext API を (最初にコード用に) リリースしたときに、MicrosoftがRIA と EF コードを最初に使用できる互換性ライブラリをリリースしたという事実に基づいています。ただし、そのライブラリには EF 4.1 のバージョン ロックがあり、Microsoft は現在、RIA Services がVisual Studio 2012 への Orwellian ノートの形式でDbContext をサポートしていないと述べているだけです。バージョン 5 まで、6 は Open Ria Services でのみサポートされている可能性が高い)
- 関連するエンティティの変更を (データ バインディングではなく) プログラムで監視するなどの一部のタスクは困難です。
- 添付されたエンティティからコンテキストを取得するなど、本当に単純であるべきいくつかのことは困難です。
- すべてのクエリは単一のリクエストであり、(CRUD の) 残りの CUD のみがバッチ処理されます。
- 通常の CUD 操作とともに呼び出すカスタム メソッドは非常に限られています。特に、コンテキスト全体をキャンセルせずにスケジュールされたものをキャンセルすることはできません。そのため、私がそれらを使用したかったほとんどの場合、それらはほとんど役に立たなくなりました。
- DomainDataSource を使用するかどうかを決定する必要があります。これは、多すぎたり少なすぎたりする野獣です。プログラムですべてをフェッチすることもできますが、この xaml ヘルパーを使用すると、非常に迅速に接続できるものもあります。
- エンティティを分離ストレージにシリアル化するための組み込みサポートはありません。
- サポートされているプラットフォームは Silverlight (および私が信じている Javascript) のみです。WPF はありません。(編集: これは Open Ria Services 向けに計画されています - 特に、BreezeJS を提供できるはずです)
Data Services は古い (と私は思う) ので、詳しく調べる必要はありませんでした。しかし、私は最近、DevForce の機能リストにざっと目を通しましたが、経験からは何も言えませんが、エキサイティングに聞こえると思います。
(編集:ここでColin Blair による RIA サービスと WCF の非常に知識豊富な比較を見つけました。)
アーキテクトは、自分の製品を RIA サービスと比較します (ここ) 。私は彼の論点のいくつかを取り上げましたが、すべてではありません。
全体として、RIA Services は未加工の WCF よりも明らかに優れていると言えますが、それよりも優れたものが必要であることも明らかです。それが DevForce であることを願っています。