4

これを尋ねるのはちょっとばかげているように感じますが、しばらく探していて、まだ完全な答えが見つかりませんでした.MVC Webサイトを持っているとしましょう。

アーキテクチャの決定: ASP.NET MVC & Entity Framework

WebSite (MVC)
   Controllers
   Views
   Content (scripts, css, images, etc.)

Presentation Models
   View Models
   Model mappers

Web Library
   Extensions (to MVC/Web classes)
   Helper Classes
   Attributes

Business Logic
   Rules  

Data (if complex, use separate subfolder per context/repos/models)
   Entity Models
   Repositories 
   Data Context

General Library
   Extensions
   Helper Classes

1) データを検索するためのリンク クエリはどこに置くべきですか?

別のアプリケーション (モバイル アプリまたは winform アプリとしましょう) で必要に応じて再利用できる検索オブジェクトを使用して、BL で一般的な検索を作成し、プレゼンテーション モデル プロジェクトを通じてマップされる一般的な検索オブジェクトを返すことを考えました。クエリが「ビジネス ロジック/ルール」であるかどうかはわかりません。

または、このすべてのクエリをプレゼンテーション モデル プロジェクトで直接実行する必要がありますか? もしそうなら、他のデバイスなどに同じクエリを再利用できるように、最初に一般的なオブジェクトを作成する必要があると思います。

2) この上にモバイル アプリケーションを追加したいとしましょう。Web とモバイルの両方で同じプレゼンテーション モデル プロジェクトにすべてのビューモデルを配置する必要がありますか?

3) Web フローからのすべての呼び出しは、入力の検証と CRUD 操作であっても、プレゼンテーション層を通過する必要がありますか?

お時間をいただきありがとうございます

4

1 に答える 1

0

ここで、あなたがここでクエリを作成した点について、私の意見を述べます。1) データを検索するためのリンク クエリはどこに配置すればよいですか?

* Linq クエリが何らかの検索条件などに関連付けられている場合は、それらを BL レイヤーで使用します。* 2) この上にモバイル アプリケーションを追加したいとしましょう。Web とモバイルの両方で同じプレゼンテーション モデル プロジェクトにすべてのビューモデルを配置する必要がありますか?

* そうする必要があります *

3) Web フローからのすべての呼び出しは、入力の検証と CRUD 操作であっても、プレゼンテーション層を通過する必要がありますか? * 常に検証は、プレゼンテーション層と BL の両方で行う必要があります。これにより、後で WCF 用にサービスを公開するときに例外なく機能します。プレゼンテーション層の検証をスキップしても問題ありません。ただし、BL 検証は常にフェールセーフです*

于 2013-11-10T13:23:14.507 に答える