Мне было интересно, если бы кто-нибудь из вас успешно реализовал DDD в приложении Client/Server и хотел бы поделиться некоторыми впечатлениями.DDD и клиент/серверные приложения
В настоящее время мы работаем над умным клиентом в Flex и бэкэнд на Java. На сервере у нас есть сервисный уровень, открытый клиенту, который предлагает операции CRUD среди некоторых других методов обслуживания. Я понимаю, что в DDD эти службы должны быть хранилищами и службами, которые должны использоваться для обработки случаев использования, которые не помещаются внутри репозитория. Прямо сейчас мы имитируем эти службы на клиенте за интерфейсом и внедряем реализации (Webservices, RMI и т. Д.) Через контейнер IoC.
Так возникают некоторые вопросы:
- должен сервер выставить репозиториев клиенту или мы должны иметь какое-то фасад (то есть в состоянии справиться безопасности, например)
- должен клиент реализовать репозитории (и DDD вообще?), зная, что в клиенте большая часть логики связана с просмотром, и реальная бизнес-логика живет на сервере. Вся связь с сервером происходит асинхронно, и у нас есть одна модель программирования с потоком на клиенте.
- как насчет сопоставления клиента с объектами сервера и наоборот? Мы попробовали DTO, но вернулись назад, чтобы разоблачить состояние наших объектов и сопоставить их непосредственно с ними. Я знаю, что это считается плохой практикой, но это экономит нам невероятное количество времени).
В целом, я думаю, что новое поколение приложений приходит с ростом Flex, Silverlight, JavaFX, и мне любопытно, как DDD вписывается в это.