1

私は見回しましたが、ファイル/プロジェクトの構造に関するこの特定の質問に答えたものは見つかりませんでした。.NET MVC3プロジェクトの構造

私は、エンティティフレームワークを使用してMVC3サイトを持っています。依存関係解決を処理するためにStructureMapを使用する基本的な汎用リポジトリパターンに従います。

私の質問は、どのように私はプロジェクトをレイアウトしますか?私はデータベースをトラックの下の別のアプリケーションに公開したいと考えているかもしれません。

現在、私が持っている:

mySite.Web - EntityFramwork CodeFirst、リポジトリパターン

mySite.Web - MVCプロジェクトはまた、すべての依存関係の解決

mySite.Web.Dataを持っているが。テスト - テスト... :-)

自分のEntityFramworkモデルを自分のプロジェクトに移動する必要がありますか?もしそうなら、私のEntityContextFactoryのようなものはどこに行きますか?

おかげ

+0

これは主に主観的であるが、ここで私は何をすべきかです: App.Domain - ビジネスロジック(モデル、契約) App.Infra - データ/インフラ関連(マッピング、リポジトリ) App.Web.Mvc - フロントエンド(コントローラ、ビュー、IoC) App.Tests –

答えて

1

私はmySite.Domainと呼ばれる新しいプロジェクトを作成し、おそらくそのプロジェクト内のエンティティフォルダを作成し、そこに配置します。

I思いだけ店のドメイン内のエンティティとデータのプロジェクト内のすべてのリポジトリ、あなたdbcontextとエンティティcontextFactoryをしておきます。ここで

いくつかのサンプルプロジェクトは、あなたが(作者へのクレジット)を見ている可能性があります:

http://myfinance.codeplex.com/

https://github.com/darind/samplemvc

これはしかし大部分は主観的なものです。

1

はありません。この構造はgood.youがmySite.Webにパターンリポジトリを移動したり、そのための別のクラスライブラリプロジェクトを作成することであるが、それは必要ありません。

2

私は同じ問題があります - どのように新しいmvcプロジェクトをセットアップするには? 私の研究や他のユーザーの助けがある:良い構造のアプローチは、MVCアーキテクチャのドメイン駆動設計です。

good blog post for DDD

私の新しいプロジェクト構造は以下のようになります。

  • Presentation.Web(コントローラー、ビュー、ModelViews ...)
  • Presentation.Web.Utils(ヘルパーと拡張機能を。 )
  • Presentation.Web.Tests(Moq ..)
  • BusinessDomain.Services(DIのビジネスサービス)
  • BusinessDomain.Models(EFモデル...)
  • BusinessDomain.Tests(部品番号..)
  • CrossCutting.Common(定数、リソース、例外メッセージ...)
  • Infrastructure.Configuration(IOCブートストラップ、ApplicationConfiguration、ContainerExtensions ...)
  • Infrastructure.DataSource(DbContext、Repositorys ...)
  • Infrastructure.Tests(部品番号...)
関連する問題