質問

ご挨拶、

この質問に自分で答えるほど十分に研究していないことをおAび申し上げますが、少し時間がかかると思います。学習にもっと時間をかける前に、今すぐ知りたいと思います。最初の研究では何も見つかりませんでした。

すでに多層アーキテクチャ(データレイヤー、ロジックレイヤー、プレゼンテーションレイヤー)を使用している場合、ASP.Net MVCを使用する理由コントローラがロジック層よりも多くの電力を持っているという事実を除いて。

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

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

ありがとう

役に立ちましたか?

解決

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

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

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

他のヒント

  

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

これにより、問題が発生します。平坦化されたnullセーフDTOまたは別名ビューモデルを使用する必要があります。

N層はアーキテクチャパターンであり、アプリケーションの主要な領域の再利用、懸念の分離、およびスケーラビリティを可能にします。 非UIレイヤー(Business、Data、Facadeなど)はユニットテストされ、UIに依存しない必要があります。

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

MVCは、MVPと同様、UIレイヤーのテスト容易性を高めるデザインパターンです。 ASP.Net MVCは、このパターンをサポートおよび実施する標準フレームワークです。 このフレームワークは、このフレームワークのかなり前に使用されていました。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top