8

ASP.NET MVCを使用したプロジェクトで私を本当に悩ませている問題について、これ以上の議論が見つからないことに驚いています。

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

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

少なくともM/V / Cフォルダー内にサブフォルダーを作成し、フォルダー名を名前空間に引き継ぐことはできないと思います。その時、クラスが見つかると思いますか?

私たちのプロジェクトの背景:これは、ユーザーが実行できる多くのビジネストランザクション(約50〜60)を備えた公開Webサイトです。各トランザクションには、サイトが提供するさまざまなサービスを実行するために、ユーザーがナビゲートする一連のWebページがあります。トランザクションごとに単一のコントローラーを使用しています(トランザクションごとにコントローラーを定義する必要があるかどうか、またはより高いレベルのグループ化を使用してコントローラーの数を減らす必要があるかどうかについて長い議論がありましたが、いくつかの情報がありますWeb( http://codebetter.com/blogs/ian_cooper/archive/2008/12/03/the-fat-controller.aspx )で遭遇したことで、この決定が下されました。)

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

ジョンありがとう。

4

3 に答える 3

3

エリアをご覧ください。

Areasは、コントローラーを論理フォルダーに編成するMonoRailから借用した概念です。

http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx

于 2009-10-20T17:28:26.980 に答える
3

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

Scott Gu のブログでエリア サポートについて説明しています。

彼の投稿から。

各領域は、メイン アプリケーションから参照できる個別の ASP.NET MVC プロジェクトとして実装できます。これは、大規模なアプリケーションを構築する際の複雑さを管理するのに役立ち、複数のチームが 1 つのアプリケーションで一緒に作業するのを容易にします。

于 2009-10-20T18:27:25.643 に答える
0

私は常に「モデル」フォルダーを削除し、ビジネス ロジック層とデータ アクセス層を表す個別のクラス ライブラリを参照します。また、コントローラーがビューとは別のプロジェクトに保持されるソリューションもいくつかあります。大規模なアプリケーションでは、単一のプロジェクト モデルは不適切であることに同意します。小規模なアプリでも、特にモデル コードを他のアプリケーションと共有する必要がある場合でも、実際の MVC プロジェクトにモデル クラスを配置することはお勧めできません。

于 2009-10-20T17:38:24.603 に答える