Почти все примеры DDD в сообществе Alt .NET применяются к веб-разработке; я хотел бы видеть некоторые примеры применения DDD в сценариях, когда клиент обрабатывает большую часть бизнес-логики, а сервер - это просто веб-служба для CRUD с использованием DTO [ 1 ].
В настоящее время я работаю над продуктом с анемичной моделью предметной области. Если исходить из многолетней веб-разработки, подобные вещи обычно заставляют меня съеживаться; однако, я не уверен, как бы я структурировал этот код в соответствии с принципами DDD. В веб-приложении у меня есть прямой доступ к базе данных в точке, где я работаю с бизнес-логикой (реализованной в моей доменной модели, вызываемой контроллерами), что означает, что я могу легко иметь богатую доменную модель и использовать ORM для CRUD , Но в моем текущем проекте DTO - единственный разумный способ передачи данных. 80% бизнес-логики реализовано в View Models (это приложение WPF), остальные 20% расположены в хранимых процедурах, а 100% DAL написано от руки ADO .NET. На самом деле в веб-сервисах реализовано не так много бизнес-логики, поэтому в решении нет «сущностей» - все они DTO.
Как я могу внедрить DDD в такую архитектуру клиент / сервер? Какой опыт у вас был, и какой подход вы выбрали? Какие шаблоны вы бы предложили? У меня не было много времени, чтобы прогнать CQRS, но что-то подсказывает мне, что это может быть связано - так ли это?
ноты
- Возможно, это неправильный вопрос. В этом типе сценария WPF клиент / сервер, имеет ли смысл следовать парадигме веб-приложения, где 99% внимания клиента сосредоточено на логике отображения?