まず第一に、プロジェクトのレイアウトに関して万能のサイズはないことを理解していますが、mvc に移行しているので、しっかりした基盤から始めたいと思っています。
現在、私はこれまでのところ、asp.net mvc プロジェクト構造と n 層および依存性注入 (ninject) に本当に苦労しています。私は、スポーツ ストアを 2 つのプロジェクトに分割する Pro Asp.net Mvc 3 Framwork を読んでいます。
これまでのところ、私のプロジェクトは以下のアウトラインのようになるはずだと思います
Web UI (Asp.Net Mvc)
サービス層
- サービス インターフェイス (要約)
- サービス (サービス インターフェイスの具体的な実装)
データレイヤー
- データ インターフェイス (要約)
- データ (サービス インターフェイスの具体的な実装)
では、私のエンティティ/モデルはどこにあるのでしょうか? それらを Web UI から移動する必要があると思いますが、どこに収まるかは完全にはわかりません。
Microsoft のプロジェクト Silk が最初に行ったように、レイヤーごとに個別のエンティティを作成し、automapper のようなものを使用してデータ エンティティとサービス エンティティ間をマッピングしますか (これは、目的の分離を達成するためのかなりのオーバーヘッドのようです)。または、他のレイヤーが参照するエンティティレイヤーになります。このレイヤーには、強く型付けされたデータセットまたは Plain Old C Objects のいずれかが含まれる可能性があり、インフラストラクチャのタイトルの下にある可能性があります。これらはレイヤー間で受け渡され、ビュー モデルを介して Web Ui レイヤー内でカスタマイズされます。
また、Ninject を使用している場合は、コンポジション ルート (この場合は Web Ui プロジェクト) 内で構成する必要があります。
これは、私がアクティブにしようとしている分離を無効にするすべてのプロジェクトへの参照を追加することを意味します。