2011-12-28 16 views
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つを使用することができますが、それはする必要はありません

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?

。ここ数年、 "サービス"という用語は、ほとんど何も意味がないほど過度に使用されています。

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

関連する問題