今私は、モデルプロジェクト、サービスプロジェクト、ユーティリティプロジェクト、および1つ以上のドメインモデルのリポジトリとして機能するいくつかのDatastoresプロジェクトに沿ってASP MVC Webアプリケーションを用意しています。私は各層の分離にかなり満足していますが、私はサービス層からウェブアプリに戻るべきものについています。サービスからASP MVC Webアプリケーションに戻るのは何ですか?
たとえば、ユーザーが登録しようとすると、RegisterViewModelがコントローラによって受信されます。個々の部分(電子メール、パスワードなど)は、guid、status、createdateなどを使用してメンバドメインオブジェクトを構築するサービスレイヤに送信され、格納用にリポジトリに送信され、最後にWebアプリケーションのMemberオブジェクトを/ Member/{guid}。
しかし、電子メールがすでに存在する場合、サービス層はWebアプリケーションにどのように通知する必要がありますか?より複雑な状況では、複数のドメインオブジェクトとビジネスルールの存在/妥当性をチェックする必要があるかもしれないので、複数のエラーを一度に返さなければならないでしょう。さらに、例外をWebレイヤにバブルさせたくないので、サービスレイヤはすべての例外をトラップしますが、どのようにWebレイヤに通知する必要があります。
すべてを返す方法が見つかったとしても、Webレイヤーはすべての処理を負担し、ユーザーにさまざまなフィードバックを提供します。コントローラコードは大量になり、エラープルーンになります。プレゼンテーションのサービス結果に関するベストプラクティスはありますか?私は別のサービス層を排除し、コントローラ内にコードを持っているべきですか?どんな考えも歓迎されます。
ありがとう。私はたぶんこのようなことをやろうとしますが、おそらく各サービスコールのためにカスタマイズされた結果を持っています。 –