2

私は、今後数年間で大幅に成長する可能性がある MVC 4 プロジェクトをまとめています。白紙の状態から始めるという贅沢と挑戦により、コントローラーとビューのルーティングと整理のベスト プラクティスを見つけようとしています。

MvcCodeRouting NuGet パッケージは魅力的で、使用する予定です。ただし、MVC エリアを利用することも賢明かどうかはわかりません。MvcCodeRouting が使用されている場合、MVC Areas は不必要なように見えますが、Areas によって提供される余分なコード編成が依然として望ましいかどうかはわかりません。

私の言いたいことを説明するために、この架空の採点アプリケーションを見てみましょう。次の高レベルの領域があります。

  • 公開ポータル
  • 認証された学生ポータル
  • 認証された教師用ポータル
  • 認証された管理者ポータル

各ポータルが 100 の異なるビューで終わるとしましょう (野心的にしましょう!)。その規模が実現されれば、MVC エリアは、各エリア内で MvcCodeRouting を使用して、コードを分割するための優れた方法のように思えます。または、好きなようにコードを整理して、MvcCodeRouting に面倒な作業を任せる必要があるかもしれません。

したがって、エリアと MvcCodeRouting のデザインは次のようになります (フォルダー構造)。

  • MvcWebProject
    • エリア
      • 管理者
        • コントローラー
        • モデル
        • ビュー
      • 公衆
        • コントローラー
        • モデル
        • ビュー
      • 学生
        • コントローラー
        • モデル
        • ビュー
      • 先生
        • コントローラー
        • モデル
        • ビュー
    • コンテンツ
    • コントローラー
    • スクリプト
    • ビュー

Areas のない MvcCodeRouting デザインは、次のようになります (フォルダー構造)。

  • MvcWebProject
    • コンテンツ
    • コントローラー
      • 管理者
      • 公衆
      • 学生
      • 先生
    • モデル
      • 管理者
      • 公衆
      • 学生
      • 先生
    • スクリプト
    • ビュー
      • 管理者
      • 公衆
      • 学生
      • 先生

これらの設計では、名前空間を介してクラスをさらに整理するために MvcCodeRouting が使用されることが暗黙的に示されています。

これらのあまりにも多くのデザインのうち、より良いアプローチはどれですか? なんで?さらに優れた別のアプローチはありますか?ポータル間でリソースを共有することは、設計によって簡単ですか、それとも難しいですか?

これは、コードのソリューション全体のフロントエンドにすぎないことに注意してください。したがって、この背後にあるサービス/ドメイン/データベース全体には、独自の特定のアーキテクチャがあります。この質問の目的のために、MVC でこれらのさまざまなアプリケーション領域をどのように設計する必要があるかに興味があります。

4

2 に答える 2

3

フォルダ編成のためだけに Areas を使用することはありません。代わりに名前空間を使用できるため、MvcCodeRouting では領域は完全に不要であり、両方を使用すると混乱する可能性があります。

MvcCodeRouting で使用できる他のフォルダー構造を提案させてください。

オプション1

  • MvcWebProject
    • 管理者
      • コントローラー
      • モデル
    • 公衆
      • コントローラー
      • モデル
    • 学生
      • コントローラー
      • モデル
    • 先生
      • コントローラー
      • モデル
    • ビュー
      • 管理者
      • 公衆
      • 学生
      • 先生
    • コンテンツ
    • スクリプト

オプション #2 これでは、ビューモデルを使用するコントローラーと同じディレクトリ/名前空間に配置できます。

  • MvcWebProject
    • コントローラー
      • 管理者
      • 公衆
      • 学生
      • 先生
    • ビュー
      • 管理者
      • 公衆
      • 学生
      • 先生
    • コンテンツ
    • スクリプト

MvcCodeRouting が変更しないことの 1 つは、Views フォルダーの場所です。

于 2013-01-14T17:58:13.433 に答える