在哪里放置服务层

时间:2011-12-28 11:45:45

标签: c# validation service-layer fluentvalidation

我正在使用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进行整合是否可以接受。

谢谢!

1 个答案:

答案 0 :(得分: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?

可以是服务层的一种用途,但不一定如此。 “服务”一词在过去几年里已经被过度使用,几乎没有任何意义。

分层应用程序的目的是允许应用程序适应变化。这是一个非常模糊的陈述,但这就是它的设计目的。层允许封装和封装允许更改。