Я много искал об ограниченном контексте, и я знаю, что это шаблон в Domain Driven Design, и он предназначен для деления нашей большой модели на более мелкие модели с использованием контекста базы данных, но это меня немного путает , на самом деле я не знаю, что именно он делает? и какие преимущества от использования этого шаблона
, пожалуйста, помогите мне разобраться в этом шаблоне.Ограниченный контекст в EntityFramework CodeFirst
ответ
Ограниченные контексты не обязательно должны ломать большую модель на более мелкие модели, а скорее для идентификации отдельных моделей доменов в вашем бизнесе. Каждый BC должен иметь свой собственный хранилище данных. BC может использовать данные из другого BC по-разному (слой антикоррупции, объекты ценности).
Таким образом, у вас может быть Asset BC, Warehousing BC, Invoicing BC, Accounting BC или CRM BC. Преимущество состоит в том, что вы можете сосредоточиться на одной области за раз. Вероятно, это довольно сложно понять, и определение границ требует глубокого знания различных доменов, поэтому эксперты по области неоценимы для достижения этой цели. Трудность находится на одном уровне с определением совокупных корней.
Большое преимущество заключается в том, что если вы получите развязку, то ваше обслуживание будет проще. Это правильная вещь :)
Ограниченный контекст возникает там, где один вездесущий язык является последовательным.
Ограниченная применимость конкретной модели. КОНЦЕПЦИИ КОНТРОЛЯ дает членам команды четкое и общее понимание того, что должно быть последовательным и что может развиваться независимо.
Прочитано this article, он дает полезную аналогию.
Я приведу пример, поскольку другие дали отличные объяснения.
Представьте, что вы сделали телефонный звонок в туристическое агентство, оператор в call-центре взял ваш звонок, он, вероятно, может ответить, начиная с «Дорогой мистер Доу» (представьте, что это имя вашего персонажа: John Doe) если вы звонили им раньше, и ваше имя было записано и привязано к вашему номеру телефона.
Через несколько секунд я позвонил в ту же туристическую организацию, оператор ответил «Дорогой мистер Чжоу».
МРС сказал оператору о наших фамилиях, но есть некоторые хитрый здесь: Я китайский, так что мое имя Чжоу hippoom (фамилия первый), но большинство западных имен Фамилия последний (John Doe ). Ради этого, CRM использует эту модель ниже:
Таким образом, оператор может определить фамилию клиентов напрямую, независимо от заказа.
С другой стороны, оператору понадобилось мое полное имя, когда я хотел забронировать авиабилет. Полное имя должно быть таким же, как в моем паспорте (чтобы я мог зарегистрироваться в аэропорту).Система бронирования воздуха использует ниже модель:
Есть два PersonName s в приведенном выше примере, вы можете использовать каноническую модель, конечно, но это просто не легко использовать для обоих из них:
1) использовать FullName в CRM позволяет оператору угадать, какой из них является фамилия
2) использовать фамилию/Firstname в бронировании воздуха не имеет смысла, потому что это не имеет значения до тех пор, пока они так же, как что в паспорте.
Ограниченный контекст конкретной модели работает лучше в этом случае: CRM.PersonName и AIR_BOOKING.PersonName
Кто-то сказал мне раньше: что-то не так легко использовать, если оно используется как родовое.
Джулия Лерман дает довольно хорошее объяснение ограниченного контекста.
Я рекомендую прочитать следующие http://msdn.microsoft.com/en-us/magazine/jj883952.aspx
Bounded контекст имеет много преимуществ, насколько архитектуры многоуровневых (с EF) обеспокоен:
- Читаемость
- Масштабируемость
- Производительность ... и другие.
- 1. EntityFramework CodeFirst Игнорирование MaxLength
- 2. EntityFramework 4.1 CodeFirst Monitor.Enter
- 3. EntityFramework CodeFirst Instantiate Коллекция
- 4. Многоуровневое включает в CodeFirst - EntityFrameWork
- 5. Фильтрация DbSet в EntityFramework CodeFirst
- 6. Миграция в ограниченный контекст
- 7. Как представить ограниченный контекст?
- 8. Lazy Loading EntityFramework 5 (с CodeFirst)
- 9. Связывание двух таблиц в EntityFramework CodeFirst модели
- 10. Как использовать миграцию программно в EntityFramework Codefirst?
- 11. Контекст EntityFramework dispose
- 12. Контекст EntityFramework: Singleton?
- 13. Контекст EntityFramework не сохраняется
- 14. Роль партии и ограниченный контекст
- 15. Усиливают ли микросервисы ограниченный контекст?
- 16. Ограниченный контекст - это полное приложение?
- 17. C# Application EntityFramework CodeFirst и база данных
- 18. метод семян, не вызываемый с EntityFramework CodeFirst
- 19. Использование поиска в CodeFirst (EntityFramework) для получения непервичных ключей
- 20. Ограниченный контекст для микросервисов в распределенной аналитике
- 21. Ограниченный контекст в базе данных первых приложений
- 22. Контекст EntityFramework, возвращающий старые данные
- 23. EntityFramework использует неправильный контекст данных
- 24. MVC5 Identity + множественный контекст в EntityFramework
- 25. Составляя ограниченный контекст на одной странице
- 26. В MVC-контроллере, требующем async для возврата EntityFramework CodeFirst data
- 27. Код EntityFramework CodeFirst Составление списка верблюдов в базе данных
- 28. Список <Enum> в Агрегатах EntityFramework CodeFirst
- 29. Ограниченный контекст с EF Model-first
- 30. Ограниченный контекст, субдомены и вездесущий язык
Что такое «использование контекста базы данных»? И я не думаю, что ограниченный контекст привязан к определенной инфраструктурной технологии, такой как EntityFramework, не могли бы вы дать более подробную информацию? – Hippoom