Это просто мнение.
Объекты домена являются частью бизнеса. То же самое для контекстов и репозиториев.
На самом деле я хочу сказать, что OR/M — это абстракция над реляционной базой данных или другими типами хранилищ, поэтому они могут действовать как объектно-ориентированное хранилище.
Это OR/M отбрасывает уровни данных в современных программных решениях.
Репозитории, контекст домена, объекты домена являются частью бизнес-уровня.
Единица работы — это шаблон проектирования программного обеспечения, и он предназначен не только для работы с базами данных или уровнем данных, но и для управления другими вещами, такими как сетевая транзакция. Я бы предложил включить это в какое-то пространство имен, например «YourCompany.YourProject.Patterns.UnitOfWork» или что-то в этом роде.
Сервис не имеет ничего общего с данными. Я хотел бы предложить пространство имен "YourCompany.YourProject.Services".
Еще один момент заключается в том, что ваши POCO, по-видимому, тоже работают как DTO, потому что вы используете их везде, даже для передачи данных через слои и/или уровни. Это может быть нормально в реализации «голых» объектов или чего-то в этом роде, но вам нужно обратить внимание на факт использования объектов домена в качестве DTO, потому что они могут содержать свойства, информацию, поведение или OR/M, проксирующие скрытые члены, которые могут влияет на вес объектов - использование памяти -.
Принимая во внимание последний абзац, я бы посоветовал вам работать с DTO на любом уровне поверх бизнеса, чтобы ваши службы возвращали DTO с определенным набором свойств, которые потребители услуг должны работать нормально.
DTO, реализации шаблонов и подобные вещи, общие для всех проектов, часть вашего решения должна жить в каком-то проекте под названием «YourProject.Shared», и эта сборка не должна ссылаться ни на какой уровень: она должна оставаться нейтральной по отношению к уровню, поэтому ссылайтесь на нее везде не заставляет иметь бесполезные зависимости.
Ну, это мое мнение и способ работы в моих проектах.
person
Matías Fidemraizer
schedule
03.03.2011