Я пытаюсь изучить и применить концепцию, основанную на доменах, в моей разработке программного обеспечения. Первое, что я пытаюсь сделать, это создать мою модель домена, основанную на потребностях бизнес-логики. Я также часто использую инструмент OR Mapping, такой как LLBLGen, NHibernate или Linq to SQL, для создания модели данных и доступа к данным. Модель домена и модель данных, однако, часто очень похожи, что заставляет меня задаться вопросом, какую пользу я получаю, поддерживая две модели.Лучшая практика применения доменного дизайна в .NET?
Может ли кто-нибудь поделиться своими практическими мыслями о доменном дизайне? Кроме того, как вы относитесь к модели данных или уровню доступа к данным при применении DDD в своем приложении?
Заранее спасибо.
EDIT
Нашли хорошую article, с примерами кода, о Repository Pattern.
Вы когда-нибудь сталкивались с ситуацией, когда ваша модель данных не соответствует вашим потребностям? Как вы справляетесь с этими случаями? Благодарю. – weilin8
Это зависит от многого. Fluent NHibernate предоставляет возможность переопределить автоматическую вычитаемую конфигурацию. Означает, что вы можете отключить 90% вашего режима, а затем предоставить ручную конфигурацию для остальных. Однако, если вероятность того, что ваша модель данных будет в значительной степени несовместимой (например, унаследованной или сумасшедшей dba), я думаю, что лучше иметь реальный уровень доступа к данным, чтобы действовать как уровень абстракции. –