1

これが状況です。レガシーシステムをサポートするには、ユーザーがログインするたびにテーブルに挿入する必要があります。これは基本的にCRUD操作であるため、リポジトリ/エンティティ/コマンド/イベントを作成することは実際には意味がありません。これは、ビジネスルールとはまったく関係がないためです。CQRSコマンドを作成する唯一の利点は、このデータベース書き込みがそのモデルで非同期に発生する可能性があることです。どちらがより良いルートですか?

  • CQRSを使用してから、ストアドプロシージャを呼び出します。そのコマンドを処理するとき?
  • コントローラでデータベースを直接呼び出すだけです(私はasp.net mvcを使用しています)
4

1 に答える 1

3

再生の可能性のためにイベントを使用している(そして永続化している)場合は、イベントハンドラーの一部としてレガシーDBへの書き込みを行うのが理にかなっています(「ゲートウェイ」と考えてください)。将来このイベントを再生する必要がある場合は、レコードを再挿入しない偽のハンドラーに交換できます。

コントローラは、実際には、HTTPリクエストとドメインのコマンドの間の変換レイヤーである必要があります。DBへの書き込み(レガシーの非ドメインアクセスでさえ)は、私見では実際には意味がありません。ロジックをイベントハンドラーに入れると、相互作用が非常に明確になります。

于 2010-06-15T03:35:15.423 に答える