Я бы сказал «это зависит»
В некоторых случаях может быть достаточно отобразить ваши объекты BC в одну и ту же базу данных, а иногда у вас могут быть разные базы данных для ваших BC.
IMOЭлектронная коммерция может быть скорее BC, чем полноценным доменом.
Я провел слишком много времени в одном торговом агенте, где продавали продукты питания.
Итак, доменбыли «целые продажи», и ограниченным контекстом были: инвентарь, покупка, продажа, выставление счетов, каталог продукции и электронная коммерция (возможно, я здесь использую неправильную английскую формулировку)
Каждый из этих БК знал о «продуктах»но у всех их было другое представление о продукте.
например, Покупка может иметь сущность продукта с информацией о продавце, ценой покупки и т. д., прикрепленной к ней.
Хотя продукт находится в области электронной коммерциибудет смоделирован с точки зрения клиента, он будет иметь информацию, относящуюся к клиенту, который его просматривает, его конкретную цену и т. д.
BC электронной коммерции получит свою продукциюt информация из нескольких источников;Каталог продукции и продажи.где базовая информация берется из каталога продуктов, а цены для конкретных клиентов - из продаж.
Таким образом, хранилище продуктов в BC электронной коммерции может выполнять сопоставление контекста из других BC (через какие-то услуги, большинствоскорее всего, web или wcf в моем случае) для создания нашей сущности продукта электронной коммерции)
Лично я делаю это как отдельные сборки, у меня была бы модель электронной коммерции и модель продаж.
Большая часть информации в моей модели электронной коммерции поступает из внешних источников и не будет локально постоянной.Только такие вещи, как корзина покупок, будут локально постоянными, поскольку эти объекты принадлежат модели электронной коммерции.
Как только клиент попытается завершить покупку, я создам предварительный заказ из корзины покупок, а затемпередать это в отдел продаж.Либо прямым вызовом службы, либо через очередь сообщений.
Короче говоря, я стараюсь строить свои системы вокруг определенного BC и взаимодействовать только с другими BC через сервисы.
Я знаю, чтоМногие люди помещают свои BC в одни и те же сборки и используют несколько BC из одного приложения и т. д. Но я просто нахожу странным, почему приложение для определенной цели должно знать о нескольких контекстах.Я бы предпочел, чтобы он знал только об одном контексте, а затем передавал все нужные мне данные другим приложениям.