2011-09-01 5 views
19

私はアジャイルなMVC3プロジェクトに取り組んでいますが、それはかなり大きくなり始めています。具体的には、ユーザーがたくさんの設定を行うことができる管理セクションです。これは私の最初のMVC3プロジェクトです。エリアを使用するのが理にかなっていますか?MVC3いつエリアを使用しますか?

管理者のような特定のセクションのコントローラは、領域に分割して個々の管理操作用のコントローラを作成する前に、どれくらいの大きさが必要ですか?

また、領域を使用する場合は、すべての領域を使用するか、領域が必要な領域のみを使用するかをリファクタリングする必要がありますか?

答えて

19

デベロッパーと同じように整理する方法については多くの意見がありますが、私の見解は次のとおりです。

コントローラは、ビューとの対話のみを担当する必要があります。つまり、モデル・オブジェクトのインスタンス化と移入、ビジネス・オブジェクトやデータ・アクセス・レイヤーからのデータの取得、ページからのリクエストへの応答(フォーム送信、AJAXリクエスト、動的リソース作成メソッド/クラスへのインターフェース(CAPTCHAやその他の動的あなたがその哲学に固執するならば、それらのサイズと複雑さはあなたの見解を決して超えてはいけません。

エリアエリアを使用してアプリケーションをサブアプリケーションに分割する傾向があります。たとえば、サイトは、などのディスカッション・フォーラム、製品カタログ、企業情報、サポートデータベースを有していてもよいすべてが別の領域のようになります。

/areas/forum/... 
/areas/product/... 
/areas/company/... 
/areas/support/... 

次に、各エリアには、次のものがあります

/areas/support/{views|controllers} 
/areas/support/search/ 
/areas/support/contact/ 
/areas/support/knowledgebase/ 

など

ただ、各フォルダは、ウェブサイトの明確な「面積」を表しWebフォームのサイトのように、領域は、あなたが共通の場所になどに関連するコントローラ、ビューを、維持することができます組織の別のレベルを提供し、同様の方法で使用する必要があります。

+0

詳細な回答ありがとうございます。これは役に立ち、私は次の反復で領域を実装するつもりだと思います。 – shuniar

0

コントローラー名を別に制御して再利用する必要があるときに最も実用的です。管理サイト、ブログの部分などに使用できるように

8

という別個の関心事をアプリケーション内で区別するために使用します。特に、領域ごとに一意の認証やレイアウト/スタイリングが必要な懸念事項を分離します。例えば、私は、ある種の「モジュール」を持つアプリケーションに取り組んでいます。各モジュールはmvc領域であり、各モジュールはmvc領域でもある設定セクションです。このアプリケーションには3つのモジュールがあるため、合計6つの領域と6つのユーザー権利があります。これにより、各モジュールは新しい「マスターページ/レイアウト」(外観)と特定のセキュリティレベルを持つことができます。

これはコードの分離にも役立ちます。 AreaAのコードはAreaBのコードとは関係ありませんが、AreaAとAreaBはプロジェクトのルートにある共通コードを使用することがあります。

サイトの非エリア部分には、ユーザーログイン、エラーページ(404など)、モジュールを入力するメインの「ランチャー」領域、例外処理、その他のクロスカットのようなものがありますmvc領域のどこかで

関連する問題