DDD с .NET — доступна ли общая библиотека инфраструктуры?

Мы запускаем веб-приложение, используя DDD и CQRS (используя структуру ncqrs), и прежде чем мы начнем писать собственный класс инфраструктуры библиотека, я хотел посмотреть, доступны ли они уже.

Я думаю, что по крайней мере некоторые базовые интерфейсы и общие реализации для записи в файловую систему, отправки электронных писем и т. д. можно использовать в любом проекте.


person jaminto    schedule 30.12.2011    source источник


Ответы (3)


Эти типы сервисов в достаточной степени зависят от контекста, чтобы не уступать обычным платформам по сравнению со средствами, предоставляемыми .NET Framework. Могут быть фреймворки, ориентированные на конкретные задачи, такие как электронная почта, однако вам лучше выбрать решение, которое соответствует требованиям, а не наоборот. Вместо этого рассмотрите возможность просмотра некоторых примеров проектов DDD, перечисленных здесь.

person eulerfx    schedule 30.12.2011

Я согласен с тем, что eulerfx заявил ранее. Я бы добавил, что если вы зависите от фреймворка для использования DDD и CQRS, то вы рискуете зависеть от фреймворка и не совсем понимать, что происходит. В результате вы можете пропустить то, что вам предоставляет DDD (и CQRS).

Я заявляю, что начал изучать CQRS с помощью фреймворка (фактически NCQRS), но мои знания DDD были основаны на книге Эванса, и я не искал фреймворк для моделирования своей предметной области. Поскольку каждая область уникальна для проблемы, я думаю, что сложно действительно иметь структуру, которая «помогает» вам реализовать DDD.

Оглядываясь назад, я бы хотел, чтобы я не использовал NCQRS с самого начала, поскольку я пропустил или упустил некоторые тонкости шаблона CQRS.

Возможно, существуют какие-то DDD-фреймворки, но я бы рекомендовал отказаться от них и создать свой собственный. Вы поблагодарите себя позже.

Надеюсь это поможет. Удачи!

person David Hoerster    schedule 30.12.2011

Вы можете попробовать мою библиотеку CoreDdd, документацию здесь, сообщения в блоге об этом здесь. Он содержит поддержку DDD (сущности, совокупные корни) и CQRS (команды, запросы). Нет поддержки записи файловой системы или отправки электронных писем, для этого используйте стандартный .net.

person xhafan    schedule 04.12.2012