私の ASP.NET MVC Web アプリケーションには、次のものがあります。
LINQ to SQL によって作成されたドメイン モデル
などのリポジトリ
UserRepositoryとOrderRepositoryなどの IQueryable 拡張メソッドとしての IQueryable Fluents
public IQueryable<Order> GetNewOrders(this IQueryable<Order>)などのサービス
UserServiceとOrderServiceなどのユーティリティ クラスと拡張メソッド
CryptoUtility(ハッシュなどを行う)および文字列などの拡張機能MVC View ごとに特別な ViewModels
ASP.NET MVC プロジェクト自体 (コントローラー、ビュー)
私のケースに最適なプロジェクト構造/組織を探しています。特に、異なるアセンブリに分離し、これらのレイヤー間で依存関係がどのように見えるかを探しています。残念ながら、Web リソースはこれについて詳しく説明していません。
1 つのヒント: 現在、リポジトリ、サービス、IQueryable Fluents などは、ドメイン モデルの実装に対して直接動作します。それらのインターフェイス定義はありません。不要だと思っていたのですが、これは疎結合に必要なのでしょうか?私のサービスにはインターフェース (IOrderService など) があり、私のリポジトリは IRepository<T> を実装しています。
これを簡潔な方法で整理すること、特にどの層が何とアセンブリの組織に依存するべきかについてのあなたの意見に感謝します。ありがとうございました!