Очередной раз описывая класс DTOшки подумал, а было бы удобно иметь динамический генератор, который строил бы DTO на старте приложения, как AutoMapper.
Делаем Extension-метод и у всех Domain.Entity есть метод ToDto(), и ToDto — по конвеншнам. Подумать над конвеншнами, например если возвращается IEnumerable<Product>, то логичнее вернуть Dto-шку с CategoryId, а не Category: {...}. Ну и циркулярные ссылки разрулить. Такой функционал в 90% случаев избавит от написания одинаковых классов. Заодно можно в java-script возвращать в lowerCamelCase.
Есть какое-то решение подобное в open source или не грех написать?
В обратную сторону сложнее, но тоже можно собрать из dynamic или чего-то типа IDto<TEnityType>.