Как DDD может быть применен к умным клиентам? - PullRequest
1 голос
/ 12 августа 2010

Почти все примеры DDD в сообществе Alt .NET применяются к веб-разработке; я хотел бы видеть некоторые примеры применения DDD в сценариях, когда клиент обрабатывает большую часть бизнес-логики, а сервер - это просто веб-служба для CRUD с использованием DTO [ 1 ].

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

Как я могу внедрить DDD в такую ​​архитектуру клиент / сервер? Какой опыт у вас был, и какой подход вы выбрали? Какие шаблоны вы бы предложили? У меня не было много времени, чтобы прогнать CQRS, но что-то подсказывает мне, что это может быть связано - так ли это?


ноты

  1. Возможно, это неправильный вопрос. В этом типе сценария WPF клиент / сервер, имеет ли смысл следовать парадигме веб-приложения, где 99% внимания клиента сосредоточено на логике отображения?

1 Ответ

0 голосов
/ 12 августа 2010

Это забавно, потому что я часто задаюсь вопросом, как DDD может быть применен к веб-разработке.

Я не хочу сказать, что это исчерпывающий ответ на ваш вопрос, но вы можете найти что-то полезное среди ответовна мой старый вопрос: Должен ли я сопоставить DTO с / с сущностью домена на стороне клиента и сервера?

В качестве очень общего ответа на ваш вопрос, я бы сказалчто вы могли бы переместить логику из моделей представлений в модель домена на стороне клиента (поскольку кажется, что сторона сервера работает просто отлично без какой-либо концепции модели домена).Вы бы использовали DTO, исходящие из веб-службы, для «гидратации» этих сущностей.

Если вы создаете умного клиента, то вы хотите использовать возможность поддерживать состояниеи выполнять логику прямо в клиенте (так что «нет» сноске).

...