При создании многоуровневого решения я не хочу раскрывать свои бизнес-объекты, а вместо этого использую DTO. С другой стороны, я не хочу дважды определять объекты и постоянно писать копирующий код.
Теперь моя идея заключалась в том, чтобы написать DTO, которые содержат все необходимые поля и свойства, но без логики (только состояние).
Затем я производил свои бизнес-объекты из этих DTO, расширяя их с помощью своей бизнес-логики, работая со свойствами базовых классов DTO. Эти объекты также будут объектами, сохраняемыми в используемом ORM (NHibernate).
При таком подходе на стороне сервера я мог бы работать с бизнес-объектами и передавать их непосредственно клиенту (они являются производными, поэтому их можно преобразовать). Я бы не был вынужден раскрывать свою бизнес-логику таким образом и экономить много кода.
Считаете ли вы такой подход разумным?
С уважением,
Себастьян