2

構築中の 1 つの Silverlight アプリケーションのアーキテクチャと設計について決定する必要があります。アプリは要件/問題追跡用です。
要件:

  • SL4
  • ASP.NET (MVC)
  • 完全信頼の共有ホスティング環境、IIS7

私はを頂きたい:

  • CQS (CQRS) スタイルの分離、クエリ、およびコマンド
  • 1 つのデータベース、「実際の」CQRS のように 2 つのストレージは必要ありません。競合状態もスケーリングの問題もありません。RavenDbが使えたらいいのに
  • コマンドについては、サーバー側で処理され、クライアント側 (SL) で公開される一方向のコマンド DTO オブジェクトを使用します。これは、「CQRS、CRUD を停止し、ドメインを愛してください」に関する NDC11 セッションに触発されたものです。
  • データをクエリし、DataService を介してエンティティを公開する RIA Services スタイルが好きですが、実際には EF と NH (リレーショナル モデル) だけで機能します。
  • データのクエリに RavenDb を使用するにはどうすればよいですか? 私は共有ホスティングを使用しているため、埋め込みモードを使用する必要があり、ravendb.exe プロセスを開始できません。asp.net アプリ内でホストする必要があります。私は実際に RavenDb の経験がありません。これは学習プロジェクトのようなものです。
  • WCF で RPC SOAP エンドポイントを公開したくないのですが、REST などのより良い解決策はありますか?

したがって、コマンド側は問題ではありませんが、Silverlight アプリからデータをクエリするための RavenDb、共有ホスティング、および簡単な REST スタイルの使用方法がわかりません。RavenDb は、すぐに使えるようなものをサポートしていますか?

Ayende が答えたように、RavenDb は asp.net で実行でき、Silverlight からクエリを実行できます。質問は今、少なくとも読み取り側にとって、これは良いアプローチですか? Db は、サーバー側のロジック (サービス/アプリ層) なしでクライアント アプリに公開されるため、誰でもデータを変更できます (認証されている場合)。

コマンド (書き込み) を Silverlight から実行するか、コマンド DTO オブジェクト (DelegateToOtherMemberCommand) をサーバーに転送して、そこでドメイン オブジェクト (Ticket.AssignTo(member)) で実行しますか?

4

1 に答える 1

2

Hrvoje さん、共有ホスティングで RavenDB を使用できます。通常、RavenDB をアプリ内の仮想ディレクトリとしてセットアップし、次のように IIS でセットアップします: http://ravendb.net/documentation/docs-deployment-iis

次に、RavenDB を SL クライアントに公開し、Raven.Client.Silverlight アセンブリを使用するだけです。

于 2011-07-04T13:03:29.917 に答える