2009-03-25 3 views
0

私は3つのレイヤーに精通しています。モデル&コントローラを表示します。MVCで別々のレイヤーを維持する方法は?ビジネスレイヤーとセキュリティーレイヤーのようなもの

もう2つのレイヤーを分離したいと思います。セキュリティレイヤー&ビジネスロジックレイヤー 。

どうすればいいですか?

コントローラが大丈夫ですが、どのユーザがその特権を持っているとしますか?セキュリティ層&がこの層を通過すれば複雑なクエリがビジネスルールのように実行されるビジネス層に行きます。

だから、小さなコードで助けてくれますか?

答えて

2

実際には3つのMVCレイヤーはユーザーインターフェイスの観点からのみ適用できるので、2つの追加レイヤーは実際にモデルの一部です。

DDD(ドメイン・ドリブン・デザイン)型の設計では、コントローラがアクションが許可されている場合はセキュリティ・レイヤーのチェックを処理し、ビジネス・レイヤーに対してアクションを実行するアプリケーション・サービス(すなわち、コアドメインモデル層)、または「アクセス拒否」タイプのメッセージをコントローラに返送する。

また、アプリケーションサービスレイヤーを使用する代わりに、セキュリティチェックを内部的に(セキュリティレイヤーを呼び出す)ビジネスロジックレイヤーに直接呼び出すこともできますが、ビジネスロジックの複雑さによって異なりますセキュリティレイヤーへの権限チェックと混在させることはあまり明確ではないかもしれません。

+0

..あなたを助けるかもしれない?このリンクビジネスレイヤ(サービス層)

であること – cherouvim

+0

はい、それは私がDDDを意味するものです。明確にするために編集されました。 –

+0

DDDはアプリケーションアーキテクチャに本当に関心がありますか?ドメインモデリングだけを扱っていると思いました。 – cherouvim

0

MVCフレームワークはプレゼンテーションフレームワークであると想定されています.3層構造のアーキテクチャでは、プレゼンテーションレイヤーです。LINQ to SQLはデータアクセスレイヤーであり、代わりにプレゼンテーションレイヤーあなたは、ドメイン駆動設計を意味DDDすることにより link text

関連する問題