Где разместить сервисный слой

Я использую 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 ответ

Решение

Разделение слоев не требует физически отдельных сборок. на самом деле, чем больше у вас сборок, тем сложнее / обременительно управлять решением. разделение слоев является логической проблемой. может быть, он разделен пространством имен или соглашением об именах.

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?

это может быть одно использование для сервисного уровня, но это не обязательно. Термин "услуги" стал чрезмерно употребляться в последние несколько лет до такой степени, что он почти ничего не значит.

цель наложения вашего приложения состоит в том, чтобы позволить приложению адаптироваться к изменениям. это очень расплывчатое утверждение, но это все, для чего он предназначен. слои допускают инкапсуляцию, а инкапсуляция допускает изменения.

Другие вопросы по тегам