Мы пытаемся выяснить разделенную интеграцию ограниченного контекста для сценария.
Допустим, один контекст - это Document Core Bounded Context (BC) и имеет объект Document с Author. Использование IdentityAccessContext BC, как в Реализация книги DDD, которая разделяет пользователей, группы и роли в их собственном контексте, имеет смысл.
Проблема возникает при рассмотрении возможности получения списка из 100+ документов.
Допустим, у ядра документа BC есть собственная сущность, которая обозначает автора документа.
public class Author
{
long Id; // Same as UserId
long Document;
}
И тогда у удостоверения BC есть Пользователь с соответствующей информацией.
public class User
{
long Id;
string FullName;
}
При получении списка документов, как информация из IdentityAccess BC должна быть извлечена в / с помощью автора документа < / em> для отображения (например, полное имя)?
Кажется, есть пара альтернатив:
- Может быть, уровень защиты от коррупции, который извлекает данные из обеих таблиц?
- Дублировать полное имя пользователя в двух BC?
Ни то, ни другое не кажется правильным, поскольку №1 требует объединения данных (на каком-то уровне) из 2 BC, в то время как № 2 требует потенциально обновления нескольких BC при изменении имени пользователя.
Что с этим можно сделать? (Использование C #, MVC, NHibernate, если это важно) Четкая выборка списка объектов, а затем выборка, например. Имя автора и дополнительные данные позже нереально.
Однако при рассмотрении интеграции BC, учитывая 3 варианта, упомянутые в книге RPC, Domain Events, and RESTful service integration, по крайней мере, последние 2 не имеют смысла в этом случае. где приложение является MVC, и оно напрямую использует 2 BC как библиотеки классов, и они оба используют одну и ту же базу данных. Обновление информации о пользователях может быть выполнено непосредственно из MVC через службы приложения Identity BC's. База данных и BC могут быть изменены по мере необходимости.