4

私は巨大なMVCアプリケーションを持っていますが、残念ながらMVCエリアは初期開発では使用されませんでした。アプリケーションは非常にモジュール化されているため、Areasを使用するための適切なケースがあると考えています。コード全体を「エリア」構造に移動するのはどれほど簡単か難しいか..私が注意しなければならない大きな課題/コードのやり直しなどはありますか?新しいエリアを作成し、コントローラービューモデルを適切なバケットに移動できますか...そしてそれは正常に機能しますか?私は物事を単純化しすぎていますか?誰かが以前にこのルートをとったことがあるなら、フィードバック、コメントをいただければ幸いです。

4

1 に答える 1

6

アプリケーションは、領域で問題なく動作します。分離されているため、保守が容易になり、論理的に表示できるようになります。ただし、いくつかのジレンマに遭遇することになります。

名前空間

最初のものはおそらく名前空間でしょう。接続されたロジックまたは依存関係のあるモデルを分離するときに、依存関係のあるクラスがエリアに配置されている場合、それらの名前空間参照を変更する必要がある場合があります。幸い、Visual Studioは、単純な「解決」機能でこれらを処理できます。問題があるすべての場所をコンパイルして表示しようとすると、コンパイラはスローするはずです。これらすべての出来事がどこにあるかを予測するのは難しいかもしれません。ただし、多くの異なるコントローラーで使用されるもののほとんどが1つの場所にある必要があるため、必要なusingディレクティブは多くない可能性があります。

ルーティング

エリアを使用する場合は、使用するほぼすべてのアクションリンクを変更する必要があります。新しい領域を表すためにそれらを変更する必要があります。

エリアなし(ベース内):

@Html.ActionLink("Label For Link", "ActionName", "ControllerName", new { area = "" }, null)

特定の領域:

@Html.ActionLink("Label For Link", "ActionName", "ControllerName", new { area = "SpecificAreaName" }, null)

return RedirectToActionまた、持っているコードを変更する必要があるかもしれません。

ベースエリア:

return RedirectToAction("ActionName", "ControllerName");

特定のエリア:

return RedirectToAction("ActionName", "ControllerName", new { Area = "SpecificAreaName" });

これ以外は、あなたは良いはずです。

于 2012-08-27T23:00:37.097 に答える