2

私はこの問題についてしばらく考えてきましたが、受け入れられる解決策が思いつきません。非常に大きくなる予定のアプリケーションがあります。このため、モジュール化しようとしています。MVC4に基づいています。ORM を使用するか、自分ですべてをマッピングするかはまだ決めていません。次の構造にしたいと思います。

----------------------
| Database
----------------------
| Data/Data Access Layer (Class Library) (Objects reside here)
----------------------
| Core MVC Project (User and Session are stored here)
----------------------
| MVC Modules

UpdatedByおそらくデータ/データアクセスレイヤーで、フィールドの検証をデータベースにできるだけ近づけたいと思います。問題は、 を に保存し、クラス ライブラリ ( がない場合) で検証を行いたいuserことSessionですSession。私もなるべく通り過ぎないようにしたいですuser。ユーザーを に保存しSession、データ アクセス層が に渡されずにその情報にアクセスする方法はありuserますか? これをエレガントに行う方法に関する推奨事項はありますか?

編集:コアMVCプロジェクトがオブジェクトを呼び出すだけで、データレイヤーがオブジェクトを検証し、どのユーザーがそれを変更または作成したかを把握し、DBに保存しますvalidationCRUDSave()

編集 2:データ層が MVC 層にまったく依存しないことが不可欠です。

4

2 に答える 2

1

アプリケーションでこのような構造を使用する場合、アプリケーション全体で使用できるいくつかのコア インターフェイス ( などICurrentUserProvider)を定義できます。アプリケーションの特定の部分への密接な結合または依存関係。

プロジェクトの構造

Web プロジェクトが初期化されると、DI フレームワークを初期化して、コントローラーに依存関係が注入されるようにすることができます。こうすることで、コントローラーは必要なビジネス レイヤー サービスを取得し、それらのビジネス レイヤー サービスには必要なデータ レイヤーの実装があり (実際には直接依存することはありません)、データ アクセス オブジェクトは、データ アクセス オブジェクトが誰であるかを伝えることができるサービスを取得します。現在のユーザーは(MVCレイヤーに直接依存することなく)です。

于 2013-08-29T17:49:17.417 に答える