0

私は、次の層を持つ N 層の .NET アプリケーションに取り組んでいます。

  • プレゼンテーション
  • 応用
  • ドメイン
  • インフラストラクチャ (永続性と電子メールなどの一般的なユーティリティ機能を含む)

申請のある時点で、申請が承認されました。承認されたら、次の 4 つの手順を実行する必要があります。

  1. リクエストで発行された製品に製品タグ コードを割り当てます。
  2. リクエストのステータスを「処理中」から「注文完了」に更新</li>
  3. 製品の受け取り準備が整ったことを示す電子メールをリクエスタに送信します
  4. リクエスタのマネージャに電子メールを送信して、従業員に与えられたものと、製品に対して承認されたリクエストのコピーを通知します

上記の手順は、アトミック操作の一部である必要があります。つまり、すべてを実行する必要があります。そうしないと、アクションがキャンセルされます。私は、次のようにタスクを実行するように要求リポジトリと永続層に指示するアプリケーション層を持たせることを考えています:

  1. 作業トランザクションの単位として手順 1 と 2 を実行するためのリクエスト リポジトリのアプリケーション層リクエスト
  2. インフラストラクチャ層がステップ 3 と 4 を実行するためのアプリケーション層要求。

アプリケーション層がこれを行うことになっているかどうかは正確にはわかりません。最初の 2 つのアクションでは、ドメイン層で行うことを避けてきたリポジトリに接続する必要があるためだと思います。最後の 2 つのステップには、依存関係が注入されたインスタンスを介してドメイン層が対話できるインフラストラクチャ層が含まれます。このロジックに従って、アプリケーション層はドメイン層に何も要求していません。これは、アプリケーション層がある場合、このようなマルチステップ プロセスの場合の通常の方法ですか? それとも、ここで何かを逃しましたか?

Windows ワークフローと呼ばれるフレームワークを認識していますが、この複数ステップのプロセスでは処理ステップに沿って人的介入が行われず、数日間待機する可能性があるため、この場合にそれが役立つかどうかはわかりません。また、必要がなければ、アプリケーションを過度に複雑にしたくありません。

前もって感謝します。

4

1 に答える 1