4

ご挨拶、

質問に自分で答えるのに十分なほど厳密に調査していないことを事前にお詫びしますが、時間がかかると思います。学習にもっと時間を費やす前に、今すぐ知りたいと思います. 最初の調査では何も見つかりませんでした..

多層アーキテクチャ (データ層、ロジック層、プレゼンテーション層) を既に使用しているのに、なぜ ASP.Net MVC を使用するのでしょうか? コントローラーがロジックレイヤーよりも多くのパワーを持っているという事実を除けば。

MVC のモデル部分で nHibernate とすべてのデータ アクセス クラス、エンティティ、およびマッピングを使用できると考えるのは正しいですか?

コントローラーを使用する場合、多くのロジックを別のクラスに分離して、複数のコントローラーから呼び出すことができるようにするのが最善ですか? または、すべてをアクションにするのではなく、通常のメソッドだけにしたいという事実を考慮して、コントローラー自体から呼び出すこともできます。

ありがとう

4

5 に答える 5

8

MVC は N 層を置き換えるものではなく、プレゼンテーション層を整理する方法です。

コントローラーがロジックレイヤーよりも強力だとは言いません。代わりに、(プレゼンテーション レイヤーの一部としての) コントローラーは引き続きロジック レイヤーを呼び出す必要があります。

コントローラーは、ビュー用のデータのみを準備し、ビューからのアクションを処理する必要があります。引き続き BLL を使用する必要があります。

于 2009-01-04T11:05:20.783 に答える
3

はい、NHibernate エンティティをビューに渡すことができます (そうする必要があります)。

これではトラブルに巻き込まれます。フラット化された null セーフな DTO 別名ビュー モデルを使用する必要があります。

于 2009-01-04T12:17:27.770 に答える
2

Damien さん、次の 2 つの投稿をお読みください。

ファットコントローラー

ASP.NET MVC フレームワークのアーキテクチャ ビュー

于 2009-01-04T12:57:12.230 に答える
1

N 層はアーキテクチャ パターンであり、アプリケーションの重要な領域の再利用、関心の分離、およびスケーラビリティを可能にします。非 UI レイヤー (ビジネス、データ、ファサードなど) は単体テストを行い、UI に依存しない必要があります。

UI レイヤーは、Silverlight、ASP.NET MVC、Web フォームなどのレイヤーの 1 つにすぎません。

MVC は、MVP と同様に、UI レイヤーのテスト容易性を向上させるデザイン パターンです。ASP.Net MVC は、このパターンをサポートおよび強制するすぐに使えるフレームワークです。パターンは、このフレームワークのずっと前から使用されていました。

しかし、これは単なる UI レイヤーの選択です. コントローラにはデータベースやサービスなどとのやり取りがあってはなりません. モデルを使用してビューの状態を制御します. ビジネスロジック, 永続性, トランザクションなどを制御するべきではありません.

于 2010-03-29T22:41:22.443 に答える
0

すでに多層に移行している場合に使用する理由についての質問に答えると、URL がより整理され、検索エンジンに適したものになるからです。また、ASP.Net で一般的な他のパターンよりも標準的なパターンです。これにより、他のプラットフォームで既に MVC を使用している開発者にとって、より使いやすくなります。

于 2009-01-04T14:36:08.473 に答える