私は次のように階層化されたアプリケーションを作成しています。
DB<->DAL<->BL<->サービス<->プレゼンテーション
参照されるのはそれだけです。つまり、プレゼンテーションには DAL への参照がありません。
クライアントのために作成する新しいアプリがあり、そのクライアントは私にはなじみのないものを提案しています。つまり、WRITE フローは SL を通過しますが、データベースからデータを読み取るには、DAL に直接、プレゼンテーションに linq クエリを含める必要があります。それは奇妙に思えますが、私のやり方は時代遅れであり、私のやり方と彼らの提案されたやり方は本質的に同じものだと言われています。
また、私のビジネス ロジックは通常、別のプロジェクトである BL に存在します。しかし、クライアントは、ビジネス ロジックが DTO オブジェクト自体にあることを望んでいます。
これは正常ですか?これは基本的にドメイン駆動開発か何かですか? サービス層メソッドの私の考えとは対照的に、フォームのデータを取得するための linq 呼び出しがプレゼンテーション層にあるのは奇妙だと思います。
public MyPersonObject GetPersonByPersonId(int personId)
次に、得られたものにいくつかのルールを適用する可能性のあるビジネスの同じメソッドと、Linq を持つ DAL の同じメソッドです。