ベスト プラクティス アプローチに従って最後の大規模な MVC プロジェクトを構築しようとしましたが、自分が何をしているのかよくわかりませんでした。
Data、Business、および Web (MVC) プロジェクトがありますが、コントローラーにはほとんどのコードが含まれており、データ層には NHibernate が使用されており、あまりにも多くのことを担当するリポジトリがいくつかあります。他の 2 つのプロジェクトには属していません。それは機能しますが、もっとうまくセットアップできたかもしれないと感じています。私が不満に思っている主な点は、ファット コントローラーとリポジトリです。
適切なサイズに成長する可能性のある新しいプロジェクトを開始しているので、デザインを前もって準備するためにもう少し時間を費やしています. もう少し読んだ後、集約ルートごとにリポジトリを作成し、プレゼンテーション層の各コントローラーのビジネス層にサービスを作成しようとしています。
私の最初の希望は、コードの大部分がサービスに入れられ、これがより小さなリポジトリと相まって、コントローラーとデータ層を薄く保つことでした。ただし、これまでのところ、これは起こっていません。
私が読んだことはすべて、ビューモデルはビジネスレイヤーから返されるべきではなく、プレゼンテーションレイヤーに入力する必要があることを示唆しているため、現時点では、サービスレイヤーは主にデータレイヤーからプレゼンテーションレイヤーにモデルを渡しています。ビューモデルを準備するために必要なことを行います。そのため、私はまだファット コントローラーに加えて、シン ビジネス レイヤーとデータ レイヤーを持っています。
プレゼンテーション層もビジネス層とデータ層の両方を認識していますが、この分離のポイントの一部は結合を減らすことだと思いましたか?
私はこれをすべて間違っていますか?インターネットで読んだことをやみくもに従うのをやめて、ビジネス レイヤーでビュー モデルを準備して、コードの大部分をそこに移動できるようにする必要がありますか? 従来の ASP に戻す必要がありますか? :)