4

フレームワークを使用してFluentValidationいます。そして現在、私はいくつかのバリデーターを持っています(エンティティごとに)。エンティティを別のアセンブリ(ProjectName.Domain)とバリデーターに保持しています。

リポジトリとコントローラーの間にメディエーターレイヤーを提示するサービスレイヤーについて読みました(http://www.asp.net/mvc/tutorials/older-versions/models-(data)/validating-with-a-service-layer -cs)。service layer同じアセンブリで保持しても大丈夫ですか?

私が理解している限り、サービスレイヤーの目的は、具体的な(または一般的な)リポジトリと対応するバリデーターを保持し、リポジトリアイテムの検証を行うことです。そのため、実装は異なる場合があります。私は正しいですか?

FluentValidation(またはフレームワークに依存しない)を使用してサービスレイヤーを正しい方法で作成する方法。または、基本エンティティをいくつかと統合することは許容されますかFluentValidation AbstractValidator class

ありがとう!

4

1 に答える 1

4

レイヤーを分離するために、物理的に分離したアセンブリは必要ありません。実際、アセンブリが多いほど、ソリューションの管理が難しくなります。レイヤーの分離は論理的な懸念事項です。多分それは名前空間または命名規則によって分けられています。

As far as I understand the purpose of service layer is to hold concrete (or possibly generic) repository and corresponding validator and make a validation over repository items. So implementations may vary. Am I right?

これはサービスレイヤーの1つの用途になりますが、そうである必要はありません。「サービス」という用語は、ここ数年で使い古されており、ほとんど意味がありません。

アプリケーションを階層化する目的は、アプリケーションが変化に適応できるようにすることです。それは非常に漠然とした声明ですが、それが行うように設計されているすべてです。レイヤーはカプセル化を可能にし、カプセル化は変更を可能にします。

于 2011-12-28T14:07:39.080 に答える