2009-10-20 19 views
8

私は、ASP.NET MVCを使用して私たちのプロジェクトに本当に迷惑をかけている問題について、より多くの議論を見つけることができないのに驚いています。より大きいサイトのASP.NET MVCプロジェクト構造

複数のプロジェクトを持つVisual Studioソリューションをどう対処できますか? MVCフレームワークには、メインプロジェクトにモデル/ビュー/コントローラフォルダがあります。しかし、ソリューションを論理的なグループ分けに沿って複数のプロジェクトに分割し、モデル/ビュー/コントローラーを一緒に持っていこうとしたらどうでしょうか?プロジェクトの最後まで考えると、これらの各フォルダには多くのクラスがあります。メンテナンスを助けるきれいに整理された構造を描くものではありません。クラスを関係するプロジェクトに移動する方法や、少なくともフォルダ構造を使用して組織を支援する方法が必要です。

メインプロジェクトで使用されているものと同じ名前空間を他のすべてのプロジェクトで使用するオプションが1つあると仮定しますが、私はそのアプローチの大きなファンではありません。私たちは通常、ネームスペースを定義するときに取ってきました。

M/V/Cフォルダの内部にサブフォルダを作成し、フォルダ名を名前空間に転送することはできません。私はそのクラスが見つかったと仮定していますか?

私たちのプロジェクトに関するいくつかの背景:これは、ユーザーが実行できるビジネストランザクションが多い(約50-60)公開されているWebサイトです。各取引には、サイトが提供するさまざまなサービスを実現するために、ユーザーがナビゲートする一連のWebページがあります。私たちは、トランザクションごとに1つのコントローラを使用しています(トランザクションごとにコントローラを定義する必要があるのか​​、それとも上位のグループを使用してコントローラの数を減らすべきかについて長い議論がありましたが、ウェブで(http://codebetter.com/blogs/ian_cooper/archive/2008/12/03/the-fat-controller.aspx)遭遇しました。

いくつかの推奨事項はありますか?他の人がこの問題を彼らが満足している方法で解決してもらうか?

ありがとうございました Jon。

+0

単一 アプリケーションに一緒に取り組んで複数の チームを容易にします。 ASP.NET MVCは合成能力が弱いです。 –

答えて

0

私はいつも「モデル」フォルダーを削除し、私のビジネスロジック層とデータアクセス層を表す別のクラスライブラリを参照します。私のコントローラが私の見解とは別のプロジェクトに保管されているソリューションもあります。私は大規模なアプリケーションでは、単一のプロジェクトモデルが不適切であることに同意します。より小さなアプリケーション、特にモデルコードを他のアプリケーションと共有する必要がある場合でも、モデルクラスを実際のMVCプロジェクトに入れることは悪い考えです。

+0

あなたのクラスを分けることはかなり良いですが、ドメインモデルとは異なるMvcプロジェクトのモデルを保持する必要があります。 –

3

エリアは、Asp.Net MVC2でサポートされています。

スコットグーにはArea Support hereについてのブログがあります。

彼の投稿から。

各領域は主 アプリケーションによって参照され、次いで ができる別個のASP.NET MVCプロジェクトとして実装することができます。これは、大規模な アプリケーションを構築する際 複雑さを管理するのに役立ちますし、COM posable WebアプリケーションのためのFubuMVCを見てください一緒に

関連する問題